class Producer::Core::ErrorFormatter
Constants
- FILTERS
Public Class Methods
new(debug: false)
click to toggle source
# File lib/producer/core/error_formatter.rb, line 11 def initialize debug: false @debug = debug end
Public Instance Methods
debug?()
click to toggle source
# File lib/producer/core/error_formatter.rb, line 15 def debug? !!@debug end
format(exception)
click to toggle source
# File lib/producer/core/error_formatter.rb, line 19 def format exception if debug? && exception.cause lines = format_exception exception, filter: true lines << '' lines << 'cause:' lines << format_exception(exception.cause, filter: false) else lines = format_exception exception, filter: !debug? end lines.join "\n" end
Private Instance Methods
filter_backtrace(backtrace)
click to toggle source
# File lib/producer/core/error_formatter.rb, line 50 def filter_backtrace backtrace backtrace.reject do |line| FILTERS.any? { |filter| line =~ filter } end end
format_backtrace(backtrace, filter: true)
click to toggle source
# File lib/producer/core/error_formatter.rb, line 45 def format_backtrace backtrace, filter: true backtrace = filter_backtrace backtrace if filter indent_backtrace backtrace end
format_exception(exception, filter: true)
click to toggle source
# File lib/producer/core/error_formatter.rb, line 34 def format_exception exception, filter: true [ format_message(exception), *format_backtrace(exception.backtrace, filter: filter) ] end
format_message(exception)
click to toggle source
# File lib/producer/core/error_formatter.rb, line 41 def format_message exception "#{exception.class.name.split('::').last}: #{exception.message}" end
indent_backtrace(backtrace)
click to toggle source
# File lib/producer/core/error_formatter.rb, line 56 def indent_backtrace backtrace backtrace.map { |e| ' ' + e } end