Sha256: 73ba006526b2f6fff8e71271852ef349158f13fb3664b5e6650b4c3484310d38
Contents?: true
Size: 991 Bytes
Versions: 2
Compression:
Stored size: 991 Bytes
Contents
require 'a_r_q_logger/initializer' module ARQLogger class << self attr_accessor :store, :instantiating def pass(event) return unless store payload = event.payload if payload[:name] && !ActiveRecord::LogSubscriber::IGNORE_PAYLOAD_NAMES.include?(payload[:name]) store.push(event.duration) end end def instantiate self.instantiating += 1 if instantiating end def log(&block) start block.call finish end private def start self.store = [] self.instantiating = 0 end def finish logged = store instances = instantiating self.store = nil self.instantiating = nil Result.new( count: logged.size, msec: logged.sum.round(1), instances: instances ) end end class Result < Struct.new(:count, :msec, :instances) def initialize(count:, msec:, instances:) super(count, msec, instances) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
a_r_q_logger-0.0.8 | lib/a_r_q_logger.rb |
a_r_q_logger-0.0.7 | lib/a_r_q_logger.rb |