class Qless::FailureFormatter
A helper for formatting failure messages
Constants
- Failure
- MAX_ERROR_MESSAGE_SIZE
TODO: pull this out into a config option.
Public Class Methods
new()
click to toggle source
# File lib/qless/failure_formatter.rb, line 13 def initialize @replacements = { Dir.pwd => '.' } @replacements[ENV['GEM_HOME']] = '<GEM_HOME>' if ENV.key?('GEM_HOME') end
Public Instance Methods
format(job, error, lines_to_remove = caller(2))
click to toggle source
# File lib/qless/failure_formatter.rb, line 18 def format(job, error, lines_to_remove = caller(2)) group = "#{job.klass_name}:#{error.class}" message = "#{truncated_message(error)}\n\n" + "#{format_failure_backtrace(error.backtrace, lines_to_remove)}" Failure.new(group, message) end
Private Instance Methods
format_failure_backtrace(error_backtrace, lines_to_remove)
click to toggle source
# File lib/qless/failure_formatter.rb, line 35 def format_failure_backtrace(error_backtrace, lines_to_remove) (error_backtrace - lines_to_remove).map do |line| @replacements.reduce(line) do |formatted, (original, new)| formatted.sub(original, new) end end.join("\n") end
truncated_message(error)
click to toggle source
# File lib/qless/failure_formatter.rb, line 29 def truncated_message(error) return error.message if error.message.length <= MAX_ERROR_MESSAGE_SIZE error.message.slice(0, MAX_ERROR_MESSAGE_SIZE) + "\n... (truncated due to length)" end