class Bmg::Sequel::Relation
Attributes
sequel_db[R]
Public Class Methods
new(type, builder, source, sequel_db)
click to toggle source
Calls superclass method
# File lib/bmg/sequel/relation.rb, line 5 def initialize(type, builder, source, sequel_db) super(type, builder, source) @sequel_db = sequel_db end
Public Instance Methods
_count()
click to toggle source
# File lib/bmg/sequel/relation.rb, line 37 def _count dataset.count end
delete()
click to toggle source
# File lib/bmg/sequel/relation.rb, line 16 def delete base_table.delete end
each(&bl)
click to toggle source
# File lib/bmg/sequel/relation.rb, line 11 def each(&bl) return to_enum unless block_given? dataset.each(&bl) end
insert(arg)
click to toggle source
# File lib/bmg/sequel/relation.rb, line 20 def insert(arg) case arg when Hash then base_table.insert(arg.merge(type.predicate.constants)) when Enumerable then base_table.multi_insert(arg.map { |x| x.merge(type.predicate.constants) }) else base_table.insert(arg.merge(type.predicate.constants)) end end
to_ast()
click to toggle source
# File lib/bmg/sequel/relation.rb, line 41 def to_ast [:sequel, dataset.sql] end
to_s()
click to toggle source
# File lib/bmg/sequel/relation.rb, line 49 def to_s "(sequel #{dataset.sql})" end
Also aliased as: inspect
to_sql()
click to toggle source
# File lib/bmg/sequel/relation.rb, line 45 def to_sql dataset.sql end
update(arg)
click to toggle source
# File lib/bmg/sequel/relation.rb, line 33 def update(arg) base_table.update(arg) end
Protected Instance Methods
_instance(type, builder, expr)
click to toggle source
# File lib/bmg/sequel/relation.rb, line 66 def _instance(type, builder, expr) Relation.new(type, builder, expr, sequel_db) end
base_table()
click to toggle source
# File lib/bmg/sequel/relation.rb, line 60 def base_table raise InvalidUpdateError unless self.expr.respond_to?(:table_spec) raise InvalidUpdateError unless self.expr.table_spec.first == :table_as sequel_db[self.expr.table_spec.table_name.to_sym] end
dataset()
click to toggle source
# File lib/bmg/sequel/relation.rb, line 56 def dataset @dataset ||= Translator.new(sequel_db).call(self.expr) end
extract_compatible_sexpr(operand)
click to toggle source
# File lib/bmg/sequel/relation.rb, line 70 def extract_compatible_sexpr(operand) return nil unless operand.is_a?(Bmg::Sequel::Relation) return nil unless self.sequel_db == operand.sequel_db operand.expr end