module Hashie::Extensions::SymbolizeKeys

def symbolize_keys

to symbols.
Return a new hash with all keys converted
def symbolize_keys
  dup.symbolize_keys!
end

def symbolize_keys!

test # => {:abc => 'def'}
test.symbolize_keys!
test = {'abc' => 'def'}
@example

Convert all keys in the hash to symbols.
def symbolize_keys!
  keys.each do |k|
    symbolize_keys_recursively!(self[k])
    self[k.to_sym] = self.delete(k)
  end
  self
end

def symbolize_keys_recursively!(object)

hashes and arrays.
Symbolize all keys recursively within nested
def symbolize_keys_recursively!(object)
  if self.class === object
    object.symbolize_keys!
  elsif ::Array === object
    object.each do |i|
      symbolize_keys_recursively!(i)
    end
    object
  elsif object.respond_to?(:symbolize_keys!)
    object.symbolize_keys!
  else
    object
  end
end