1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

AD::Cascade that supports X-Cascade

This commit is contained in:
Joshua Peek 2009-12-26 13:28:06 -06:00
parent 673fa7f066
commit feb7382047
2 changed files with 30 additions and 0 deletions

View file

@ -41,6 +41,7 @@ module ActionDispatch
autoload_under 'middleware' do
autoload :Callbacks
autoload :Cascade
autoload :ParamsParser
autoload :Rescue
autoload :ShowExceptions

View file

@ -0,0 +1,29 @@
module ActionDispatch
class Cascade
def self.new(*apps)
apps = apps.flatten
case apps.length
when 0
raise ArgumentError, "app is required"
when 1
apps.first
else
super(apps)
end
end
def initialize(apps)
@apps = apps
end
def call(env)
result = nil
@apps.each do |app|
result = app.call(env)
break unless result[1]["X-Cascade"] == "pass"
end
result
end
end
end