From 113d3a59eaa7547433434d155fc1e60aa7c2094c Mon Sep 17 00:00:00 2001 From: elijah Date: Thu, 11 Oct 2012 00:42:46 -0700 Subject: code cleanup. better support for nested configs and templates. --- lib/core_ext/hash.rb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'lib/core_ext/hash.rb') 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 -- cgit v1.2.3