Class: Castle::Utils::Merger

Inherits:
Object
  • Object
show all
Defined in:
lib/castle/utils/merger.rb

Class Method Summary collapse

Class Method Details

.call(first, second) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/castle/utils/merger.rb', line 6

def self.call(first, second)
  Castle::Utils.deep_symbolize_keys!(first)
  Castle::Utils.deep_symbolize_keys!(second)

  second.each do |name, value|
    if value.nil?
      first.delete(name)
    elsif value.is_a?(Hash) && first[name].is_a?(Hash)
      call(first[name], value)
    else
      first[name] = value
    end
  end
  first
end