summaryrefslogtreecommitdiff
path: root/lib/hashie/extensions/indifferent_access.rb
diff options
context:
space:
mode:
authorMichael Herold <michael.j.herold@gmail.com>2016-01-31 17:02:03 -0600
committerMichael Herold <michael.j.herold@gmail.com>2016-01-31 17:02:03 -0600
commitf722ee310f1517392c91677c9b4fcec92e8dbc36 (patch)
tree41e78af0443e370da364ae72439c88e4f2837037 /lib/hashie/extensions/indifferent_access.rb
parentb458e728f545539c8b83383c9c727c821f36274e (diff)
downloadhashie-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.rb8
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)