class Hash

Patch to hash

Public Instance Methods

deep_symbolize_keys() click to toggle source

activesupport-4.1.1/lib/active_support/core_ext/hash/keys.rb

# File lib/fusuma/hash_support.rb, line 6
def deep_symbolize_keys
  deep_transform_keys do |key|
    key.to_sym
  rescue StandardError
    key
  end
end
deep_transform_keys() { |key| ... } click to toggle source
# File lib/fusuma/hash_support.rb, line 14
def deep_transform_keys(&block)
  result = {}
  each do |key, value|
    result[yield(key)] = value.is_a?(Hash) ? value.deep_transform_keys(&block) : value
  end
  result
end
deep_transform_values(&block) click to toggle source

activesupport/lib/active_support/core_ext/hash/deep_transform_values.rb

# File lib/fusuma/hash_support.rb, line 23
def deep_transform_values(&block)
  _deep_transform_values_in_object(self, &block)
end

Private Instance Methods

_deep_transform_values_in_object(object) { |object| ... } click to toggle source

Support methods for deep transforming nested hashes and arrays.

# File lib/fusuma/hash_support.rb, line 30
def _deep_transform_values_in_object(object, &block)
  case object
  when Hash
    object.transform_values { |value| _deep_transform_values_in_object(value, &block) }
  when Array
    object.map { |e| _deep_transform_values_in_object(e, &block) }
  else
    yield(object)
  end
end