Class: RSMP::Failure
- Inherits:
-
Data
- Object
- Data
- RSMP::Failure
- Defined in:
- lib/rsmp/failure.rb
Overview
An expected operational failure. Failures are values: they describe why an operation could not complete without changing Async task control flow.
Instance Attribute Summary collapse
-
#cause ⇒ Object
readonly
Returns the value of attribute cause.
-
#code ⇒ Object
readonly
Returns the value of attribute code.
-
#context ⇒ Object
readonly
Returns the value of attribute context.
-
#message ⇒ Object
readonly
Returns the value of attribute message.
-
#source ⇒ Object
readonly
Returns the value of attribute source.
Instance Method Summary collapse
-
#initialize(code:, message:, source:, context: {}, cause: nil) ⇒ Failure
constructor
A new instance of Failure.
- #to_s ⇒ Object
Constructor Details
#initialize(code:, message:, source:, context: {}, cause: nil) ⇒ Failure
Returns a new instance of Failure.
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/rsmp/failure.rb', line 5 def initialize(code:, message:, source:, context: {}, cause: nil) raise ArgumentError, 'failure code must be a Symbol' unless code.is_a?(Symbol) raise ArgumentError, 'failure source must be a Symbol' unless source.is_a?(Symbol) raise ArgumentError, 'failure context must be a Hash' unless context.is_a?(Hash) super( code: code, message: .to_s.freeze, source: source, context: context.dup.freeze, cause: cause ) end |
Instance Attribute Details
#cause ⇒ Object (readonly)
Returns the value of attribute cause
4 5 6 |
# File 'lib/rsmp/failure.rb', line 4 def cause @cause end |
#code ⇒ Object (readonly)
Returns the value of attribute code
4 5 6 |
# File 'lib/rsmp/failure.rb', line 4 def code @code end |
#context ⇒ Object (readonly)
Returns the value of attribute context
4 5 6 |
# File 'lib/rsmp/failure.rb', line 4 def context @context end |
#message ⇒ Object (readonly)
Returns the value of attribute message
4 5 6 |
# File 'lib/rsmp/failure.rb', line 4 def end |
#source ⇒ Object (readonly)
Returns the value of attribute source
4 5 6 |
# File 'lib/rsmp/failure.rb', line 4 def source @source end |
Instance Method Details
#to_s ⇒ Object
19 20 21 |
# File 'lib/rsmp/failure.rb', line 19 def to_s .empty? ? code.to_s : end |