method
writer_method
v1.2.6 -
Show latest stable
- Class:
ActiveRecord::Aggregations::ClassMethods
writer_method(name, class_name, mapping, allow_nil)private
No documentation available.
# File activerecord/lib/active_record/aggregations.rb, line 167
def writer_method(name, class_name, mapping, allow_nil)
mapping = (Array === mapping.first ? mapping : [ mapping ])
if allow_nil
module_eval "def \#{name}=(part)\nif part.nil?\n\#{mapping.collect { |pair| \"@attributes[\\\"\#{pair.first}\\\"] = nil\" }.join(\"\\n\")}\nelse\n@\#{name} = part.freeze\n\#{mapping.collect { |pair| \"@attributes[\\\"\#{pair.first}\\\"] = part.\#{pair.last}\" }.join(\"\\n\")}\nend\nend\n"
else
module_eval "def \#{name}=(part)\n@\#{name} = part.freeze\n\#{mapping.collect{ |pair| \"@attributes[\\\"\#{pair.first}\\\"] = part.\#{pair.last}\" }.join(\"\\n\")}\nend\n"
end
end