diff options
| author | Michael Herold <michael.j.herold@gmail.com> | 2018-02-04 16:39:20 -0600 |
|---|---|---|
| committer | Michael Herold <michael.j.herold@gmail.com> | 2018-02-05 10:58:26 -0600 |
| commit | a82c594710e1bc9460d3de4d2989cb700f4c3c7f (patch) | |
| tree | b465064e4dc1223e3148f4c5e99a0edc44dc2d76 /lib/hashie/extensions | |
| parent | a9d0e0ac7b6b3362480a9004d04ad7aa167fc193 (diff) | |
| download | hashie-a82c594710e1bc9460d3de4d2989cb700f4c3c7f.tar.gz | |
Ensure IndifferentAccess is injected after merge
During non-destructive merges (i.e. `#merge`), the `IndifferentAccess` mixin was
failing to inject itself into the resulting Hash. This caused a `NoMethodError`
to be thrown when attempting to perform the action.
Now, we properly inject the mixin when necessary so the `#merge` method works.
Diffstat (limited to 'lib/hashie/extensions')
| -rw-r--r-- | lib/hashie/extensions/indifferent_access.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/hashie/extensions/indifferent_access.rb b/lib/hashie/extensions/indifferent_access.rb index 55648a6..e6e670a 100644 --- a/lib/hashie/extensions/indifferent_access.rb +++ b/lib/hashie/extensions/indifferent_access.rb @@ -133,8 +133,10 @@ module Hashie self end - def merge(*) - super.convert! + def merge(*args) + result = super + IndifferentAccess.inject!(result) if hash_lacking_indifference?(result) + result.convert! end def merge!(*) |
