module Grocer::Extensions::DeepSymbolizeKeys

Public Instance Methods

deep_symbolize_keys() click to toggle source
# 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
    # (now updated to Integer, for Ruby >= 2.4.0)
    symbolized_key = key.is_a?(Integer) ? key : (key.to_sym rescue key)

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