Class: Janko::BulkMerge

Inherits:
Object
  • Object
show all
Defined in:
lib/janko/bulk_merge.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ BulkMerge

Returns a new instance of BulkMerge.



7
8
9
10
11
12
13
14
# File 'lib/janko/bulk_merge.rb', line 7

def initialize(options = {})
    @options = options
    @target = "merge_#{SecureRandom.hex(8)}"
    @upsert = Upsert.new(options.merge(from_table: @target))
    @importer = Import.new(strategy: Janko::CopyImporter,
        table: @target, connection: connection,
        columns: options[:columns])
end

Instance Method Details

#connectionObject



38
39
40
# File 'lib/janko/bulk_merge.rb', line 38

def connection
    @options[:connection]
end

#push(*values) ⇒ Object



22
23
24
25
# File 'lib/janko/bulk_merge.rb', line 22

def push(*values)
    @importer.push(*values)
    self
end

#resultObject



34
35
36
# File 'lib/janko/bulk_merge.rb', line 34

def result
    @upsert.result
end

#startObject



16
17
18
19
20
# File 'lib/janko/bulk_merge.rb', line 16

def start
    create_copy_target
    @importer.start
    self
end

#stopObject



27
28
29
30
31
32
# File 'lib/janko/bulk_merge.rb', line 27

def stop
    @importer.stop
    @upsert.process.cleanup
    drop_copy_target
    self
end