Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/automation_object/helpers/hash.rb

Overview

Hash class method additions

Instance Method Summary collapse

Instance Method Details

#deep_merge(second) ⇒ Object



5
6
7
8
# File 'lib/automation_object/helpers/hash.rb', line 5

def deep_merge(second)
  merger = proc { |_key, v1, v2| v1.is_a?(Hash) && v2.is_a?(Hash) ? v1.merge(v2, &merger) : v2 }
  merge(second, &merger)
end

#symbolize_keys_deep!(h = self) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/automation_object/helpers/hash.rb', line 10

def symbolize_keys_deep!(h = self)
  h.keys.each do |k|
    ks = k.respond_to?(:to_sym) ? k.to_sym : k
    h[ks] = h.delete k # Preserve order even when k == ks
    symbolize_keys_deep! h[ks] if h[ks].is_a?(Hash)
  end
end