Module: AttributeInheritance::ModelAdditions

Included in:
Mongoid::Document::ClassMethods
Defined in:
lib/attribute_inheritance/model_additions.rb

Instance Method Summary collapse

Instance Method Details

#attr_inherited(*attributes, options) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/attribute_inheritance/model_additions.rb', line 5

def attr_inherited(*attributes, options)
  accessor = options.fetch(:from)
  define_method :"#{accessor}_with_setting_defaults=" do |object|
    attributes.each do |attr|
      send(attr) || send("#{attr}=", object.send(attr))
    end if object
    send(:"#{accessor}_without_setting_defaults=", object)
  end
  alias_method_chain :"#{accessor}=", :setting_defaults
end