class ExTwitter::LogSubscriber

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/ex_twitter/log_subscriber.rb, line 8
def initialize
  super
  @odd = false
end

Public Instance Methods

cache_any(event) click to toggle source
# File lib/ex_twitter/log_subscriber.rb, line 13
def cache_any(event)
  return unless logger.debug?

  payload = event.payload
  name  = "#{payload.delete(:name)} (#{event.duration.round(1)}ms)"
  name = colorize_payload_name(name, payload[:name], AS: true)
  debug { "#{name} #{(payload.inspect)}" }
end
call(event) click to toggle source
# File lib/ex_twitter/log_subscriber.rb, line 31
def call(event)
  return unless logger.debug?

  payload = event.payload
  name = "#{payload.delete(:operation)} (#{event.duration.round(1)}ms)"

  name = colorize_payload_name(name, payload[:name])
  # sql  = color(sql, sql_color(sql), true)

  key = payload.delete(:key)
  debug { "#{name} #{key} #{(payload.inspect)}" }
end

Private Instance Methods

colorize_payload_name(name, payload_name, options = {}) click to toggle source
# File lib/ex_twitter/log_subscriber.rb, line 46
def colorize_payload_name(name, payload_name, options = {})
  if options[:AS]
    color(name, MAGENTA, true)
  else
    color(name, CYAN, true)
  end
end
logger() click to toggle source
# File lib/ex_twitter/log_subscriber.rb, line 75
def logger
  ExTwitter::Client.logger
end
sql_color(sql) click to toggle source
# File lib/ex_twitter/log_subscriber.rb, line 54
def sql_color(sql)
  case sql
    when /\A\s*rollback/mi
      RED
    when /select .*for update/mi, /\A\s*lock/mi
      WHITE
    when /\A\s*select/i
      BLUE
    when /\A\s*insert/i
      GREEN
    when /\A\s*update/i
      YELLOW
    when /\A\s*delete/i
      RED
    when /transaction\s*\Z/i
      CYAN
    else
      MAGENTA
  end
end