diff options
author | Sean Griffin <sean@thoughtbot.com> | 2014-11-14 12:37:25 -0700 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2014-11-14 14:30:40 -0700 |
commit | 48f2620df98e6926d38b8951087ab1bbc512580c (patch) | |
tree | cf4b0c7bf818773c75219d9018afa88ebe821c50 | |
parent | 895a53e7161e9bdc6285fe03f16b49ec74972416 (diff) | |
download | rails-48f2620df98e6926d38b8951087ab1bbc512580c.tar.gz rails-48f2620df98e6926d38b8951087ab1bbc512580c.tar.bz2 rails-48f2620df98e6926d38b8951087ab1bbc512580c.zip |
Don't freeze the same hash we use for memoization
-rw-r--r-- | activerecord/lib/active_record/attribute_set/builder.rb | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/attribute_set/builder.rb b/activerecord/lib/active_record/attribute_set/builder.rb index 4134032659..73b77d2eda 100644 --- a/activerecord/lib/active_record/attribute_set/builder.rb +++ b/activerecord/lib/active_record/attribute_set/builder.rb @@ -23,7 +23,6 @@ module ActiveRecord class LazyAttributeHash delegate :select, :transform_values, to: :materialize - delegate :[]=, :freeze, to: :delegate_hash def initialize(types, values, additional_types) @types = types @@ -45,6 +44,13 @@ module ActiveRecord end end + def []=(key, value) + if frozen? + raise RuntimeError, "Can't modify frozen hash" + end + delegate_hash[key] = value + end + def initialized_keys delegate_hash.keys | values.keys end @@ -54,11 +60,6 @@ module ActiveRecord super end - def initialize_clone(_) - @delegate_hash = delegate_hash.clone - super - end - protected attr_reader :types, :values, :additional_types, :delegate_hash |