aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorkennyj <kennyj@gmail.com>2012-02-04 12:08:39 +0900
committerkennyj <kennyj@gmail.com>2012-02-04 22:59:13 +0900
commite7ec96989543b95d3459fcdab1f31466ec179233 (patch)
tree8029a2375cc63bc305d2d978e64b72cf79dfed5b /actionpack/lib
parent7a72fdc7dcbb58a58b67944f8c1dfeae5cb6ed23 (diff)
downloadrails-e7ec96989543b95d3459fcdab1f31466ec179233.tar.gz
rails-e7ec96989543b95d3459fcdab1f31466ec179233.tar.bz2
rails-e7ec96989543b95d3459fcdab1f31466ec179233.zip
Fix GH #4873. Allow swapping middleware of same class
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_dispatch/middleware/stack.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/stack.rb b/actionpack/lib/action_dispatch/middleware/stack.rb
index a4308f528c..28e8fbdab8 100644
--- a/actionpack/lib/action_dispatch/middleware/stack.rb
+++ b/actionpack/lib/action_dispatch/middleware/stack.rb
@@ -93,8 +93,9 @@ module ActionDispatch
end
def swap(target, *args, &block)
- insert_before(target, *args, &block)
- delete(target)
+ index = assert_index(target, :before)
+ insert(index, *args, &block)
+ middlewares.delete_at(index + 1)
end
def delete(target)