Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/ext/hash.rb

Overview

Hash - Core Extensions

Instance Method Summary collapse

Instance Method Details

#recursively_symbolize_keys!Object



3
4
5
6
7
8
9
10
11
12
13
14
# 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