class Solr::DocumentCollection

Attributes

documents[R]
total_count[R]

Public Class Methods

empty() click to toggle source
# File lib/solr/document_collection.rb, line 11
def self.empty
  new(documents: [], total_count: 0)
end
from_ids(ids, model_name:) click to toggle source
# File lib/solr/document_collection.rb, line 6
def self.from_ids(ids, model_name:)
  documents = ids.map { |id| Solr::Document.new(id: id, model_name: model_name) }
  new(documents: documents, total_count: documents.count)
end
new(documents:, total_count:) click to toggle source
# File lib/solr/document_collection.rb, line 15
def initialize(documents:, total_count:)
  @documents = documents
  @total_count = total_count
end

Public Instance Methods

+(other) click to toggle source
# File lib/solr/document_collection.rb, line 39
def +(other)
  self.class.new(
    documents: documents + other.documents,
    total_count: total_count + other.total_count
  )
end
each(&b) click to toggle source
# File lib/solr/document_collection.rb, line 20
def each(&b)
  return enum_for(:each) unless block_given?
  documents.each(&b)
end
find(id) click to toggle source
# File lib/solr/document_collection.rb, line 51
def find(id)
  documents.find { |doc| doc.id == id }
end
first(n) click to toggle source
# File lib/solr/document_collection.rb, line 25
def first(n)
  new_documents = documents.first(n)
  self.class.new(documents: new_documents, total_count: new_documents.count)
end
slice(range) click to toggle source
# File lib/solr/document_collection.rb, line 30
def slice(range)
  new_documents = documents[range]
  if new_documents
    self.class.new(documents: new_documents, total_count: new_documents.count)
  else
    self.class.empty
  end
end
unshift(document) click to toggle source
# File lib/solr/document_collection.rb, line 46
def unshift(document)
  @documents.unshift(document)
  @total_count += 1
end