Module: ROM::SQL::RelationInclusion::AssociationDSL
- Defined in:
- lib/rom/sql/relation_inclusion.rb
Instance Method Summary collapse
- #associations ⇒ Object
- #finalize(relations, relation) ⇒ Object
- #many_to_many(name, options = {}) ⇒ Object
- #many_to_one(name, options = {}) ⇒ Object
- #one_to_many(name, options) ⇒ Object
Instance Method Details
#associations ⇒ Object
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, | model = relation.model other = relations[.fetch(:relation)].model model.public_send(*args, .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, = {}) associations << [__method__, name, .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, = {}) associations << [__method__, name, .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, ) associations << [__method__, name, .merge(relation: name)] end |