aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/enum.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-04-09 11:03:10 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-04-09 11:03:10 -0700
commitdb5e578b647e1730ea2aecb1ca58fd9a434f6cf6 (patch)
tree524517ae1ffc1ec01af367d72a51a8323dee931b /activerecord/lib/active_record/enum.rb
parent3321d1a2d1908f25d962169d0a88b55bca3c2370 (diff)
parent7b75b678cf11a1aed7927a9db42fb60a38726450 (diff)
downloadrails-db5e578b647e1730ea2aecb1ca58fd9a434f6cf6.tar.gz
rails-db5e578b647e1730ea2aecb1ca58fd9a434f6cf6.tar.bz2
rails-db5e578b647e1730ea2aecb1ca58fd9a434f6cf6.zip
Merge branch 'master' into adequaterecord
* master: (26 commits) Avoid URI parsing Add missing require so requiring `active_support/cache` works again. depend_on_asset is not required anymore on sprockets-rails 2.1.2 upgrading section for 4.1 is no longer WIP. [ci skip] Expand explanation of how to set secrets.yml. [ci skip] Guides: minor typo fixed [ci skip] Fixed problem where `1.day.eql?(1.day)` is false new CHANGELOGs entries are in the top [ci skip] Updates the maintenance policy with new Rails versions Dont abbreviate that which needs no abbreviation Dont encourage aliases now that we have variants Use short-form for the scaffold render calls and drop the needless test Drop in @jeremy's new database.yml template text Don't deprecate after all Less ambition, more deprecation Ensure we correctly and immediately load all ENV entries Give a deprecation message even when the lookup fails Rearrange the config merger some more entry is always a Hash Check env_url only once ... Conflicts: Gemfile
Diffstat (limited to 'activerecord/lib/active_record/enum.rb')
-rw-r--r--activerecord/lib/active_record/enum.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/enum.rb b/activerecord/lib/active_record/enum.rb
index 167f8b7a49..18f1ca26de 100644
--- a/activerecord/lib/active_record/enum.rb
+++ b/activerecord/lib/active_record/enum.rb
@@ -1,3 +1,5 @@
+require 'active_support/core_ext/object/deep_dup'
+
module ActiveRecord
# Declare an enum attribute where the values map to integers in the database,
# but can be queried by name. Example:
@@ -70,8 +72,9 @@ module ActiveRecord
base.defined_enums = {}
end
- def enum_mapping_for(attr_name) # :nodoc:
- defined_enums[attr_name.to_s]
+ def inherited(base)
+ base.defined_enums = defined_enums.deep_dup
+ super
end
def enum(definitions)
@@ -136,7 +139,7 @@ module ActiveRecord
mod = Module.new do
private
def save_changed_attribute(attr_name, value)
- if (mapping = self.class.enum_mapping_for(attr_name))
+ if (mapping = self.class.defined_enums[attr_name.to_s])
if attribute_changed?(attr_name)
old = changed_attributes[attr_name]