class Nokotime::Request::MultiplePages

Attributes

last_responses[R]
params[R]
path[R]

Public Instance Methods

get(path, params: {}) click to toggle source
# File lib/nokotime/request/multiple_pages.rb, line 8
def get(path, params: {})
  @path ||= path
  @params ||= params.compact

  retrieve_all_pages

  self
end

Private Instance Methods

client() click to toggle source
# File lib/nokotime/request/multiple_pages.rb, line 45
def client
  @client ||= Connection.new
end
first_page() click to toggle source
# File lib/nokotime/request/multiple_pages.rb, line 32
def first_page
  @first_page ||= first_single_page.get(
    path, params: params
  )
  @first_response = @first_page.last_response

  @first_page
end
first_single_page() click to toggle source
# File lib/nokotime/request/multiple_pages.rb, line 41
def first_single_page
  @first_single_page ||= SinglePage.new
end
retrieve_all_pages() click to toggle source
# File lib/nokotime/request/multiple_pages.rb, line 19
def retrieve_all_pages
  @last_responses ||= client.get_in_parallel(
    path, 2, total_pages, params: params
  )

  @last_responses.unshift([@first_response])
  @last_responses.flatten!
end
total_pages() click to toggle source
# File lib/nokotime/request/multiple_pages.rb, line 28
def total_pages
  @total_pages ||= first_page.total_pages
end