class Hash
raw.github.com/Offirmo/hash-deep-merge/master/lib/hash_deep_merge.rb
Public Instance Methods
deep_merge(specialized_hash)
click to toggle source
# File lib/riemann/babbler/monkey_patches.rb, line 34 def deep_merge(specialized_hash) internal_deep_merge!(Hash.new.replace(self), specialized_hash) end
deep_merge!(specialized_hash)
click to toggle source
# File lib/riemann/babbler/monkey_patches.rb, line 29 def deep_merge!(specialized_hash) internal_deep_merge!(self, specialized_hash) end
Protected Instance Methods
internal_deep_merge!(source_hash, specialized_hash)
click to toggle source
# File lib/riemann/babbler/monkey_patches.rb, line 41 def internal_deep_merge!(source_hash, specialized_hash) specialized_hash.each_pair do |rkey, rval| if source_hash.has_key?(rkey) then if rval.is_a?(Hash) and source_hash[rkey].is_a?(Hash) then internal_deep_merge!(source_hash[rkey], rval) elsif rval == source_hash[rkey] then else source_hash[rkey] = rval end else source_hash[rkey] = rval end end source_hash end