Class: RestClientWrapper::Paginator::HeaderLink
- Inherits:
-
Object
- Object
- RestClientWrapper::Paginator::HeaderLink
- Defined in:
- lib/rest_client_wrapper/paginators/header_link.rb,
lib/rest_client_wrapper/paginators/header_link_paginator.rb
Overview
HeaderLink
Instance Attribute Summary collapse
-
#rest_client ⇒ Object
Returns the value of attribute rest_client.
Instance Method Summary collapse
-
#initialize(per_page: Paginate::DEFAULT_PAGINATION_PAGE_SIZE) ⇒ HeaderLink
constructor
A new instance of HeaderLink.
- #paginate(http_method:, uri:, segment_params: {}, query_params: {}, headers: {}, data: false) ⇒ Object
Constructor Details
#initialize(per_page: Paginate::DEFAULT_PAGINATION_PAGE_SIZE) ⇒ HeaderLink
Returns a new instance of HeaderLink.
34 35 36 37 |
# File 'lib/rest_client_wrapper/paginators/header_link.rb', line 34 def initialize(per_page: Paginate::DEFAULT_PAGINATION_PAGE_SIZE) @rest_client = nil @config = { page: nil, per_page: } end |
Instance Attribute Details
#rest_client ⇒ Object
Returns the value of attribute rest_client.
32 33 34 |
# File 'lib/rest_client_wrapper/paginators/header_link.rb', line 32 def rest_client @rest_client end |
Instance Method Details
#paginate(http_method:, uri:, segment_params: {}, query_params: {}, headers: {}, data: false) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/rest_client_wrapper/paginators/header_link.rb', line 39 def paginate(http_method:, uri:, segment_params: {}, query_params: {}, headers: {}, data: false) raise RestClientError.new("Client not set, unable to make API call", nil, nil) unless @rest_client query_params.reverse_merge!(@config) responses = [] loop.with_index(1) do |_, page| query_params[:page] = page response = @rest_client.make_request(http_method:, uri:, segment_params:, query_params:, headers:) (block_given?) ? yield(response) : (responses << response) links = _pagination_links(response) break unless links.key?(:next) end return (data) ? responses.map(&:body).flatten : responses end |