Class: Candid::Internal::CursorItemIterator

Inherits:
ItemIterator show all
Defined in:
lib/candid/internal/iterators/cursor_item_iterator.rb

Instance Method Summary collapse

Methods inherited from ItemIterator

#each, #get_next, #has_next?

Constructor Details

#initialize(initial_cursor:, cursor_field:, item_field:, &block) ⇒ Candid::Internal::CursorItemIterator

Instantiates a CursorItemIterator, an Enumerable class which wraps calls to a cursor-based paginated API and yields individual items from it.

Parameters:

  • initial_cursor (String)

    The initial cursor to use when iterating, if any.

  • cursor_field (Symbol)

    The field in API responses to extract the next cursor from.

  • item_field (Symbol)

    The field in API responses to extract the items to iterate over.

  • block (Proc)

    A block which is responsible for receiving a cursor to use and returning the given page from the API.



13
14
15
16
17
# File 'lib/candid/internal/iterators/cursor_item_iterator.rb', line 13

def initialize(initial_cursor:, cursor_field:, item_field:, &block)
  @item_field = item_field
  @page_iterator = CursorPageIterator.new(initial_cursor:, cursor_field:, &block)
  @page = nil
end

Instance Method Details

#pagesCandid::Internal::CursorPageIterator

Returns the CursorPageIterator mediating access to the underlying API.



22
23
24
# File 'lib/candid/internal/iterators/cursor_item_iterator.rb', line 22

def pages
  @page_iterator
end