Module: ROM::SQL::RelationInclusion::AssociationDSL

Defined in:
lib/rom/sql/relation_inclusion.rb

Instance Method Summary collapse

Instance Method Details

#associationsObject



125
126
127
# File 'lib/rom/sql/relation_inclusion.rb', line 125

def associations
  @associations ||= []
end

#finalize(relations, relation) ⇒ Object



112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/rom/sql/relation_inclusion.rb', line 112

def finalize(relations, relation)
  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

#many_to_many(name, options = {}) ⇒ Object



104
105
106
# File 'lib/rom/sql/relation_inclusion.rb', line 104

def many_to_many(name, options = {})
  associations << [__method__, name, options.merge(relation: name)]
end

#many_to_one(name, options = {}) ⇒ Object



108
109
110
# File 'lib/rom/sql/relation_inclusion.rb', line 108

def many_to_one(name, options = {})
  associations << [__method__, name, options.merge(relation: Inflecto.pluralize(name).to_sym)]
end

#one_to_many(name, options) ⇒ Object



100
101
102
# File 'lib/rom/sql/relation_inclusion.rb', line 100

def one_to_many(name, options)
  associations << [__method__, name, options.merge(relation: name)]
end