Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/deep_merge_existing_keys/core_ext/hash.rb
Instance Method Summary collapse
- #deep_merge_existing_keys(other_hash, &block) ⇒ Object
- #deep_merge_existing_keys!(other_hash, &block) ⇒ Object
Instance Method Details
#deep_merge_existing_keys(other_hash, &block) ⇒ Object
2 3 4 |
# File 'lib/deep_merge_existing_keys/core_ext/hash.rb', line 2 def deep_merge_existing_keys(other_hash, &block) dup.deep_merge_existing_keys!(other_hash, &block) end |
#deep_merge_existing_keys!(other_hash, &block) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/deep_merge_existing_keys/core_ext/hash.rb', line 6 def deep_merge_existing_keys!(other_hash, &block) other_hash.each_pair do |k,v| next unless self.keys.include? k self[k] = if self[k].is_a?(Hash) && v.is_a?(Hash) self[k].deep_merge_existing_keys(v, &block) elsif block_given? block.call(k, self[k], v) else v end end self end |