Class: AppleCore::Transforms::Enumerable

Inherits:
Object
  • Object
show all
Defined in:
lib/apple_core/transforms/enumerable.rb

Class Method Summary collapse

Class Method Details

.deep_transform_keys(object, &block) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# 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, &block) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/apple_core/transforms/enumerable.rb', line 27

def self.deep_transform_values(key, value, &block)
  case value
  when ::Hash
    value.each_with_object({}) do |(k, v), memo|
      memo[k] = deep_transform_values(k, v, &block)
    end
  when ::Array
    yield(
      key,
      value.map { |v| deep_transform_values(nil, v, &block) }
    )
  else
    yield(key, value)
  end
end

.deep_underscore_keys(other) ⇒ Object



10
11
12
# File 'lib/apple_core/transforms/enumerable.rb', line 10

def self.deep_underscore_keys(other)
  deep_transform_keys(other, &:underscore)
end