module RackTimer::Middleware::Borg
Public Class Methods
extended(object)
click to toggle source
# File lib/rack-timer/middleware.rb, line 41 def self.extended(object) object.singleton_class.class_eval do alias_method :call_without_timing, :call alias_method :call, :call_with_timing public :call end object.instance_eval do _log "assimilating: #{object.class.name}" recursive_borg end end
Public Instance Methods
borged?()
click to toggle source
# File lib/rack-timer/middleware.rb, line 54 def borged? true end
Private Instance Methods
_current_ticks()
click to toggle source
# File lib/rack-timer/middleware.rb, line 99 def _current_ticks (Time.now.to_f * 1e6).to_i end
_log(message)
click to toggle source
# File lib/rack-timer/middleware.rb, line 91 def _log(message) RackTimer.log "[rack-timer] #{message}" end
_measure(class_name, duration)
click to toggle source
# File lib/rack-timer/middleware.rb, line 95 def _measure(class_name, duration) RackTimer.measure(class_name.downcase.gsub('::', '_'), duration) end
call_with_timing(env)
click to toggle source
# File lib/rack-timer/middleware.rb, line 67 def call_with_timing(env) time_before = _current_ticks result = call_without_timing(env) time_delta = _current_ticks - time_before if time_inner = env['rack-timer.time'] time_inner = time_inner.to_i time_self = time_delta - time_inner else time_self = time_delta end _log "#{self.class.name} took #{time_self} us" _measure(self.class.name, time_self / 1000) if (request_start = env['HTTP_X_REQUEST_START']) && kind_of?(RackTimer::Middleware) time_queue_start = request_start.gsub('t=', '').to_i time_in_queue = time_before - time_queue_start _log "queued for #{time_in_queue} us" end env['rack-timer.time'] = time_delta return result end
recursive_borg()
click to toggle source
# File lib/rack-timer/middleware.rb, line 60 def recursive_borg return if @app.nil? return if @app.respond_to?(:borged?) return unless @app.respond_to?(:call) @app.extend(Borg) end