diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2019-05-08 17:00:35 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-08 17:00:35 -0400 |
commit | dd868aa0c82ab45d1ca21febf179bb5cd1c21766 (patch) | |
tree | 866b93d0aa56cf3fcca33ecf92b215f1ddc1393b /actionpack/lib/action_dispatch/middleware/stack.rb | |
parent | 52125dc0f8669d8dd497427c7b177d5d04106e0c (diff) | |
parent | 6f549ce53f3398403d4c2a47f9ecba910be256dd (diff) | |
download | rails-dd868aa0c82ab45d1ca21febf179bb5cd1c21766.tar.gz rails-dd868aa0c82ab45d1ca21febf179bb5cd1c21766.tar.bz2 rails-dd868aa0c82ab45d1ca21febf179bb5cd1c21766.zip |
Merge pull request #36221 from jhawthorn/middleware_instrumentation
Only build middleware proxy when instrumentating
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware/stack.rb')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/stack.rb | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/stack.rb b/actionpack/lib/action_dispatch/middleware/stack.rb index f0c869fba0..57e4adb457 100644 --- a/actionpack/lib/action_dispatch/middleware/stack.rb +++ b/actionpack/lib/action_dispatch/middleware/stack.rb @@ -34,7 +34,11 @@ module ActionDispatch end def build(app) - InstrumentationProxy.new(klass.new(app, *args, &block), inspect) + klass.new(app, *args, &block) + end + + def build_instrumented(app) + InstrumentationProxy.new(build(app), inspect) end end @@ -119,7 +123,14 @@ module ActionDispatch end def build(app = nil, &block) - middlewares.freeze.reverse.inject(app || block) { |a, e| e.build(a) } + instrumenting = ActiveSupport::Notifications.notifier.listening?(InstrumentationProxy::EVENT_NAME) + middlewares.freeze.reverse.inject(app || block) do |a, e| + if instrumenting + e.build_instrumented(a) + else + e.build(a) + end + end end private |