Module: Util
- Defined in:
- lib/util/hash_recursive.rb
Class Method Summary collapse
- .clone_recursive(hash) ⇒ Object
- .each_recursive(hash, &block) ⇒ Object
- .merge_recursive!(*hashes) ⇒ Object
Class Method Details
.clone_recursive(hash) ⇒ Object
22 23 24 25 26 |
# File 'lib/util/hash_recursive.rb', line 22 def self.clone_recursive(hash) hash.transform_values do |value| value.is_a?(Hash) ? clone_recursive(value) : value end end |
.each_recursive(hash, &block) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/util/hash_recursive.rb', line 14 def self.each_recursive(hash, &block) hash.each do |key, value| next block.call(hash, key, value) unless value.is_a?(Hash) block.call(hash, key, each_recursive(value, &block)) end end |
.merge_recursive!(*hashes) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'lib/util/hash_recursive.rb', line 4 def self.merge_recursive!(*hashes) hashes[0].merge!(*hashes[1..]) do |_key, old, new| if old.is_a?(Hash) && new.is_a?(Hash) merge_recursive!(old, new) else new end end end |