Class: Pinnacle::Internal::CursorItemIterator

Inherits:
ItemIterator
  • Object
show all
Defined in:
lib/pinnacle/internal/iterators/cursor_item_iterator.rb

Instance Method Summary collapse

Methods inherited from ItemIterator

#each, #next?, #next_element

Constructor Details

#initialize(initial_cursor:, cursor_field:, item_field:) ⇒ Pinnacle::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
18
# File 'lib/pinnacle/internal/iterators/cursor_item_iterator.rb', line 13

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

Instance Method Details

#pagesPinnacle::Internal::CursorPageIterator

Returns the CursorPageIterator mediating access to the underlying API.



23
24
25
# File 'lib/pinnacle/internal/iterators/cursor_item_iterator.rb', line 23

def pages
  @page_iterator
end