Module: Array::EachBatch

Defined in:
lib/vex/base/array/each_batch.rb

Instance Method Summary collapse

Instance Method Details

#each_batch(batch_size = 1000, &block) ⇒ Object


2
3
4
5
6
7
8
9
10
11
# File 'lib/vex/base/array/each_batch.rb', line 2

def each_batch(batch_size = 1000, &block)
  raise "Invalid parameter #{batch_size.inspect}, must be a Fixnum" unless batch_size.is_a?(Fixnum)

  data = dup
  begin
    batch = data.slice!(0..(batch_size-1))
    yield batch
  end until data.empty?
  self
end