aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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