class TimeBandits::TimeConsumers::Redis::Subscriber

Public Instance Methods

request(event) click to toggle source
# File lib/time_bandits/time_consumers/redis.rb, line 16
def request(event)
  i = Redis.instance
  i.time += event.duration
  i.calls += 1 #count redis round trips, not calls

  return unless logger.debug?

  name = "%s (%.2fms)" % ["Redis", event.duration]
  cmds = event.payload[:commands]

  # output = "  #{color(name, CYAN, true)}"
  output = "  #{name}"

  cmds.each do |cmd, *args|
    if args.present?
      logged_args = args.map do |a|
        case
        when a.respond_to?(:inspect) then a.inspect
        when a.respond_to?(:to_s)    then a.to_s
        else
          # handle poorly-behaved descendants of BasicObject
          klass = a.instance_exec { (class << self; self end).superclass }
          "\#<#{klass}:#{a.__id__}>"
        end
      end

      output << " [ #{cmd.to_s.upcase} #{logged_args.join(" ")} ]"
    else
      output << " [ #{cmd.to_s.upcase} ]"
    end
  end

  debug output
end