Class: AppleCore::Transforms::Enumerable
- Inherits:
-
Object
- Object
- AppleCore::Transforms::Enumerable
- Defined in:
- lib/apple_core/transforms/enumerable.rb
Class Method Summary collapse
- .deep_transform_keys(object, &block) ⇒ Object
- .deep_transform_values(key, value, &block) ⇒ Object
- .deep_underscore_keys(other) ⇒ Object
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 |