Sha256: fb1ee8963e23b2f5b4a439d630aba7554b315fc207483bf5c4b2dd5b7f47911f

Contents?: true

Size: 519 Bytes

Versions: 4

Compression:

Stored size: 519 Bytes

Contents

class Hash
  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
      result
    }
  end unless Hash.method_defined?(:deep_symbolize_keys)

  def deep_symbolize_keys!
    replace(deep_symbolize_keys)
  end unless Hash.method_defined?(:deep_symbolize_keys!)
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
perkins-0.0.5 lib/core_ext/hash/deep_symbolize_keys.rb
perkins-0.0.3 lib/core_ext/hash/deep_symbolize_keys.rb
perkins-0.0.2 lib/core_ext/hash/deep_symbolize_keys.rb
perkins-0.0.1 lib/core_ext/hash/deep_symbolize_keys.rb