Class: Megatest::Backtrace

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

Defined Under Namespace

Modules: InternalFilter, RelativePathCleaner

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBacktrace

Returns a new instance of Backtrace.



30
31
32
33
34
# File 'lib/megatest/backtrace.rb', line 30

def initialize
  @filters = [InternalFilter]
  @formatters = [RelativePathCleaner]
  @full = false
end

Instance Attribute Details

#filtersObject

Returns the value of attribute filters.



28
29
30
# File 'lib/megatest/backtrace.rb', line 28

def filters
  @filters
end

#formattersObject

Returns the value of attribute formatters.



28
29
30
# File 'lib/megatest/backtrace.rb', line 28

def formatters
  @formatters
end

Instance Method Details

#clean(backtrace) ⇒ Object



40
41
42
43
44
# File 'lib/megatest/backtrace.rb', line 40

def clean(backtrace)
  return backtrace if @full

  format(filter(backtrace))
end

#filter(backtrace) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/megatest/backtrace.rb', line 46

def filter(backtrace)
  return backtrace if @full

  if backtrace
    filters.each do |filter|
      backtrace = filter.call(backtrace)
    end
    backtrace
  else
    []
  end
end

#format(backtrace) ⇒ Object



59
60
61
62
63
64
65
66
67
68
# File 'lib/megatest/backtrace.rb', line 59

def format(backtrace)
  return backtrace if @full

  backtrace.map do |frame|
    formatters.each do |formatter|
      frame = formatter.call(frame)
    end
    frame
  end
end

#full!Object



36
37
38
# File 'lib/megatest/backtrace.rb', line 36

def full!
  @full = true
end