Module: MongoMapper::Denormalization::ClassMethods
- Defined in:
- lib/mongo_mapper/denormalization.rb
Instance Method Summary collapse
- #denormalize(association, field, options = {}) ⇒ Object
- #denormalize_associations(*destinations) ⇒ Object (also: #denormalize_association)
- #denormalize_field(association, field, options = {}) ⇒ Object
Instance Method Details
#denormalize(association, field, options = {}) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/mongo_mapper/denormalization.rb', line 31 def denormalize(association, field, ={}) association = association.to_sym field = field.to_sym validation_method = [:on] || :before_validation source_field_code = [:source_field] || :"#{association}.#{field}" target_field_code = [:target_field] || :"#{association}_#{field}" is_association = [:is_association] denormalize_on_validation(association, field, validation_method, source_field_code, target_field_code) denormalize_on_update(association, field, is_association, target_field_code) end |
#denormalize_associations(*destinations) ⇒ Object Also known as: denormalize_association
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/mongo_mapper/denormalization.rb', line 13 def denormalize_associations(*destinations) = destinations.last.is_a?(Hash) ? destinations.pop.dup : {} source = .delete(:from) if !source raise "denormalize_association must take a from (source) option" end destinations.each do |dest| denormalize(source, dest, { :target_field => dest, :is_association => true }.merge()) end end |
#denormalize_field(association, field, options = {}) ⇒ Object
9 10 11 |
# File 'lib/mongo_mapper/denormalization.rb', line 9 def denormalize_field(association, field, ={}) denormalize(association, field, ) end |