Class: Restforce::DB::Initializer

Inherits:
Object
  • Object
show all
Defined in:
lib/restforce/db/initializer.rb

Overview

Restforce::DB::Initializer is responsible for ensuring that both systems are populated with the same records at the root level. It iterates through recently added or updated records in each system for a mapping, and creates a matching record in the other system, when necessary.

Instance Method Summary collapse

Constructor Details

#initialize(mapping, runner = Runner.new) ⇒ Initializer

Public: Initialize a Restforce::DB::Initializer.

mapping - A Restforce::DB::Mapping. runner - A Restforce::DB::Runner.



15
16
17
18
19
# File 'lib/restforce/db/initializer.rb', line 15

def initialize(mapping, runner = Runner.new)
  @mapping = mapping
  @strategy = mapping.strategy
  @runner = runner
end

Instance Method Details

#runObject

Public: Run the initialization loop for this mapping.

Returns nothing.



24
25
26
27
28
29
30
31
# File 'lib/restforce/db/initializer.rb', line 24

def run
  return if @strategy.passive?

  @runner.run(@mapping) do |run|
    run.salesforce_instances.each { |instance| create_in_database(instance) }
    run.database_instances.each { |instance| create_in_salesforce(instance) }
  end
end