Module: HashExtensions

Defined in:
lib/hash_extensions.rb

Instance Method Summary collapse

Instance Method Details

#deep_merge(hash_to_merge) ⇒ Object



12
13
14
15
# File 'lib/hash_extensions.rb', line 12

def deep_merge(hash_to_merge)
  merger = proc { |_, val_1, val_2| val_1.is_a?(Hash) && val_2.is_a?(Hash) ? val_1.merge(val_2, &merger) : val_2 }
  merge(hash_to_merge, &merger)
end

#to_nestedObject



4
5
6
7
8
9
10
# File 'lib/hash_extensions.rb', line 4

def to_nested
  self unless contains_dotted_key?

  keys.reduce({}) do |nested, key|
    nested.deep_merge(build_nested_object(key, self[key]))
  end
end