machinio/solrb

View on GitHub
lib/solr/query/response.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'solr/query/response/facet_value'
require 'solr/query/response/field_facets'
require 'solr/query/response/parser'
require 'solr/query/response/spellcheck'

module Solr
  module Query
    class Response
      attr_reader :documents, :available_facets, :spellcheck

      class << self
        def empty
          new(documents: Solr::DocumentCollection.empty)
        end

        def empty_grouped
          new(documents: Solr::GroupedDocumentCollection.empty)
        end

        def manual_grouped_documents(ids)
          documents = ids.map { |id| Solr::Document.new(id: id) }
          group_counts = ids.each_with_object({}) do |id, acc|
            acc[id] = 1
          end
          new(documents: Solr::GroupedDocumentCollection.new(
            documents: documents,
            total_count: ids.count,
            group_counts: group_counts
          ))
        end
      end

      def initialize(documents:, available_facets: [], spellcheck: Solr::Query::Response::Spellcheck.empty)
        @documents = documents
        @available_facets = available_facets
        @spellcheck = spellcheck
      end

      def total_count
        @documents.total_count
      end

      def empty?
        total_count.zero?
      end
    end
  end
end