Class: Minitest::BacktraceFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/minitest.rb

Overview

The standard backtrace filter for minitest.

See Minitest.backtrace_filter=.

Constant Summary collapse

MT_RE =

:nodoc:

%r%lib/minitest|internal:warning%

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(regexp = MT_RE) ⇒ BacktraceFilter

Returns a new instance of BacktraceFilter.


1176
1177
1178
# File 'lib/minitest.rb', line 1176

def initialize regexp = MT_RE
  self.regexp = regexp
end

Instance Attribute Details

#regexpObject

Returns the value of attribute regexp.


1174
1175
1176
# File 'lib/minitest.rb', line 1174

def regexp
  @regexp
end

Instance Method Details

#filter(bt) ⇒ Object

Filter bt to something useful. Returns the whole thing if $DEBUG (ruby) or $MT_DEBUG (env).


1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
# File 'lib/minitest.rb', line 1184

def filter bt
  return ["No backtrace"] unless bt

  return bt.dup if $DEBUG || ENV["MT_DEBUG"]

  new_bt = bt.take_while { |line| line.to_s !~ regexp }
  new_bt = bt.select     { |line| line.to_s !~ regexp } if new_bt.empty?
  new_bt = bt.dup                                       if new_bt.empty?

  new_bt
end