class Drugbank::Collector
Public Class Methods
new(batch_size, &block)
click to toggle source
# File lib/drugbank/collector.rb, line 3 def initialize(batch_size, &block) @batch_size = batch_size @counter = 0 @batch = [] self.block = block end
Public Instance Methods
<<(value)
click to toggle source
# File lib/drugbank/collector.rb, line 10 def <<(value) @batch << value @counter += 1 collect_batch if @counter % @batch_size == 0 end
block=(block)
click to toggle source
# File lib/drugbank/collector.rb, line 22 def block=(block) @block = block end
collect_batch()
click to toggle source
# File lib/drugbank/collector.rb, line 16 def collect_batch process_batch unless @batch.empty? @batch = [] puts " #{@counter}" end
process_batch()
click to toggle source
# File lib/drugbank/collector.rb, line 26 def process_batch puts "Processing batch .." errors = [] begin block.call(@batch, errors) rescue Exception => e errors << "Error: BATCH FAILED - #{e.message}" ensure puts errors.join("\n") puts "..done" end end
Private Instance Methods
block()
click to toggle source
# File lib/drugbank/collector.rb, line 40 def block @block end