class Hash

Allow recursive merging of Hashes thanks to stackoverflow.com/a/25990044

Public Instance Methods

deep_merge(second) click to toggle source
# File lib/ruby_wings.rb, line 40
def deep_merge(second)
  merger = proc do |key, v1, v2|
    if Hash === v1 && Hash === v2
      v1.merge(v2, &merger)
    else
      [:undefined, nil, :nil].include?(v2) ? v1 : v2
    end
  end
  self.merge(second, &merger)
end
symbolize() click to toggle source
# File lib/ruby_wings.rb, line 51
def symbolize
  Hash[
    self.map do |k, v|
      [(k.respond_to?(:to_sym) ? k.to_sym : k), v.class == Hash ? v.symbolize : v]
    end
  ]
end