Class: Rails::BacktraceCleaner

Inherits:
ActiveSupport::BacktraceCleaner show all
Defined in:
railties/lib/rails/backtrace_cleaner.rb

Overview

:nodoc:

Constant Summary collapse

RENDER_TEMPLATE_PATTERN =
/:in [`'].*_\w+_{2,3}\d+_\d+'/

Instance Method Summary collapse

Methods inherited from ActiveSupport::BacktraceCleaner

#add_filter, #add_silencer, #clean_locations, #first_clean_frame, #first_clean_location, #remove_filters!, #remove_silencers!

Constructor Details

#initializeBacktraceCleaner

Returns a new instance of BacktraceCleaner.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'railties/lib/rails/backtrace_cleaner.rb', line 10

def initialize
  super
  add_filter do |line|
    # We may be called before Rails.root is assigned.
    # When that happens we fallback to not truncating.
    @root ||= Rails.root && "#{Rails.root}/"
    @root && line.start_with?(@root) ? line.from(@root.size) : line
  end
  add_filter do |line|
    if RENDER_TEMPLATE_PATTERN.match?(line)
      line.sub(RENDER_TEMPLATE_PATTERN, "")
    else
      line
    end
  end

  add_silencer do |line|
    line.start_with?(File::SEPARATOR, "vendor/", "bin/")
  end
end

Instance Method Details

#clean(backtrace, kind = :silent) ⇒ Object Also known as: filter



31
32
33
34
35
# File 'railties/lib/rails/backtrace_cleaner.rb', line 31

def clean(backtrace, kind = :silent)
  return backtrace if ENV["BACKTRACE"]

  super(backtrace, kind)
end

#clean_frame(frame, kind = :silent) ⇒ Object



38
39
40
41
42
# File 'railties/lib/rails/backtrace_cleaner.rb', line 38

def clean_frame(frame, kind = :silent)
  return frame if ENV["BACKTRACE"]

  super(frame, kind)
end