Module: Grocer::Extensions::DeepSymbolizeKeys

Defined in:
lib/grocer/extensions/deep_symbolize_keys.rb

Instance Method Summary collapse

Instance Method Details

#deep_symbolize_keysObject



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/grocer/extensions/deep_symbolize_keys.rb', line 5

def deep_symbolize_keys
  result = {}
  each do |key, value|
    # Workaround for JRuby defining Fixnum#to_sym even in 1.9 mode
    symbolized_key = key.is_a?(Fixnum) ? key : (key.to_sym rescue key)

    result[symbolized_key] = value.is_a?(Hash) ?
      (value.extend DeepSymbolizeKeys).deep_symbolize_keys : value
  end
  result
end