class Cronofy::Client::PagedResultIterator

Attributes

access_token[R]
params[R]
url[R]

Public Class Methods

new(page_parser, items_key, access_token, url, params) click to toggle source
# File lib/cronofy/client.rb, line 1961
def initialize(page_parser, items_key, access_token, url, params)
  @page_parser = page_parser
  @items_key = items_key
  @access_token = access_token
  @url = url
  @params = params
  @first_page = get_page(url, params)
end

Public Instance Methods

each() { |item| ... } click to toggle source
# File lib/cronofy/client.rb, line 1970
def each
  page = @first_page

  page[@items_key].each do |item|
    yield item
  end

  while page.pages.next_page?
    page = get_page(page.pages.next_page)

    page[@items_key].each do |item|
      yield item
    end
  end
end

Private Instance Methods

get_page(url, params = {}) click to toggle source
# File lib/cronofy/client.rb, line 1992
def get_page(url, params = {})
  response = http_get(url, params)
  parse_page(response)
end
http_get(url, params = {}) click to toggle source
# File lib/cronofy/client.rb, line 1997
def http_get(url, params = {})
  response = Faraday.get(url, params, oauth_headers)
  Errors.raise_if_error(response)
  response
end
oauth_headers() click to toggle source
# File lib/cronofy/client.rb, line 2003
def oauth_headers
  {
    "Authorization" => "Bearer #{access_token.token}",
    "User-Agent" => "Cronofy Ruby #{::Cronofy::VERSION}",
  }
end
parse_page(response) click to toggle source
# File lib/cronofy/client.rb, line 2010
def parse_page(response)
  ResponseParser.new(response).parse_json(@page_parser)
end