Module: Puppet::Util::CollectionMerger

Included in:
Rails::Host, Rails::ParamName, Rails::Resource
Defined in:
lib/vendor/puppet/util/rails/collection_merger.rb

Instance Method Summary collapse

Instance Method Details

#ar_hash_merge(db_hash, mem_hash, args) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/vendor/puppet/util/rails/collection_merger.rb', line 2

def ar_hash_merge(db_hash, mem_hash, args)
  (db_hash.keys | mem_hash.keys).each do |key|
    if (db_hash[key] && mem_hash[key])
      # in both, update value
      args[:modify].call(db_hash[key], mem_hash[key])
    elsif (db_hash[key])
      # in db, not memory, delete from database
      args[:delete].call(db_hash[key])
    else
      # in mem, not in db, insert into the database
      args[:create].call(key, mem_hash[key])
    end
  end
end