summaryrefslogtreecommitdiff
path: root/lib/leap_cli/core_ext/hash.rb
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2016-10-05 14:35:56 -0700
committerelijah <elijah@riseup.net>2016-10-05 14:35:56 -0700
commit7abfbd6abae14fa6a72350f7b75268ff561354ee (patch)
treeaf5c969c905a8d2a95f2b2aa7c4dd6f4b8763126 /lib/leap_cli/core_ext/hash.rb
parentcc57bc6c0ff99d88f3bfeff1b04297e9b91e6988 (diff)
parentf95e08ef7d8defbde4a19e138b1ac4ebc9677669 (diff)
Merge branch 'develop'
# Conflicts: # lib/leap_cli/version.rb
Diffstat (limited to 'lib/leap_cli/core_ext/hash.rb')
-rw-r--r--lib/leap_cli/core_ext/hash.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/leap_cli/core_ext/hash.rb b/lib/leap_cli/core_ext/hash.rb
index 7df33b2..4eb3af3 100644
--- a/lib/leap_cli/core_ext/hash.rb
+++ b/lib/leap_cli/core_ext/hash.rb
@@ -32,4 +32,23 @@ class Hash
replace(deep_merge(other_hash))
end
+ #
+ # A recursive symbolize_keys
+ #
+ unless Hash.method_defined?(:symbolize_keys)
+ def symbolize_keys
+ self.inject({}) {|result, (key, value)|
+ new_key = case key
+ when String then key.to_sym
+ else key
+ end
+ new_value = case value
+ when Hash then symbolize_keys(value)
+ else value
+ end
+ result[new_key] = new_value
+ result
+ }
+ end
+ end
end