Class: OpenStax::RescueFrom::ExceptionProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/openstax/rescue_from/exception_proxy.rb

Direct Known Subclasses

ExceptionCauseProxy

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(exception) ⇒ ExceptionProxy

Returns a new instance of ExceptionProxy.



6
7
8
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 6

def initialize(exception)
  @exception = exception
end

Instance Attribute Details

#exceptionObject (readonly)

Returns the value of attribute exception.



4
5
6
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 4

def exception
  @exception
end

Instance Method Details

#causeObject



30
31
32
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 30

def cause
  @cause ||= exception.cause if exception.respond_to?(:cause)
end

#error_idObject



14
15
16
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 14

def error_id
  @error_id ||= RescueFrom.generate_id
end

#extrasObject



26
27
28
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 26

def extras
  @extras ||= RescueFrom.extras_proc(name).call(exception)
end

#first_backtrace_lineObject



38
39
40
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 38

def first_backtrace_line
  @first_backtrace_line ||= exception.backtrace&.first
end

#friendly_messageObject



22
23
24
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 22

def friendly_message
  RescueFrom.friendly_message(self)
end

#logger_backtraceObject



34
35
36
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 34

def logger_backtrace
  @backtrace ||= exception.backtrace&.join("\n")
end

#messageObject



18
19
20
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 18

def message
  @message ||= exception.message
end

#nameObject



10
11
12
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 10

def name
  @name ||= exception.class.name
end

#sorryObject



50
51
52
53
54
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 50

def sorry
  return @sorry unless @sorry.nil?

  @sorry = RescueFrom.sorry(name)
end

#statusObject



42
43
44
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 42

def status
  @status ||= RescueFrom.status(name)
end

#status_codeObject



46
47
48
# File 'lib/openstax/rescue_from/exception_proxy.rb', line 46

def status_code
  @status_code ||= RescueFrom.http_code(status)
end