Method: Sensu::Utilities#deep_merge
- Defined in:
- lib/sensu/utilities.rb
#deep_merge(hash_one, hash_two) ⇒ Hash
Deep merge two hashes. Nested hashes are deep merged, arrays are concatenated and duplicate array items are removed.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/sensu/utilities.rb', line 40 def deep_merge(hash_one, hash_two) merged = hash_one.dup hash_two.each do |key, value| merged[key] = case when hash_one[key].is_a?(Hash) && value.is_a?(Hash) deep_merge(hash_one[key], value) when hash_one[key].is_a?(Array) && value.is_a?(Array) (hash_one[key] + value).uniq else value end end merged end |