Module: Trevl::CoreExt::Hash
- Defined in:
- lib/trevl/core_ext/hash.rb
Class Method Summary collapse
Class Method Details
.deep_dup(hash) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/trevl/core_ext/hash.rb', line 6 def self.deep_dup(hash) hash.each_with_object({}) do |(key, value), result| result[key] = case value when ::Hash then deep_dup(value) when ::Array then value.map { |v| v.is_a?(::Hash) ? deep_dup(v) : v } else value end end end |
.deep_merge(base, override) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/trevl/core_ext/hash.rb', line 26 def self.deep_merge(base, override) base.merge(override) do |_key, base_val, override_val| if base_val.is_a?(::Hash) && override_val.is_a?(::Hash) deep_merge(base_val, override_val) else override_val end end end |
.deep_stringify_keys(hash) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/trevl/core_ext/hash.rb', line 16 def self.deep_stringify_keys(hash) hash.each_with_object({}) do |(key, value), result| result[key.to_s] = case value when ::Hash then deep_stringify_keys(value) when ::Array then value.map { |v| v.is_a?(::Hash) ? deep_stringify_keys(v) : v } else value end end end |