module Hashie::Extensions::SymbolizeKeys::ClassMethods

def symbolize_keys(hash)

Parameters:
  • hash (::Hash) --
def symbolize_keys(hash)
  copy = hash.dup
  copy.extend(Hashie::Extensions::SymbolizeKeys) unless copy.respond_to?(:symbolize_keys!)
  copy.tap do |new_hash|
    symbolize_keys!(new_hash)
  end
end

def symbolize_keys!(hash)

Parameters:
  • hash (Hash) --
def symbolize_keys!(hash)
  hash.extend(Hashie::Extensions::SymbolizeKeys) unless hash.respond_to?(:symbolize_keys!)
  hash.keys.each do |k| # rubocop:disable Performance/HashEachMethods
    symbolize_keys_recursively!(hash[k])
    hash[k.to_sym] = hash.delete(k)
  end
  hash
end

def symbolize_keys_recursively!(object)

Other tags:
    Api: - private
def symbolize_keys_recursively!(object)
  case object
  when self.class
    symbolize_keys!(object)
  when ::Array
    object.each do |i|
      symbolize_keys_recursively!(i)
    end
  when ::Hash
    symbolize_keys!(object)
  end
end