diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2018-01-24 16:57:34 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-24 16:57:34 -0500 |
commit | f03889136adc01c202b17a14562fbd9a72db9997 (patch) | |
tree | e01ad926164408c21786fc25f4373db50d227037 | |
parent | 1280ad6d19fa56e9bf6d6a261c1231326cb3d8c3 (diff) | |
parent | fbf4e9562db9ba73428b9b397361aa886bc2c8e8 (diff) | |
download | rails-f03889136adc01c202b17a14562fbd9a72db9997.tar.gz rails-f03889136adc01c202b17a14562fbd9a72db9997.tar.bz2 rails-f03889136adc01c202b17a14562fbd9a72db9997.zip |
Merge pull request #31642 from fatkodima/metal-action-duplication
Remove code duplication for `ActionController::Metal.action`
-rw-r--r-- | actionpack/lib/action_controller/metal.rb | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/actionpack/lib/action_controller/metal.rb b/actionpack/lib/action_controller/metal.rb index 457884ea08..f875aa5e6b 100644 --- a/actionpack/lib/action_controller/metal.rb +++ b/actionpack/lib/action_controller/metal.rb @@ -230,18 +230,16 @@ module ActionController # Returns a Rack endpoint for the given action name. def self.action(name) + app = lambda { |env| + req = ActionDispatch::Request.new(env) + res = make_response! req + new.dispatch(name, req, res) + } + if middleware_stack.any? - middleware_stack.build(name) do |env| - req = ActionDispatch::Request.new(env) - res = make_response! req - new.dispatch(name, req, res) - end + middleware_stack.build(name, app) else - lambda { |env| - req = ActionDispatch::Request.new(env) - res = make_response! req - new.dispatch(name, req, res) - } + app end end |