Class: Textus::Value::Result
- Inherits:
-
Data
- Object
- Data
- Textus::Value::Result
- Defined in:
- lib/textus/value/result.rb
Overview
rubocop:disable Lint/ConstantDefinitionInBlock
Defined Under Namespace
Classes: UnwrapError
Instance Attribute Summary collapse
-
#error ⇒ Object
readonly
Returns the value of attribute error.
-
#ok ⇒ Object
readonly
Returns the value of attribute ok.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#error ⇒ Object (readonly)
Returns the value of attribute error
4 5 6 |
# File 'lib/textus/value/result.rb', line 4 def error @error end |
#ok ⇒ Object (readonly)
Returns the value of attribute ok
4 5 6 |
# File 'lib/textus/value/result.rb', line 4 def ok @ok end |
#value ⇒ Object (readonly)
Returns the value of attribute value
4 5 6 |
# File 'lib/textus/value/result.rb', line 4 def value @value end |
Class Method Details
.extract(result) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/textus/value/result.rb', line 11 def self.extract(result) case result when self if result.success? result.value else err = result.error raise Textus::ActionError.new(err[:code] || :error, err[:message] || "action failed", details: err[:details] || {}) end else result end end |
.failure(code, message, details: {}) ⇒ Object
7 8 9 |
# File 'lib/textus/value/result.rb', line 7 def self.failure(code, , details: {}) new(ok: false, value: nil, error: { code: code, message: , details: details }) end |
.success(value) ⇒ Object
5 |
# File 'lib/textus/value/result.rb', line 5 def self.success(value) = new(ok: true, value: value, error: nil) |
Instance Method Details
#failure? ⇒ Boolean
26 |
# File 'lib/textus/value/result.rb', line 26 def failure? = !ok |
#success? ⇒ Boolean
25 |
# File 'lib/textus/value/result.rb', line 25 def success? = ok |
#unwrap ⇒ Object
28 29 30 31 32 |
# File 'lib/textus/value/result.rb', line 28 def unwrap raise Result::UnwrapError.new(error[:code], error[:message], details: error[:details]) unless ok value end |