class Anthropic::Internal::Page

end
puts(batch)
page.auto_paging_each do |batch|
@example
end
page = page.next_page
if page.has_next?
@example
@generic Elem

def auto_paging_each(&blk)

Other tags:
    Yieldparam: -

Parameters:
  • blk (Proc) --
def auto_paging_each(&blk)
  unless block_given?
    raise ArgumentError.new("A block must be given to ##{__method__}")
  end
  page = self
  loop do
    page.data&.each(&blk)
    break unless page.next_page?
    page = page.next_page
  end
end

def initialize(client:, req:, headers:, page_data:)

Parameters:
  • page_data (Hash{Symbol=>Object}) --
  • headers (Hash{String=>String}, Net::HTTPHeader) --
  • req (Hash{Symbol=>Object}) --
  • client (Anthropic::Internal::Transport::BaseClient) --

Other tags:
    Api: - private
def initialize(client:, req:, headers:, page_data:)
  super
  case page_data
  in {data: Array => data}
    @data = data.map { Anthropic::Internal::Type::Converter.coerce(@model, _1) }
  else
  end
  @has_more = page_data[:has_more]
  @first_id = page_data[:first_id]
  @last_id = page_data[:last_id]
end

def inspect

Returns:
  • (String) -

Other tags:
    Api: - private
def inspect
  # rubocop:disable Layout/LineLength
  model = Anthropic::Internal::Type::Converter.inspect(@model, depth: 1)
  "#<#{self.class}[#{model}]:0x#{object_id.to_s(16)} has_more=#{has_more.inspect} first_id=#{first_id.inspect} last_id=#{last_id.inspect}>"
  # rubocop:enable Layout/LineLength
end

def next_page

Returns:
  • (self) -

Raises:
  • (Anthropic::HTTP::Error) -
def next_page
  unless next_page?
    message = "No more pages available. Please check #next_page? before calling ##{__method__}"
    raise RuntimeError.new(message)
  end
  req = Anthropic::Internal::Util.deep_merge(
    @req,
    {query: first_id.nil? ? {after_id: last_id} : {before_id: first_id}}
  )
  @client.request(req)
end

def next_page?

Returns:
  • (Boolean) -
def next_page?
  has_more
end