Class: Processor::Data::ActiveRecordBatchProcessor
Instance Attribute Summary collapse
Instance Method Summary
collapse
#error, #finish, #record_error, #start
Constructor Details
#initialize(source:, presenter: -> { Hash.new }, output:, batch_size: 1000) ⇒ ActiveRecordBatchProcessor
Returns a new instance of ActiveRecordBatchProcessor.
8
9
10
11
12
13
|
# File 'lib/processor/data/active_record_batch_processor.rb', line 8
def initialize(source:, presenter: -> { Hash.new }, output:, batch_size: 1000)
@source = source
@presenter = presenter
@output = output
@batch_size = batch_size
end
|
Instance Attribute Details
#source ⇒ Object
Returns the value of attribute source.
6
7
8
|
# File 'lib/processor/data/active_record_batch_processor.rb', line 6
def source
@source
end
|
Instance Method Details
#finalize ⇒ Object
28
29
30
|
# File 'lib/processor/data/active_record_batch_processor.rb', line 28
def finalize
output.close
end
|
#process(record) ⇒ Object
19
20
21
22
|
# File 'lib/processor/data/active_record_batch_processor.rb', line 19
def process(record)
output.write presenter.call(record)
"OK"
end
|
#record_id(record) ⇒ Object
24
25
26
|
# File 'lib/processor/data/active_record_batch_processor.rb', line 24
def record_id(record)
record.id
end
|
#records ⇒ Object
15
16
17
|
# File 'lib/processor/data/active_record_batch_processor.rb', line 15
def records
source.find_each(batch_size: batch_size)
end
|
#total_records ⇒ Object
32
33
34
|
# File 'lib/processor/data/active_record_batch_processor.rb', line 32
def total_records
@total_records ||= source.count
end
|