class Hash

Hash class method additions

Public Instance Methods

deep_merge(second) click to toggle source
# 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) click to toggle source
# 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