Class: Squake::Return
- Inherits:
-
Object
- Object
- Squake::Return
- Extended by:
- T::Generic, T::Sig
- Defined in:
- lib/squake/return.rb
Defined Under Namespace
Classes: Failure
Constant Summary collapse
- FAILURE_MSG_NO_ARGS =
'Must provide either a result or errors'
- FAILURE_MSG_BOTH_ARGS =
'Cannot provide both a result and errors'
- FAILURE_ERRORS_CALLED_WHEN_SUCCESS =
'Cannot call errors when result is present'
- Error =
type_member { { fixed: Errors::APIErrorResult } }
- Result =
type_member { { upper: Object } }
Instance Method Summary collapse
- #errors ⇒ Object
- #failed? ⇒ Boolean
-
#initialize(result: nil, errors: nil) ⇒ Return
constructor
A new instance of Return.
- #result ⇒ Object
- #success? ⇒ Boolean
Constructor Details
#initialize(result: nil, errors: nil) ⇒ Return
Returns a new instance of Return.
21 22 23 24 25 26 27 |
# File 'lib/squake/return.rb', line 21 def initialize(result: nil, errors: nil) raise Failure, FAILURE_MSG_NO_ARGS if result.nil? && errors.nil? raise Failure, FAILURE_MSG_BOTH_ARGS if present?(result) && present?(errors) @result = result @errors = errors end |
Instance Method Details
#errors ⇒ Object
40 41 42 43 44 |
# File 'lib/squake/return.rb', line 40 def errors raise Failure, FAILURE_ERRORS_CALLED_WHEN_SUCCESS if success? T.must(@errors) end |
#failed? ⇒ Boolean
35 36 37 |
# File 'lib/squake/return.rb', line 35 def failed? !success? end |
#result ⇒ Object
47 48 49 50 51 |
# File 'lib/squake/return.rb', line 47 def result raise Failure, @errors&.map(&:serialize) if failed? T.must(@result) end |
#success? ⇒ Boolean
30 31 32 |
# File 'lib/squake/return.rb', line 30 def success? blank?(@errors) end |