Class: Hash

Inherits:
Object show all
Defined in:
lib/core_ext/hash.rb,
lib/core_ext/blank.rb

Instance Method Summary collapse

Instance Method Details

#deep_modify_keys(modification = :symbolize) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/core_ext/hash.rb', line 2

def deep_modify_keys(modification = :symbolize)
  if modification == :camelize
    Hash[
      self.map do |key, value|
        [key.to_camelcase.to_sym, value.is_a?(Hash) ? value.deep_modify_keys(:camelize) : value]
      end
    ]
  elsif modification == :underscorize
    Hash[
      self.map do |key, value|
        [key.to_underscore.to_sym, value.is_a?(Hash) ? value.deep_modify_keys(:underscorize) : value]
      end
    ]
  else
    Hash[self.map { |key, value| [key.to_sym, value.is_a?(Hash) ? value.deep_modify_keys : value] }]
  end
end

#deep_modify_keys!(modification = :symbolize) ⇒ Object



20
21
22
# File 'lib/core_ext/hash.rb', line 20

def deep_modify_keys!(modification = :symbolize)
  self.replace(deep_modify_keys(modification))
end