Sha256: dfdc2c9320677a6f2ef0345107423157d51a66c45814b798e83bb972dc645d2f

Contents?: true

Size: 644 Bytes

Versions: 5

Compression:

Stored size: 644 Bytes

Contents

module XRayMachine
  class LogSubscriber < ActiveSupport::LogSubscriber
    def self.runtimes
      Thread.current["x_ray_machine_runtimes"] ||= Hash.new{|k,_| 0}
    end

    def self.reset_runtimes
      Thread.current["x_ray_machine_runtimes"] = nil
    end

    def request(event)
      group  = event.payload[:group]
      config = XRayMachine::Config.for(group)

      self.class.runtimes[group] += event.duration

      name  = config.title
      name += " CACHE" if event.payload[:cache]
      name  = '%s (%.1fms)' % [name, event.duration]
      debug "  #{color(name, config.color, true)}  #{event.payload[:query]}"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
x-ray-machine-1.0.4 lib/x_ray_machine/log_subscriber.rb
x-ray-machine-1.0.3 lib/x_ray_machine/log_subscriber.rb
x-ray-machine-1.0.2 lib/x_ray_machine/log_subscriber.rb
x-ray-machine-1.0.1 lib/x_ray_machine/log_subscriber.rb
x-ray-machine-1.0.0 lib/x_ray_machine/log_subscriber.rb