aboutsummaryrefslogtreecommitdiff
path: root/lib/core_ext
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2012-10-11 00:42:46 -0700
committerelijah <elijah@riseup.net>2012-10-11 00:42:46 -0700
commit113d3a59eaa7547433434d155fc1e60aa7c2094c (patch)
treec468f38066f2f7669f84efb2d6b971fac0cf2346 /lib/core_ext
parent64073733a1213a5e4fe2fef7722996f62ba89c5c (diff)
downloadleap_cli-113d3a59eaa7547433434d155fc1e60aa7c2094c.tar.gz
leap_cli-113d3a59eaa7547433434d155fc1e60aa7c2094c.tar.bz2
code cleanup. better support for nested configs and templates.
Diffstat (limited to 'lib/core_ext')
-rw-r--r--lib/core_ext/hash.rb22
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/core_ext/hash.rb b/lib/core_ext/hash.rb
index a9e5c9e..15f72fc 100644
--- a/lib/core_ext/hash.rb
+++ b/lib/core_ext/hash.rb
@@ -44,7 +44,7 @@ class Hash
##
#
- # convert self into a plain hash, but only include the specified keys
+ # convert self into a hash, but only include the specified keys
#
def pick(*keys)
keys.map(&:to_s).inject({}) do |hsh, key|
@@ -59,16 +59,16 @@ class Hash
# recursive merging (aka deep merge)
# taken from ActiveSupport::CoreExtensions::Hash::DeepMerge
#
- # def deep_merge(other_hash)
- # self.merge(other_hash) do |key, oldval, newval|
- # oldval = oldval.to_hash if oldval.respond_to?(:to_hash)
- # newval = newval.to_hash if newval.respond_to?(:to_hash)
- # oldval.class.to_s == 'Hash' && newval.class.to_s == 'Hash' ? oldval.deep_merge(newval) : newval
- # end
- # end
+ def deep_merge(other_hash)
+ self.merge(other_hash) do |key, oldval, newval|
+ oldval = oldval.to_hash if oldval.respond_to?(:to_hash)
+ newval = newval.to_hash if newval.respond_to?(:to_hash)
+ oldval.class.to_s == 'Hash' && newval.class.to_s == 'Hash' ? oldval.deep_merge(newval) : newval
+ end
+ end
- # def deep_merge!(other_hash)
- # replace(deep_merge(other_hash))
- # end
+ def deep_merge!(other_hash)
+ replace(deep_merge(other_hash))
+ end
end