Module: TestConfig::HashMethods
- Defined in:
- lib/test_config/hash_methods.rb
Class Method Summary collapse
Class Method Details
.deep_merge(orig_data, new_data) ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/test_config/hash_methods.rb', line 19 def self.deep_merge(orig_data, new_data) merger = proc do |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 end orig_data.merge(new_data, &merger) end |
.deep_symbolize(data) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/test_config/hash_methods.rb', line 3 def self.deep_symbolize(data) if data.is_a?(Hash) return data.inject({}) do |memo, (k, v)| memo.tap { |m| m[k.to_sym] = deep_symbolize(v) } end end if data.is_a?(Array) return data.inject([]) do |memo, v| memo << deep_symbolize(v); memo end end data end |