class Solr::Request::AddDocument

Public Class Methods

new(doc={}) click to toggle source

create the request, optionally passing in a Solr::Document

request = Solr::Request::AddDocument.new doc

as a short cut you can pass in a Hash instead:

request = Solr::Request::AddDocument.new :creator => 'Jorge Luis Borges'

or an array, to add multiple documents at the same time:

request = Solr::Request::AddDocument.new([doc1, doc2, doc3])
# File lib/solr/request/add_document.rb, line 32
def initialize(doc={})
  @docs = []
  if doc.is_a?(Array)
    doc.each { |d| add_doc(d) }
  else
    add_doc(doc)
  end
end

Public Instance Methods

to_s() click to toggle source

returns the request as a string suitable for posting

# File lib/solr/request/add_document.rb, line 43
def to_s
  e = Solr::XML::Element.new 'add'
  for doc in @docs
    e.add_element doc.to_xml
  end
  return e.to_s
end

Private Instance Methods

add_doc(doc) click to toggle source
# File lib/solr/request/add_document.rb, line 52
def add_doc(doc)
  case doc
  when Hash
    @docs << Solr::Document.new(doc)
  when Solr::Document
    @docs << doc
  else
    raise "must pass in Solr::Document or Hash"
  end
end