class ThinkingSphinx::SphinxError

Attributes

statement[RW]

Public Class Methods

new_from_mysql(error) click to toggle source
# File lib/thinking_sphinx/errors.rb, line 4
def self.new_from_mysql(error)
  case error.message
  when /parse error/, /query is non-computable/
    replacement = ThinkingSphinx::ParseError.new(error.message)
  when /syntax error/
    replacement = ThinkingSphinx::SyntaxError.new(error.message)
  when /query error/
    replacement = ThinkingSphinx::QueryError.new(error.message)
  when /Can't connect to MySQL server/,
    /Communications link failure/,
    /Lost connection to MySQL server/
    replacement = ThinkingSphinx::ConnectionError.new(
      "Error connecting to Sphinx via the MySQL protocol. #{error.message}"
    )
  when /offset out of bounds/
    replacement = ThinkingSphinx::OutOfBoundsError.new(error.message)
  else
    replacement = new(error.message)
  end

  replacement.set_backtrace error.backtrace
  replacement.statement = error.statement if error.respond_to?(:statement)
  replacement
end