11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/log_sanity/middleware/routing_error_catcher.rb', line 11
def call(env)
request = ActionDispatch::Request.new env
_, , body = response = @app.call(env)
if ['X-Cascade'] == 'pass'
body.close if body.respond_to?(:close)
raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}"
end
response
rescue ActionController::RoutingError => exception
if Rails.version >= '7.1'
backtrace_cleaner = request.('action_dispatch.backtrace_cleaner')
wrapper = ActionDispatch::ExceptionWrapper.new(backtrace_cleaner, exception)
if wrapper.show?(request)
render_exception(request, wrapper)
else
raise exception
end
else
if request.show_exceptions?
render_exception(request, exception)
else
raise exception
end
end
end
|