Class: EacRubyBase0::ErrorPresenter

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

Instance Method Summary collapse

Instance Method Details

#causeEacRubyBase0::ErrorPresenter?



10
11
12
# File 'lib/eac_ruby_base0/error_presenter.rb', line 10

memoize def cause
  the_error.cause.if_present { |v| self.class.new(v) }
end

#full_backtrace_messageString

Returns:

  • (String)


15
16
17
# File 'lib/eac_ruby_base0/error_presenter.rb', line 15

def full_backtrace_message
  the_error.backtrace.map { |v| "#{v}\n" }.join
end

#full_messageString

Returns:

  • (String)


20
21
22
23
24
# File 'lib/eac_ruby_base0/error_presenter.rb', line 20

def full_message
  self_full_message + cause.if_present('') do |e|
    "#{'-' * 16}\n#{e.full_message}"
  end
end

#log_pathPathname

Returns:

  • (Pathname)


32
33
34
# File 'lib/eac_ruby_base0/error_presenter.rb', line 32

def log_path
  @log_path ||= ::EacRubyUtils::Fs::Temp.file.to_pathname.tap { |e| e.write(full_message) }
end

#messageString

Returns:

  • (String)


27
28
29
# File 'lib/eac_ruby_base0/error_presenter.rb', line 27

def message
  "#{the_error.message} (#{the_error.class})"
end

#self_full_messageString

Returns:

  • (String)


37
38
39
40
41
# File 'lib/eac_ruby_base0/error_presenter.rb', line 37

def self_full_message
  "Error class: #{the_error.class}\n" \
  "Message: #{the_error.message}\n" \
  "Backtrace:\n" + the_error.backtrace.map { |v| "#{v}\n" }.join
end

#showvoid

This method returns an undefined value.



44
45
46
47
# File 'lib/eac_ruby_base0/error_presenter.rb', line 44

def show
  show_message
  show_log_file
end

#show_log_filevoid

This method returns an undefined value.



57
58
59
# File 'lib/eac_ruby_base0/error_presenter.rb', line 57

def show_log_file
  infov 'Full log', log_path
end

#show_message(caused_by = false) ⇒ void

This method returns an undefined value.



50
51
52
53
54
# File 'lib/eac_ruby_base0/error_presenter.rb', line 50

def show_message(caused_by = false) # rubocop:disable Style/OptionalBooleanParameter
  prefix = caused_by ? 'Caused by: ' : ''
  error [prefix, message].join
  cause.if_present { |v| v.show_message(true) }
end