Class: Object
- Inherits:
- BasicObject
- Defined in:
- lib/eluvia/utils/hash_and_array.rb
Constant Summary collapse
- COMPACTABLE =
[nil, [], {}].freeze
Instance Method Summary collapse
-
#deep_camel_keys ⇒ Object
Deep camel case keys.
- #deep_compact(compactable: COMPACTABLE) ⇒ Object
-
#deep_integerize_keys ⇒ Object
Deep integerize keys.
-
#deep_snake_keys ⇒ Object
Deep snake case keys.
Instance Method Details
#deep_camel_keys ⇒ Object
Deep camel case keys
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/eluvia/utils/hash_and_array.rb', line 34 def deep_camel_keys if self.is_a?(::Hash) self.each_with_object({}) { |(k, v), memo| memo[k.to_s.camelize] = v.deep_camel_keys } elsif self.is_a?(::Array) self.each_with_object([]) { |v, memo| memo << v.deep_camel_keys } else self end end |
#deep_compact(compactable: COMPACTABLE) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/eluvia/utils/hash_and_array.rb', line 50 def deep_compact(compactable: COMPACTABLE) if self.is_a?(::Array) self.each_with_object([]) do |v, a| v = v.deep_compact(compactable: compactable) a << v unless compactable.include?(v) end elsif self.is_a?(::Hash) self.each_with_object({}) do |(k, v), h| v = v.deep_compact(compactable: compactable) h[k] = v unless compactable.include?(v) end else self end end |
#deep_integerize_keys ⇒ Object
Deep integerize keys
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/eluvia/utils/hash_and_array.rb', line 4 def deep_integerize_keys if self.is_a?(::Hash) self.each_with_object({}) { |(k, v), memo| memo[k.to_i] = v.deep_integerize_keys } elsif self.is_a?(::Array) self.each_with_object([]) { |v, memo| memo << v.deep_integerize_keys } else self end end |
#deep_snake_keys ⇒ Object
Deep snake case keys
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/eluvia/utils/hash_and_array.rb', line 19 def deep_snake_keys if self.is_a?(::Hash) self.each_with_object({}) { |(k, v), memo| memo[k.to_s.underscore] = v.deep_snake_keys } elsif self.is_a?(::Array) self.each_with_object([]) { |v, memo| memo << v.deep_snake_keys } else self end end |