module ROM::SQL::Relation::ClassMethods
Attributes
associations[R]
model[R]
Public Instance Methods
finalize(relations, relation)
click to toggle source
Calls superclass method
# File lib/rom/fmp/relation/class_methods.rb, line 30 def finalize(relations, relation) model.set_dataset(relation.dataset) model.dataset.naked! associations.each do |*args, options| model = relation.model other = relations[options.fetch(:relation)].model model.public_send(*args, options.merge(class: other)) end model.freeze super end
inherited(klass)
click to toggle source
Calls superclass method
# File lib/rom/fmp/relation/class_methods.rb, line 5 def inherited(klass) klass.class_eval do class << self attr_reader :model, :associations end end klass.instance_variable_set('@model', Class.new(Sequel::Model)) klass.instance_variable_set('@associations', []) super end
many_to_many(name, options = {})
click to toggle source
# File lib/rom/fmp/relation/class_methods.rb, line 20 def many_to_many(name, options = {}) associations << [__method__, name, options.merge(relation: name)] end
many_to_one(name, options = {})
click to toggle source
# File lib/rom/fmp/relation/class_methods.rb, line 24 def many_to_one(name, options = {}) relation_name = Inflector.pluralize(name).to_sym new_options = options.merge(relation: relation_name) associations << [__method__, name, new_options] end
one_to_many(name, options)
click to toggle source
# File lib/rom/fmp/relation/class_methods.rb, line 16 def one_to_many(name, options) associations << [__method__, name, options.merge(relation: name)] end