56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/modern/app.rb', line 56
def call(env)
request = Modern::Request.new(env, logger)
response = Modern::Response.new(request)
response.["X-Request-Id"] = request.request_id
route = @router.resolve(request.request_method, request.path_info)
begin
raise Modern::Errors::NotFoundError if route.nil?
process_request(request, response, route)
response.finish
rescue Modern::Redirect => redirect
response.redirect(redirect.redirect_to, redirect.status)
rescue Modern::Errors::WebError => err
catch_web_error(response, err)
rescue StandardError => err
catch_unhandled_error(response, err)
ensure
response.finish
request.cleanup
end
response.to_a
end
|