module Spruz::HashSymbolizeKeysRecursive

Public Instance Methods

symbolize_keys_recursive() click to toggle source
# File lib/spruz/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!() click to toggle source
# File lib/spruz/hash_symbolize_keys_recursive.rb, line 22
def symbolize_keys_recursive!
  replace symbolize_keys_recursive
end