Class: Sequence::Query::PageQuery

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/sequence/query.rb

Instance Method Summary collapse

Constructor Details

#initialize(client, query, fetch, translate) ⇒ PageQuery

Returns a new instance of PageQuery.



63
64
65
66
67
68
# File 'lib/sequence/query.rb', line 63

def initialize(client, query, fetch, translate)
  @client = client
  @query = query
  @fetch = fetch
  @translate = translate
end

Instance Method Details

#eachObject



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/sequence/query.rb', line 70

def each
  page = nil

  loop do
    page = Page.new(@fetch.call(@query), @translate)
    @query = { cursor: page.cursor }
    yield page

    break if page.last_page

    # The second predicate (empty?) *should* be redundant, but we check it
    # anyway as a defensive measure.
    break if page.items.empty?
  end
end

#pageObject



86
87
88
# File 'lib/sequence/query.rb', line 86

def page
  Page.new(@fetch.call(@query), @translate)
end