Module: MongoMapper::Denormalization::ClassMethods

Defined in:
lib/mongo_mapper/denormalization.rb

Instance Method Summary collapse

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, options={})
  association = association.to_sym
  field = field.to_sym

  validation_method = options[:on] || :before_validation
  source_field_code = options[:source_field] || :"#{association}.#{field}"
  target_field_code = options[:target_field] || :"#{association}_#{field}"
  is_association = options[: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)
  options = destinations.last.is_a?(Hash) ? destinations.pop.dup : {}
  source = options.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(options))
  end
end

#denormalize_field(association, field, options = {}) ⇒ Object



9
10
11
# File 'lib/mongo_mapper/denormalization.rb', line 9

def denormalize_field(association, field, options={})
  denormalize(association, field, options)
end