module SunspotCell::Indexer

Public Class Methods

included(base) click to toggle source
# File lib/sunspot_cell/indexer.rb, line 4
def self.included(base)
  base.class_eval do

    def add_documents(documents)
      documents_arr = Sunspot::Util.Array(documents)
      docs_attach = []
      docs_no_attach = []
      documents_arr.each do |document|
        if document.contains_attachment?
          docs_attach << document
        else
          docs_no_attach << document
        end
      end

      begin
        if !docs_no_attach.empty?
          @connection.add(docs_no_attach)
        end
        if !docs_attach.empty?
          Sunspot::Util.Array(docs_attach).each do |document|
            document.add(@connection)
          end
        end
      rescue Exception => e
        @batch = nil
        raise e
      end
    end


    def document_for(model)
      Sunspot::RichDocument.new(
        :id => Sunspot::Adapters::InstanceAdapter.adapt(model).index_id,
        :type => Sunspot::Util.superclasses_for(model.class).map { |clazz| clazz.name }
      )
    end

  end
end

Public Instance Methods

add_documents(documents) click to toggle source
# File lib/sunspot_cell/indexer.rb, line 7
def add_documents(documents)
  documents_arr = Sunspot::Util.Array(documents)
  docs_attach = []
  docs_no_attach = []
  documents_arr.each do |document|
    if document.contains_attachment?
      docs_attach << document
    else
      docs_no_attach << document
    end
  end

  begin
    if !docs_no_attach.empty?
      @connection.add(docs_no_attach)
    end
    if !docs_attach.empty?
      Sunspot::Util.Array(docs_attach).each do |document|
        document.add(@connection)
      end
    end
  rescue Exception => e
    @batch = nil
    raise e
  end
end
document_for(model) click to toggle source
# File lib/sunspot_cell/indexer.rb, line 35
def document_for(model)
  Sunspot::RichDocument.new(
    :id => Sunspot::Adapters::InstanceAdapter.adapt(model).index_id,
    :type => Sunspot::Util.superclasses_for(model.class).map { |clazz| clazz.name }
  )
end