class AppleCore::Transforms::Enumerable

Public Class Methods

deep_transform_keys(object) { |key| ... } click to toggle source
# File lib/apple_core/transforms/enumerable.rb, line 14
def self.deep_transform_keys(object, &block)
  case object
  when ::Hash
    object.each_with_object({}) do |(key, value), result|
      result[yield(key)] = deep_transform_keys(value, &block)
    end
  when ::Array
    object.map { |e| deep_transform_keys(e, &block) }
  else
    object
  end
end
deep_transform_values(key, value) { |key, map { |v| deep_transform_values(nil, v, &block) }| ... } click to toggle source
# File lib/apple_core/transforms/enumerable.rb, line 27
def self.deep_transform_values(key, value, &block)
  if value.is_a?(::Hash)
    value.each_with_object({}) do |(k, v), memo|
      memo[k] = deep_transform_values(k, v, &block)
    end
  elsif value.is_a?(::Array)
    yield(
      key,
      value.map { |v| deep_transform_values(nil, v, &block) }
    )
  else
    yield(key, value)
  end
end
deep_underscore_keys(other) click to toggle source
# File lib/apple_core/transforms/enumerable.rb, line 10
def self.deep_underscore_keys(other)
  deep_transform_keys(other, &:underscore)
end