module Grape::Extensions::DeepSymbolizeHash

Public Class Methods

deep_symbolize_keys_in(object) click to toggle source
# File lib/grape/extensions/deep_symbolize_hash.rb, line 4
def self.deep_symbolize_keys_in(object)
  case object
  when ::Hash
    object.each_with_object({}) do |(key, value), new_hash|
      new_hash[symbolize_key(key)] = deep_symbolize_keys_in(value)
    end
  when ::Array
    object.map { |element| deep_symbolize_keys_in(element) }
  else
    object
  end
end
symbolize_key(key) click to toggle source
# File lib/grape/extensions/deep_symbolize_hash.rb, line 17
def self.symbolize_key(key)
  if key.is_a?(Symbol)
    key
  elsif key.is_a?(String)
    key.to_sym
  elsif key.respond_to?(:to_sym)
    key.to_sym
  else
    key
  end
end