class Babl::Utils::Hash

Constants

EMPTY

Public Class Methods

deep_merge(hashes) click to toggle source
# File lib/babl/utils/hash.rb, line 8
def deep_merge(hashes)
    filtered_hashes = hashes.reject(&:empty?)
    return EMPTY if filtered_hashes.empty?
    return filtered_hashes.first if filtered_hashes.size == 1

    filtered_hashes.reduce({}) { |out, hash| deep_merge_inplace(out, hash) }
end
deep_merge_inplace(target, source) click to toggle source
# File lib/babl/utils/hash.rb, line 16
def deep_merge_inplace(target, source)
    source.each { |k, v| target[k] = deep_merge_inplace(target[k] || {}, v) }
    target
end