class SequelRails::Railties::LogSubscriber

Public Class Methods

count() click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 16
def self.count
  Thread.current['sequel_sql_count'] ||= 0
end
count=(value) click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 12
def self.count=(value)
  Thread.current['sequel_sql_count'] = value
end
reset_count() click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 26
def self.reset_count
  previous = count
  self.count = 0
  previous
end
reset_runtime() click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 20
def self.reset_runtime
  previous = runtime
  self.runtime = 0
  previous
end
runtime() click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 8
def self.runtime
  Thread.current['sequel_sql_runtime'] ||= 0
end
runtime=(value) click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 4
def self.runtime=(value)
  Thread.current['sequel_sql_runtime'] = value
end

Public Instance Methods

logger() click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 63
def logger
  ::SequelRails.configuration.logger
end
odd?() click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 59
def odd?
  @odd_or_even = !@odd_or_even
end
sql(event) click to toggle source
# File lib/sequel_rails/railties/log_subscriber.rb, line 32
def sql(event)
  self.class.runtime += event.duration
  self.class.count += 1
  return unless logger.debug?

  payload = event.payload

  name = format('%s (%.1fms)', payload[:name], event.duration)
  sql  = payload[:sql].squeeze(' ')
  binds = nil

  unless (payload[:binds] || []).empty?
    binds = '  ' + payload[:binds].map do |col, v|
      [col.name, v]
    end.inspect
  end

  if odd?
    name = color(name, :cyan, :bold => true)
    sql  = color(sql, nil, :bold => true)
  else
    name = color(name, :magenta, :bold => true)
  end

  debug "  #{name}  #{sql}#{binds}"
end