Class: Igniter::Contracts::Contractable::Result
- Inherits:
-
Struct
- Object
- Struct
- Igniter::Contracts::Contractable::Result
- Defined in:
- lib/igniter/contracts/contractable.rb
Instance Attribute Summary collapse
-
#error ⇒ Object
Returns the value of attribute error.
-
#metadata ⇒ Object
Returns the value of attribute metadata.
-
#observations ⇒ Object
Returns the value of attribute observations.
-
#outputs ⇒ Object
Returns the value of attribute outputs.
-
#status ⇒ Object
Returns the value of attribute status.
Instance Method Summary collapse
- #failure? ⇒ Boolean
-
#initialize(status:, outputs: {}, observations: [], error: nil, metadata: {}) ⇒ Result
constructor
A new instance of Result.
- #success? ⇒ Boolean
- #to_h ⇒ Object
Constructor Details
#initialize(status:, outputs: {}, observations: [], error: nil, metadata: {}) ⇒ Result
Returns a new instance of Result.
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/igniter/contracts/contractable.rb', line 22 def initialize(status:, outputs: {}, observations: [], error: nil, metadata: {}) super( status: status.to_sym, outputs: outputs.transform_keys(&:to_sym).freeze, observations: observations.map { |observation| normalize_observation(observation) }.freeze, error: error, metadata: .dup.freeze ) freeze end |
Instance Attribute Details
#error ⇒ Object
Returns the value of attribute error
21 22 23 |
# File 'lib/igniter/contracts/contractable.rb', line 21 def error @error end |
#metadata ⇒ Object
Returns the value of attribute metadata
21 22 23 |
# File 'lib/igniter/contracts/contractable.rb', line 21 def @metadata end |
#observations ⇒ Object
Returns the value of attribute observations
21 22 23 |
# File 'lib/igniter/contracts/contractable.rb', line 21 def observations @observations end |
#outputs ⇒ Object
Returns the value of attribute outputs
21 22 23 |
# File 'lib/igniter/contracts/contractable.rb', line 21 def outputs @outputs end |
#status ⇒ Object
Returns the value of attribute status
21 22 23 |
# File 'lib/igniter/contracts/contractable.rb', line 21 def status @status end |
Instance Method Details
#failure? ⇒ Boolean
37 38 39 |
# File 'lib/igniter/contracts/contractable.rb', line 37 def failure? !success? end |
#success? ⇒ Boolean
33 34 35 |
# File 'lib/igniter/contracts/contractable.rb', line 33 def success? status == :success end |
#to_h ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/igniter/contracts/contractable.rb', line 41 def to_h { status: status, success: success?, outputs: outputs, observations: observations.map(&:to_h), error: error, metadata: .dup }.compact end |