class Hash

Constants

DEEP_MERGER

deep_merge_hash! by Stefan Rusterholz, see www.ruby-forum.com/topic/142809

Public Instance Methods

compact() click to toggle source
# File lib/core_ext/hash/compact.rb, line 2
def compact
  inject({}) do |result, (key, value)|
    result[key] = value unless value.nil?
    result
  end
end
deep_merge(data) click to toggle source
# File lib/core_ext/hash/deep_merge.rb, line 7
def deep_merge(data)
  merge(data, &DEEP_MERGER)
end
deep_merge!(data) click to toggle source
# File lib/core_ext/hash/deep_merge.rb, line 11
def deep_merge!(data)
  merge!(data, &DEEP_MERGER)
end
deep_symbolize_keys() click to toggle source
# File lib/core_ext/hash/deep_symbolize_keys.rb, line 2
def deep_symbolize_keys
  inject({}) { |result, (key, value)|
    result[(key.to_sym rescue key) || key] = case value
    when Array
      value.map { |value| value.is_a?(Hash) ? value.deep_symbolize_keys : value }
    when Hash
      value.deep_symbolize_keys
    else
      value
    end