提交 58f69ba0 编写于 作者: J José Valim

Remove Rescue middleware that was never used by Rails.

上级 f32247cb
......@@ -60,7 +60,6 @@ module ActionDispatch
autoload :PublicExceptions
autoload :Reloader
autoload :RemoteIp
autoload :Rescue
autoload :ShowExceptions
autoload :Static
end
......
module ActionDispatch
class Rescue
def initialize(app, rescuers = {}, &block)
@app, @rescuers = app, {}
rescuers.each { |exception, rescuer| rescue_from(exception, rescuer) }
instance_eval(&block) if block_given?
end
def call(env)
@app.call(env)
rescue Exception => exception
if rescuer = @rescuers[exception.class.name]
env['action_dispatch.rescue.exception'] = exception
rescuer.call(env)
else
raise exception
end
end
protected
def rescue_from(exception, rescuer)
exception = exception.class.name if exception.is_a?(Exception)
@rescuers[exception.to_s] = rescuer
end
end
end
......@@ -338,23 +338,8 @@ def show_errors(exception)
end
end
test 'rescue routing exceptions' do
raiser = proc { |env| raise ActionController::RoutingError, "Did not handle the request" }
@app = ActionDispatch::Rescue.new(raiser) do
rescue_from ActionController::RoutingError, lambda { |env| [200, {"Content-Type" => "text/html"}, ["Gotcha!"]] }
end
get '/b00m'
assert_equal "Gotcha!", response.body
end
test 'unrescued exception' do
raiser = proc { |env| raise ActionController::RoutingError, "Did not handle the request" }
@app = ActionDispatch::Rescue.new(raiser)
assert_raise(ActionController::RoutingError) { get '/b00m' }
end
private
def with_test_routing
with_routing do |set|
set.draw do
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册