class PrettyTrace::StructuredBacktrace
Attributes
backtrace[R]
options[R]
Public Class Methods
new(backtrace, options={})
click to toggle source
# File lib/pretty_trace/structured_backtrace.rb, line 5 def initialize(backtrace, options={}) @options = options @backtrace = backtrace end
Public Instance Methods
empty?()
click to toggle source
# File lib/pretty_trace/structured_backtrace.rb, line 42 def empty? formatted_backtrace.empty? end
formatted_backtrace()
click to toggle source
# File lib/pretty_trace/structured_backtrace.rb, line 34 def formatted_backtrace structure.map(&:formatted_line) end
structure()
click to toggle source
# File lib/pretty_trace/structured_backtrace.rb, line 10 def structure filter = options[:filter] || [] filter = [filter] unless filter.is_a? Array result = backtrace.dup unless ENV['PRETTY_TRACE'] == 'full' filter.each do |expression| result.reject! { |trace| trace =~ expression } end end result.map! { |line| BacktraceItem.new line } first_line = result[0] result.reverse! result.uniq!(&:path) if should_trim? result if first_line and first_line.original_line != result[-1].original_line result.push first_line end result end
to_s()
click to toggle source
# File lib/pretty_trace/structured_backtrace.rb, line 38 def to_s formatted_backtrace.join "\n" end
Private Instance Methods
should_trim?(backtrace)
click to toggle source
# File lib/pretty_trace/structured_backtrace.rb, line 48 def should_trim?(backtrace) options[:trim] and ENV['PRETTY_TRACE'] != 'full' and backtrace.size > 3 end