Module: Tins::HashSymbolizeKeysRecursive

Defined in:
lib/tins/hash_symbolize_keys_recursive.rb

Instance Method Summary collapse

Instance Method Details

#symbolize_keys_recursiveObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/tins/hash_symbolize_keys_recursive.rb', line 3

def symbolize_keys_recursive
  inject(self.class.new) do |h,(k, v)|
    k = k.to_s
    k.empty? and next
    case v
    when Hash
      h[k.to_sym] = v.symbolize_keys_recursive
    when Array
      h[k.to_sym] = a = v.dup
      v.each_with_index do |x, i|
        Hash === x and a[i] = x.symbolize_keys_recursive
      end
    else
      h[k.to_sym] = v
    end
    h
  end
end

#symbolize_keys_recursive!Object



22
23
24
# File 'lib/tins/hash_symbolize_keys_recursive.rb', line 22

def symbolize_keys_recursive!
  replace symbolize_keys_recursive
end