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
|