module RSolr::Error::SolrContext

Attributes

request[RW]
response[RW]

Public Instance Methods

to_s() click to toggle source
# File lib/rsolr/error.rb, line 7
def to_s
  m = "#{super.to_s}"
  if response
    m << " - #{response[:status]} #{Http::STATUS_CODES[response[:status].to_i]}"
    details = parse_solr_error_response response[:body]
    m << "\nError: #{details}\n" if details
  end
  p = "\nURI: #{request[:uri].to_s}"
  p << "\nRequest Headers: #{request[:headers].inspect}" if request[:headers]
  p << "\nRequest Data: #{request[:data].inspect}" if request[:data]
  p << "\n"
  p << "\nBacktrace: " + self.backtrace[0..10].join("\n")
  m << p
  m
end

Protected Instance Methods

parse_solr_error_response(body) click to toggle source
# File lib/rsolr/error.rb, line 25
def parse_solr_error_response body
  begin
    info = body.scan(/<pre>(.*)<\/pre>/mi)[0]
    info = info.join if info.respond_to? :join

    info ||= body  # body may not contain <pre> elements

    partial = info.to_s.split("\n")[0..10]
    partial.join("\n").gsub("&gt;", ">").gsub("&lt;", "<")
  rescue
    nil
  end
end