class FreckleIO::Request::MultiplePages
Attributes
last_responses[R]
params[R]
path[R]
Public Instance Methods
get(path, params: {})
click to toggle source
# File lib/freckle_io/request/multiple_pages.rb, line 10 def get(path, params: {}) @path ||= path @params ||= default_params.merge(params).compact retrieve_all_pages self end
Private Instance Methods
client()
click to toggle source
# File lib/freckle_io/request/multiple_pages.rb, line 51 def client @client ||= Connection.new end
default_params()
click to toggle source
# File lib/freckle_io/request/multiple_pages.rb, line 55 def default_params { per_page: FreckleIO.configuration.per_page } end
first_page()
click to toggle source
# File lib/freckle_io/request/multiple_pages.rb, line 37 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/freckle_io/request/multiple_pages.rb, line 47 def first_single_page @first_single_page ||= SinglePage.new end
retrieve_all_pages()
click to toggle source
# File lib/freckle_io/request/multiple_pages.rb, line 21 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/freckle_io/request/multiple_pages.rb, line 33 def total_pages @total_pages ||= first_page.total_pages end