aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/enum.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-11-04 15:51:09 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2013-11-04 15:51:09 -0800
commit238ee10c41af267d6c931b9eff4cdad674911a23 (patch)
tree6013de2dbc47d09651053dd1290bd918cf3c0b1f /activerecord/lib/active_record/enum.rb
parent9104702be61253f9448ca070a22fc86bb4299555 (diff)
downloadrails-238ee10c41af267d6c931b9eff4cdad674911a23.tar.gz
rails-238ee10c41af267d6c931b9eff4cdad674911a23.tar.bz2
rails-238ee10c41af267d6c931b9eff4cdad674911a23.zip
stop doing the same calculation over and over
Diffstat (limited to 'activerecord/lib/active_record/enum.rb')
-rw-r--r--activerecord/lib/active_record/enum.rb9
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