class IDidMean::Rails::Middleware

Public Class Methods

new(app) click to toggle source
# File lib/i_did_mean/rails/middleware.rb, line 6
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/i_did_mean/rails/middleware.rb, line 10
def call(env)
  begin
    response = @app.call(env)
  rescue StandardError => e
    processor = IDidMean::Processor.new(e)

    raise unless processor.should_process?

    response = handle_exception(processor, env)
  end

  response
end

Private Instance Methods

handle_exception(processor, env) click to toggle source
# File lib/i_did_mean/rails/middleware.rb, line 26
def handle_exception(processor, env)
  processor.call

  ActiveSupport::DescendantsTracker.clear
  ActiveSupport::Dependencies.clear

  @app.call(env)
end