class Rack::ErrorHandling
Public Class Methods
new(app, &block)
click to toggle source
# File lib/unicorn-cuba-base/rack/error_handling.rb, line 3 def initialize(app, &block) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/unicorn-cuba-base/rack/error_handling.rb, line 7 def call(env) # save original env orig_env = env.dup begin return @app.call(env) rescue => error begin # reset env to original since it could have been changed env.clear env.merge!(orig_env) # set error so app can handle it env["app.error"] = error return @app.call(env) rescue raise end end end