Exception: ActiveSupport::SyntaxErrorProxy

Inherits:
SyntaxError
  • Object
show all
Defined in:
lib/active_support/syntax_error_proxy.rb

Overview

This is a class for wrapping syntax errors. The purpose of this class is to enhance the backtraces on SyntaxError exceptions to include the source location of the syntax error. That way we can display the error source on error pages in development.

Defined Under Namespace

Classes: BacktraceLocation, BacktraceLocationProxy

Instance Method Summary collapse

Instance Method Details

#backtraceObject



11
12
13
# File 'lib/active_support/syntax_error_proxy.rb', line 11

def backtrace
  parse_message_for_trace + super
end

#backtrace_locationsObject



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/active_support/syntax_error_proxy.rb', line 34

def backtrace_locations
  return nil if super.nil?

  parse_message_for_trace.map { |trace|
    file, line = trace.match(/^(.+?):(\d+).*$/, &:captures) || trace
    BacktraceLocation.new(file, line.to_i, trace)
    # We have to wrap these backtrace locations because we need the
    # spot information to come from the originating exception, not the
    # proxy object that's generating these
  } + super.map { |loc| BacktraceLocationProxy.new(loc, self) }
end