Class: ToiletTracker::Core::Result
- Inherits:
-
Data
- Object
- Data
- ToiletTracker::Core::Result
- Defined in:
- lib/toilet_tracker/core/result.rb
Instance Attribute Summary collapse
-
#error ⇒ Object
readonly
Returns the value of attribute error.
-
#success? ⇒ Object
readonly
Returns the value of attribute success?.
-
#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
5 6 7 |
# File 'lib/toilet_tracker/core/result.rb', line 5 def error @error end |
#success? ⇒ Object (readonly)
Returns the value of attribute success?
5 6 7 |
# File 'lib/toilet_tracker/core/result.rb', line 5 def success? @success? end |
#value ⇒ Object (readonly)
Returns the value of attribute value
5 6 7 |
# File 'lib/toilet_tracker/core/result.rb', line 5 def value @value end |
Class Method Details
.failure(error) ⇒ Object
10 11 12 |
# File 'lib/toilet_tracker/core/result.rb', line 10 def self.failure(error) new(success?: false, value: nil, error: error) end |
.success(value) ⇒ Object
6 7 8 |
# File 'lib/toilet_tracker/core/result.rb', line 6 def self.success(value) new(success?: true, value: value, error: nil) end |
Instance Method Details
#failure? ⇒ Boolean
14 15 16 |
# File 'lib/toilet_tracker/core/result.rb', line 14 def failure? !success? end |
#map ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/toilet_tracker/core/result.rb', line 29 def map return self if failure? begin Result.success(yield(value)) rescue StandardError => e Result.failure(e) end end |
#then ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/toilet_tracker/core/result.rb', line 18 def then return self if failure? begin result = yield(value) result.is_a?(Result) ? result : Result.success(result) rescue StandardError => e Result.failure(e) end end |
#value! ⇒ Object
39 40 41 42 43 |
# File 'lib/toilet_tracker/core/result.rb', line 39 def value! raise error if failure? value end |