Module: Util
- Defined in:
- lib/util/hash_recursive.rb
Class Method Summary collapse
- .each_recursive(hash, &block) ⇒ Object
- .merge_recursive!(*hashes) ⇒ Object
- .recursive_transform_key_value!(hash, &block) ⇒ Object
Class Method Details
.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 |
.recursive_transform_key_value!(hash, &block) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/util/hash_recursive.rb', line 22 def self.recursive_transform_key_value!(hash, &block) hash.transform_keys! do |key| value = hash[key] next recursive_transform_key_value!(value, &block) if value.is_a?(Hash) block.call(key, value) end end |