class TableauServerClient::PaginatableResponse

Public Class Methods

new(client, request_url, response) click to toggle source
# File lib/tableau_server_client/paginatable_response.rb, line 7
def initialize(client, request_url, response)
  @client = client
  @request_url = request_url
  @response = response
end

Public Instance Methods

each() { |response| ... } click to toggle source
# File lib/tableau_server_client/paginatable_response.rb, line 13
def each
  yield @response
  return unless paginated?
  res = @response.dup
  url = @request_url.dup
  while true
    pgn = Pagination.parse(res.body)
    break unless pgn.next_page?
    res = @client.session.get url.merge_params!(pgn.next_request_params).to_s
    yield res
  end
end
each_body() { |XML(body)| ... } click to toggle source
# File lib/tableau_server_client/paginatable_response.rb, line 26
def each_body
  each do |res|
    yield Nokogiri::XML(res.body)
  end
end

Private Instance Methods

paginated?() click to toggle source
# File lib/tableau_server_client/paginatable_response.rb, line 34
def paginated?
  @paginated ||= !Pagination.parse(@response.body).nil?
end