module TestConfig::HashMethods
Public Class Methods
deep_merge(orig_data, new_data)
click to toggle source
# 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)
click to toggle source
# 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