class Hash

Hash - Core Extensions

Public Instance Methods

recursively_symbolize_keys!() click to toggle source
# File lib/ext/hash.rb, line 3
def recursively_symbolize_keys!
  return self unless respond_to?(:keys)
  keys.each do |k|
    ks = k.respond_to?(:to_sym) ? k.to_sym : k
    self[ks] = self.delete k # Preserve order even when k == ks
    self[ks].recursively_symbolize_keys! if self[ks].kind_of? Hash
    if self[ks].kind_of?(Array) && !self[ks].first.kind_of?(Array)
      self[ks].map!{|v| self[ks].kind_of?(Hash) ? v.recursively_symbolize_keys! : v }
    end
  end
  self
end