Class: ActionDispatch::MiddlewareStack::InstrumentationProxy

Inherits:
Object
  • Object
show all
Defined in:
actionpack/lib/action_dispatch/middleware/stack.rb

Overview

This class is used to instrument the execution of a single middleware. It proxies the ‘call` method transparently and instruments the method call.

Constant Summary collapse

EVENT_NAME =
"process_middleware.action_dispatch"

Instance Method Summary collapse

Constructor Details

#initialize(middleware, class_name) ⇒ InstrumentationProxy

Returns a new instance of InstrumentationProxy.



51
52
53
54
55
56
57
# File 'actionpack/lib/action_dispatch/middleware/stack.rb', line 51

def initialize(middleware, class_name)
  @middleware = middleware

  @payload = {
    middleware: class_name,
  }
end

Instance Method Details

#call(env) ⇒ Object



59
60
61
62
63
# File 'actionpack/lib/action_dispatch/middleware/stack.rb', line 59

def call(env)
  ActiveSupport::Notifications.instrument(EVENT_NAME, @payload) do
    @middleware.call(env)
  end
end