Module: ImageOptim::HashHelpers
- Defined in:
- lib/image_optim/hash_helpers.rb
Class Method Summary collapse
- .deep_merge(a, b) ⇒ Object
- .deep_stringify_keys(hash) ⇒ Object
- .deep_symbolise_keys(hash) ⇒ Object
- .deep_transform_keys(hash, &block) ⇒ Object
Class Method Details
.deep_merge(a, b) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/image_optim/hash_helpers.rb', line 24 def deep_merge(a, b) a.merge(b) do |k, v_a, v_b| if v_a.is_a?(Hash) && v_b.is_a?(Hash) deep_merge(v_a, v_b) else v_b end end end |
.deep_stringify_keys(hash) ⇒ Object
16 17 18 |
# File 'lib/image_optim/hash_helpers.rb', line 16 def deep_stringify_keys(hash) deep_transform_keys(hash, &:to_s) end |
.deep_symbolise_keys(hash) ⇒ Object
20 21 22 |
# File 'lib/image_optim/hash_helpers.rb', line 20 def deep_symbolise_keys(hash) deep_transform_keys(hash, &:to_sym) end |
.deep_transform_keys(hash, &block) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/image_optim/hash_helpers.rb', line 4 def deep_transform_keys(hash, &block) new_hash = {} hash.each do |k, v| new_hash[block.call(k)] = if v.is_a?(Hash) deep_transform_keys(v, &block) else v end end new_hash end |