class RediSearch::Search::Result

Attributes

results[R]

:nocov:

Public Class Methods

new(search, count, documents) click to toggle source
# File lib/redi_search/search/result.rb, line 9
def initialize(search, count, documents)
  @count = count
  @search = search
  @results = parse_results(documents)
end

Public Instance Methods

count() click to toggle source
# File lib/redi_search/search/result.rb, line 15
def count
  @count || results.count
end
inspect() click to toggle source
# File lib/redi_search/search/result.rb, line 25
def inspect
  results
end
pretty_print(printer) click to toggle source

:nocov:

# File lib/redi_search/search/result.rb, line 30
def pretty_print(printer)
  printer.pp(results)
end
size() click to toggle source
# File lib/redi_search/search/result.rb, line 19
def size
  @count || results.size
end

Private Instance Methods

no_content?() click to toggle source
# File lib/redi_search/search/result.rb, line 51
def no_content?
  search.used_clauses.include? Search::Clauses::NoContent
end
parse_results(documents) click to toggle source
# File lib/redi_search/search/result.rb, line 55
def parse_results(documents)
  documents.each_slice(response_slice).map do |slice|
    document_id = slice[0]
    fields = slice.last unless no_content?
    score = slice[1].to_f if with_scores?

    Document.new(search.index, document_id, Hash[*fields.to_a], score)
  end
end
response_slice() click to toggle source
# File lib/redi_search/search/result.rb, line 39
def response_slice
  slice_length = 2
  slice_length -= 1 if no_content?
  slice_length += 1 if with_scores?

  slice_length
end
with_scores?() click to toggle source
# File lib/redi_search/search/result.rb, line 47
def with_scores?
  search.used_clauses.include? Search::Clauses::WithScores
end