Sha256: 4dacf16657cf67b496484396cfc37eafed47b1d7e424113f7cefc044ed100110
Contents?: true
Size: 1.24 KB
Versions: 19
Compression:
Stored size: 1.24 KB
Contents
module Algolia class PaginatorIterator < BaseIterator # @param transporter [Transport::Transport] transporter used for requests # @param index_name [String] Name of the index # @param opts [Hash] contains extra parameters to send with your query # def initialize(transporter, index_name, opts) super(transporter, index_name, opts) @data = { hitsPerPage: 1000, page: 0 } end def each loop do if @response parsed_response = symbolize_hash(@response) parsed_data = symbolize_hash(@data) if parsed_response[:hits].length parsed_response[:hits].each do |hit| hit.delete(:_highlightResult) yield hit end if parsed_response[:nbHits] < parsed_data[:hitsPerPage] @response = nil @data = { hitsPerPage: 1000, page: 0 } raise StopIteration end end end @response = @transporter.read(:POST, get_endpoint, @data, @opts) @data[:page] += 1 end end def get_endpoint raise AlgoliaError, 'Method must be implemented' end end end
Version data entries
19 entries across 19 versions & 1 rubygems