class Hash

Public Instance Methods

deep_modify_keys(modification = :symbolize) click to toggle source
# File lib/core_ext/hash.rb, line 2
def deep_modify_keys(modification = :symbolize)
  if modification == :camelize
    Hash[
      self.map do |key, value|
        [key.to_camelcase.to_sym, value.is_a?(Hash) ? value.deep_modify_keys(:camelize) : value]
      end
    ]
  elsif modification == :underscorize
    Hash[
      self.map do |key, value|
        [key.to_underscore.to_sym, value.is_a?(Hash) ? value.deep_modify_keys(:underscorize) : value]
      end
    ]
  else
    Hash[self.map { |key, value| [key.to_sym, value.is_a?(Hash) ? value.deep_modify_keys : value] }]
  end
end
deep_modify_keys!(modification = :symbolize) click to toggle source
# File lib/core_ext/hash.rb, line 20
def deep_modify_keys!(modification = :symbolize)
  self.replace(deep_modify_keys(modification))
end