Class: Atum::Core::Paginator
- Inherits:
-
Object
- Object
- Atum::Core::Paginator
- Defined in:
- lib/atum/core/paginator.rb
Constant Summary collapse
- LIMIT_INCREMENT =
50
Instance Method Summary collapse
- #enumerator ⇒ Object
-
#initialize(request, initial_response, options) ⇒ Paginator
constructor
A new instance of Paginator.
Constructor Details
#initialize(request, initial_response, options) ⇒ Paginator
Returns a new instance of Paginator.
6 7 8 9 10 |
# File 'lib/atum/core/paginator.rb', line 6 def initialize(request, initial_response, ) @request = request @options = @initial_response = initial_response end |
Instance Method Details
#enumerator ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/atum/core/paginator.rb', line 12 def enumerator response = @initial_response Enumerator.new do |yielder| loop do items = @request.unenvelope(response.body) items.each { |item| yielder << item } break if items.count < response.limit = @options.dup [:query] = @options.fetch(:query, {}).merge( after: response.['cursors']['after'], limit: response.limit + LIMIT_INCREMENT) response = @request.make_request() end end.lazy end |