class Turbopuffer::Internal::NamespacePage

end
puts(client)
namespace_page.auto_paging_each do |client|
@example
end
namespace_page = namespace_page.next_page
if namespace_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.namespaces&.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 (Turbopuffer::Internal::Transport::BaseClient) --

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

def inspect

Returns:
  • (String) -

Other tags:
    Api: - private
def inspect
  model = Turbopuffer::Internal::Type::Converter.inspect(@model, depth: 1)
  "#<#{self.class}[#{model}]:0x#{object_id.to_s(16)} next_cursor=#{next_cursor.inspect}>"
end

def next_page

Returns:
  • (self) -

Raises:
  • (Turbopuffer::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 = Turbopuffer::Internal::Util.deep_merge(@req, {query: {cursor: next_cursor}})
  @client.request(req)
end

def next_page?

Returns:
  • (Boolean) -
def next_page?
  !namespaces.to_a.empty? && !next_cursor.to_s.empty?
end