diff options
-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 |