Sha256: 2a8a60df014675f63982338a23d9ebd03e6eb0abd774a1b3fbff91ccf0855914
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
module Ddr::Index class QueryResult < AbstractQueryResult PAGE_SIZE = 1000 delegate :csv, to: :query def each(&block) if params[:rows] each_unpaginated(&block) else each_paginated(&block) end end def each_unpaginated(&block) conn.select(params).docs.each(&block) end def each_paginated(&block) pages.each { |pg| pg.each(&block) } end def pids Enumerator.new do |e| each do |doc| e << doc[Fields::ID] end end end def each_pid(&block) pids.each(&block) end def docs Enumerator.new do |e| each do |doc| e << DocumentBuilder.build(doc) end end end def all to_a end def pages num = 1 Enumerator.new do |e| loop do pg = page(num) e << pg unless pg.has_next? break end num += 1 end end end def page(num) page_params = params.dup page_size = page_params.delete(:rows) || PAGE_SIZE response = conn.page num, page_size, "select", params: page_params response.docs end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddr-models-3.0.0.beta.20 | lib/ddr/index/query_result.rb |
ddr-models-3.0.0.beta.18 | lib/ddr/index/query_result.rb |