I have an API call that needs to be made in "chunks" (due to API limits). I'd then loop through that data.
All of this happens in a rake task.
Here's the loop:
Stripe::Event.all(:count => 100, :offset => 0).each do |event|
end
But I need to increment the offset
parameter by 100 (ie. 100, 200, 300) to actually be able to loop through all the events.
So what's the best way to increment that offset
parameter within the rake task?
If Stripe::Event is an ActiveRecord model, I think you are looking for:
Stripe::Event.find_in_batches(:batch_size => 100).each do |batch|
batch.each do |event|
...
end
end
Otherwise I think you could look at http://apidock.com/rails/ActiveRecord/Batches/find_in_batches for inspiration on how to solve this problem.
The most straight forward would be something like
events = "not blank"
count = 100
offset = 0
until events.blank? do
events = Stripe::Event.all(:count => count, :offset => offset)
events.each do |event|
end
offset += count
end