Module: WebConsole::Interceptor

Defined in:
lib/web_console/interceptor.rb

Class Method Summary collapse

Class Method Details

.call(request, exception) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/web_console/interceptor.rb', line 3

def self.call(request, exception)
  backtrace_cleaner = request.get_header("action_dispatch.backtrace_cleaner")
  error = ActionDispatch::ExceptionWrapper.new(backtrace_cleaner, exception).exception

  # Get the original exception if ExceptionWrapper decides to follow it.
  Thread.current[:__web_console_exception] = error

  # ActionView::Template::Error bypass ExceptionWrapper original
  # exception following. The backtrace in the view is generated from
  # reaching out to original_exception in the view.
  if error.is_a?(ActionView::Template::Error)
    Thread.current[:__web_console_exception] = error.cause
  end
end