diff options
author | Michael Herold <michael.j.herold@gmail.com> | 2016-01-31 17:02:03 -0600 |
---|---|---|
committer | Michael Herold <michael.j.herold@gmail.com> | 2016-01-31 17:02:03 -0600 |
commit | f722ee310f1517392c91677c9b4fcec92e8dbc36 (patch) | |
tree | 41e78af0443e370da364ae72439c88e4f2837037 /lib/hashie/extensions/indifferent_access.rb | |
parent | b458e728f545539c8b83383c9c727c821f36274e (diff) | |
download | hashie-f722ee310f1517392c91677c9b4fcec92e8dbc36.tar.gz |
Fix `#merge` breaking indifferent access
`HashWithDifferentAccess` wasn't properly setting the indifferent
access when merging in other hashes. This reruns `#convert!` after
calling the superclass implementation of the method, so it preserves
indifferent access on the resulting object.
Fixes #345
Diffstat (limited to 'lib/hashie/extensions/indifferent_access.rb')
-rw-r--r-- | lib/hashie/extensions/indifferent_access.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/hashie/extensions/indifferent_access.rb b/lib/hashie/extensions/indifferent_access.rb index 3bbb93d..55648a6 100644 --- a/lib/hashie/extensions/indifferent_access.rb +++ b/lib/hashie/extensions/indifferent_access.rb @@ -133,6 +133,14 @@ module Hashie self end + def merge(*) + super.convert! + end + + def merge!(*) + super.convert! + end + protected def hash_lacking_indifference?(other) |