diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-07-02 17:32:33 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-07-02 17:32:33 -0700 |
commit | 59482f93ec84a54069ef720ed4ecf5c4a3d302a0 (patch) | |
tree | e5ffff61947b99dffb077d582c0f6397b0bde3b1 /activerecord/lib/active_record/attribute_methods | |
parent | 6aea51355ae221a422e8501b585619895cded8f4 (diff) | |
download | rails-59482f93ec84a54069ef720ed4ecf5c4a3d302a0.tar.gz rails-59482f93ec84a54069ef720ed4ecf5c4a3d302a0.tar.bz2 rails-59482f93ec84a54069ef720ed4ecf5c4a3d302a0.zip |
stop storing multiple copies of a particular attribute name
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/read.rb | 5 | ||||
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/write.rb | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/read.rb b/activerecord/lib/active_record/attribute_methods/read.rb index d83c5a84b4..2c8ae9c774 100644 --- a/activerecord/lib/active_record/attribute_methods/read.rb +++ b/activerecord/lib/active_record/attribute_methods/read.rb @@ -49,11 +49,12 @@ module ActiveRecord # key the @attributes_cache in read_attribute. def define_method_attribute(name) safe_name = name.unpack('h*').first - generated_attribute_methods::AttrNames.set_name_cache safe_name, name + ActiveRecord::AttributeMethods::AttrNames.set_name_cache safe_name, name generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1 def __temp__#{safe_name} - read_attribute(AttrNames::ATTR_#{safe_name}) { |n| missing_attribute(n, caller) } + name = ::ActiveRecord::AttributeMethods::AttrNames::ATTR_#{safe_name} + read_attribute(name) { |n| missing_attribute(n, caller) } end alias_method #{name.inspect}, :__temp__#{safe_name} undef_method :__temp__#{safe_name} diff --git a/activerecord/lib/active_record/attribute_methods/write.rb b/activerecord/lib/active_record/attribute_methods/write.rb index 541856c678..9c7f643283 100644 --- a/activerecord/lib/active_record/attribute_methods/write.rb +++ b/activerecord/lib/active_record/attribute_methods/write.rb @@ -14,11 +14,12 @@ module ActiveRecord # this code. def define_method_attribute=(name) safe_name = name.unpack('h*').first - generated_attribute_methods::AttrNames.set_name_cache safe_name, name + ActiveRecord::AttributeMethods::AttrNames.set_name_cache safe_name, name generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1 def __temp__#{safe_name}=(value) - write_attribute(AttrNames::ATTR_#{safe_name}, value) + name = ::ActiveRecord::AttributeMethods::AttrNames::ATTR_#{safe_name} + write_attribute(name, value) end alias_method #{(name + '=').inspect}, :__temp__#{safe_name}= undef_method :__temp__#{safe_name}= |