diff options
author | Carlhuda <carlhuda@engineyard.com> | 2010-03-08 16:49:47 -0800 |
---|---|---|
committer | Carlhuda <carlhuda@engineyard.com> | 2010-03-08 16:50:00 -0800 |
commit | 056042eb829e0507ed605264d43a79ce88112288 (patch) | |
tree | c4ff22c2fa76e5b1bc013948aff4f068cdd4e172 /actionpack/lib/action_dispatch/middleware | |
parent | 146a5305d56b636d2fd2c2a09a58f5f3edc2d9c0 (diff) | |
download | rails-056042eb829e0507ed605264d43a79ce88112288.tar.gz rails-056042eb829e0507ed605264d43a79ce88112288.tar.bz2 rails-056042eb829e0507ed605264d43a79ce88112288.zip |
Simplify the action endpoint:
* Remove ActionEndpoint in favor of passing a block to MiddlewareStack
* Always create a Request; the performance win of RackDelegation is around
the response; the Request object hit is limited to a single object allocation
* #dispatch takes a Request
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/stack.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/stack.rb b/actionpack/lib/action_dispatch/middleware/stack.rb index c52c8c0e6a..5c5362ce4a 100644 --- a/actionpack/lib/action_dispatch/middleware/stack.rb +++ b/actionpack/lib/action_dispatch/middleware/stack.rb @@ -122,7 +122,11 @@ module ActionDispatch find_all { |middleware| middleware.active? } end - def build(app) + def build(app = nil, &blk) + app ||= blk + + raise "MiddlewareStack#build requires an app" unless app + active.reverse.inject(app) { |a, e| e.build(a) } end end |