Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/sapience/core_ext/hash.rb

Instance Method Summary collapse

Instance Method Details

#_deep_transform_keys_in_object!(object, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/sapience/core_ext/hash.rb', line 11

def _deep_transform_keys_in_object!(object, &block)
  case object
  when Hash
    object.keys.each do |key|
      value = object.delete(key)
      object[yield(key)] = _deep_transform_keys_in_object!(value, &block)
    end
    object
  when Array
    object.map! { |e| _deep_transform_keys_in_object!(e, &block) }
  else
    object
  end
end

#deep_symbolize_keys!Object

Returns a Hash with all keys symbolized



3
4
5
# File 'lib/sapience/core_ext/hash.rb', line 3

def deep_symbolize_keys!
  deep_transform_keys! { |key| key.to_sym rescue key } # rubocop:disable RescueModifier
end

#deep_transform_keys!(&block) ⇒ Object



7
8
9
# File 'lib/sapience/core_ext/hash.rb', line 7

def deep_transform_keys!(&block)
  _deep_transform_keys_in_object!(self, &block)
end