summaryrefslogtreecommitdiff
path: root/lib/hashie/extensions/indifferent_access.rb
diff options
context:
space:
mode:
authorMichael Herold <michael.j.herold@gmail.com>2014-07-21 23:26:28 -0500
committerMichael Herold <michael.j.herold@gmail.com>2014-07-23 22:14:08 -0500
commit1971100ca1b185b07d40a2331ed477bd157e5c53 (patch)
tree8746d873eafd8f8bf0703a66ab6f0d7d072c4cd4 /lib/hashie/extensions/indifferent_access.rb
parent3bc7a49ea24b5a97b974cc5f0386573360276533 (diff)
downloadhashie-1971100ca1b185b07d40a2331ed477bd157e5c53.tar.gz
Remove dups and use inject! to inject in place
This will keep the same objects that are set in a hash with IndifferentAccess, extending the objects with the methods in-place. This, of course, has consequences, but if we want to keep the same objects after the injection this has to be done. Fixes #178, #180
Diffstat (limited to 'lib/hashie/extensions/indifferent_access.rb')
-rw-r--r--lib/hashie/extensions/indifferent_access.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/hashie/extensions/indifferent_access.rb b/lib/hashie/extensions/indifferent_access.rb
index 3c9bb84..4b58ace 100644
--- a/lib/hashie/extensions/indifferent_access.rb
+++ b/lib/hashie/extensions/indifferent_access.rb
@@ -83,9 +83,9 @@ module Hashie
def convert_value(value)
if hash_lacking_indifference?(value)
- IndifferentAccess.inject(value.dup)
+ IndifferentAccess.inject!(value)
elsif value.is_a?(::Array)
- value.dup.replace(value.map { |e| convert_value(e) })
+ value.replace(value.map { |e| convert_value(e) })
else
value
end