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