class Hash

Public Instance Methods

deep_transform_keys(&block) click to toggle source
# File lib/extensions.rb, line 36
def deep_transform_keys(&block)
  _deep_transform_keys_in_object(self, &block)
end
symbolize_keys() click to toggle source
# File lib/extensions.rb, line 20
def symbolize_keys
  transform_keys { |key| key.to_sym rescue key }
end
to_param(namespace = nil)
Alias for: to_query
to_query(namespace = nil) click to toggle source
# File lib/extensions.rb, line 24
def to_query(namespace = nil)
  query = collect do |key, value|
    unless (value.is_a?(Hash) || value.is_a?(Array)) && value.empty?
      value.to_query(namespace ? "#{namespace}[#{key}]" : key)
    end
  end.compact

  query.sort! unless namespace.to_s.include?("[]")
  query.join("&")
end
Also aliased as: to_param

Private Instance Methods

_deep_transform_keys_in_object(object) { |key| ... } click to toggle source
# File lib/extensions.rb, line 42
def _deep_transform_keys_in_object(object, &block)
  case object
  when Hash
    object.each_with_object({}) do |(key, value), result|
      result[yield(key)] = _deep_transform_keys_in_object(value, &block)
    end
  when Array
    object.map { |e| _deep_transform_keys_in_object(e, &block) }
  else
    object
  end
end