class ThinkingSphinx::ActiveRecord::LogSubscriber

Public Class Methods

new() click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 19
def initialize
  super
  @odd_or_even = false
end
reset_runtime() click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 14
def self.reset_runtime
  rt, self.runtime = runtime, 0
  rt
end
runtime() click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 10
def self.runtime
  Thread.current['thinking_sphinx_query_runtime'] ||= 0
end
runtime=(value) click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 6
def self.runtime=(value)
  Thread.current['thinking_sphinx_query_runtime'] = value
end

Public Instance Methods

logger() click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 49
def logger
  return @logger if defined? @logger
  self.logger = ::ActiveRecord::Base.logger
end
logger=(logger) click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 54
def logger=(logger)
  @logger = logger
end
message(event) click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 35
def message(event)
  return unless logger.debug?

  identifier = color 'Sphinx', GREEN, true
  message = event.payload[:message]
  message = color message, nil, true if odd?

  debug "  #{identifier}  #{message}"
end
odd?() click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 45
def odd?
  @odd_or_even = !@odd_or_even
end
query(event) click to toggle source
# File lib/thinking_sphinx/active_record/log_subscriber.rb, line 24
def query(event)
  self.class.runtime += event.duration
  return unless logger.debug?

  identifier = color('Sphinx Query (%.1fms)' % event.duration, GREEN, true)
  query = event.payload[:query]
  query = color query, nil, true if odd?

  debug "  #{identifier}  #{query}"
end