diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-11-04 15:51:09 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-11-04 15:51:09 -0800 |
commit | 238ee10c41af267d6c931b9eff4cdad674911a23 (patch) | |
tree | 6013de2dbc47d09651053dd1290bd918cf3c0b1f /activerecord/lib | |
parent | 9104702be61253f9448ca070a22fc86bb4299555 (diff) | |
download | rails-238ee10c41af267d6c931b9eff4cdad674911a23.tar.gz rails-238ee10c41af267d6c931b9eff4cdad674911a23.tar.bz2 rails-238ee10c41af267d6c931b9eff4cdad674911a23.zip |
stop doing the same calculation over and over
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/enum.rb | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/enum.rb b/activerecord/lib/active_record/enum.rb index f22ff2c472..72373d5d5a 100644 --- a/activerecord/lib/active_record/enum.rb +++ b/activerecord/lib/active_record/enum.rb @@ -38,15 +38,16 @@ module ActiveRecord definitions.each do |name, values| # DIRECTION = { } const = const_set name.to_s.upcase, {} + name = name.to_sym # def direction=(value) self[:direction] = DIRECTION[value] end define_method "#{name}=" do |value| - self[:"#{name}"] = const[value] + self[name] = const[value] end # def direction() DIRECTION.key self[:direction] end define_method name do - const.key self[:"#{name}"] + const.key self[name] end pairs = values.respond_to?(:each_pair) ? values.each_pair : values.each_with_index @@ -59,12 +60,12 @@ module ActiveRecord # def incoming?() direction == 0 end define_method "#{value}?" do - self[:"#{name}"] == i + self[name] == i end # def incoming! update! direction: :incoming end define_method "#{value}!" do - update! :"#{name}" => :"#{value}" + update! name => value.to_sym end end end |