diff options
author | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-07-29 10:23:02 -0700 |
---|---|---|
committer | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-07-29 10:23:02 -0700 |
commit | 07ecaf5063c06558e0566f70cafdfdbe2b7ac2cb (patch) | |
tree | 5acc57ad511c9c794fe97215f4932c068a7a6053 /activesupport | |
parent | 1f870a2c5911b2eec519062486a74a725e924b3d (diff) | |
parent | d59208d7032e2be855a89ad8d4685cc08dd7cdb3 (diff) | |
download | rails-07ecaf5063c06558e0566f70cafdfdbe2b7ac2cb.tar.gz rails-07ecaf5063c06558e0566f70cafdfdbe2b7ac2cb.tar.bz2 rails-07ecaf5063c06558e0566f70cafdfdbe2b7ac2cb.zip |
Merge pull request #7194 from alexandrz/master
DRY class_attribute
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/lib/active_support/core_ext/class/attribute.rb | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/activesupport/lib/active_support/core_ext/class/attribute.rb b/activesupport/lib/active_support/core_ext/class/attribute.rb index 7b6f8ab0a1..da0a12136c 100644 --- a/activesupport/lib/active_support/core_ext/class/attribute.rb +++ b/activesupport/lib/active_support/core_ext/class/attribute.rb @@ -79,14 +79,12 @@ class Class def self.#{name}=(val) singleton_class.class_eval do - remove_possible_method(:#{name}) - define_method(:#{name}) { val } + redefine_method(:#{name}) { val } end if singleton_class? class_eval do - remove_possible_method(:#{name}) - def #{name} + redefine_method(:#{name}) do defined?(@#{name}) ? @#{name} : singleton_class.#{name} end end @@ -95,8 +93,7 @@ class Class end if instance_reader - remove_possible_method :#{name} - def #{name} + redefine_method(:#{name}) do defined?(@#{name}) ? @#{name} : self.class.#{name} end |