5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/mailchimp_api/resources/support/enumerable.rb', line 5
def enumerator(page_size: 10, params: {})
CachingEnumerator.new do |y|
number_of_items = count params: params
number_of_pages = (number_of_items / page_size).ceil
current_page = 0
loop do
all_params = {
offset: current_page * page_size,
count: page_size
}.merge(params)
results = find :all, params: all_params
current_page += 1
results.each do |result|
y.yield result
end
break if results.empty? || (current_page >= number_of_pages)
end
end
end
|