Class: Literal::Result::Generic
- Inherits:
-
Object
- Object
- Literal::Result::Generic
- Includes:
- Type
- Defined in:
- lib/literal/result.rb
Instance Attribute Summary collapse
-
#failure_type ⇒ Object
readonly
Returns the value of attribute failure_type.
-
#success_type ⇒ Object
readonly
Returns the value of attribute success_type.
Instance Method Summary collapse
- #===(object) ⇒ Object
- #failure(error) ⇒ Object
-
#initialize(success_type, failure_type) ⇒ Generic
constructor
A new instance of Generic.
- #success(value) ⇒ Object
Methods included from Type
Constructor Details
#initialize(success_type, failure_type) ⇒ Generic
Returns a new instance of Generic.
32 33 34 35 36 37 |
# File 'lib/literal/result.rb', line 32 def initialize(success_type, failure_type) @success_type = success_type @failure_type = failure_type freeze end |
Instance Attribute Details
#failure_type ⇒ Object (readonly)
Returns the value of attribute failure_type.
39 40 41 |
# File 'lib/literal/result.rb', line 39 def failure_type @failure_type end |
#success_type ⇒ Object (readonly)
Returns the value of attribute success_type.
39 40 41 |
# File 'lib/literal/result.rb', line 39 def success_type @success_type end |
Instance Method Details
#===(object) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/literal/result.rb', line 41 def ===(object) case object when Literal::Success @success_type === object.value! when Literal::Failure @failure_type === object.error! end end |
#failure(error) ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/literal/result.rb', line 58 def failure(error) Literal::Failure.new( error, success_type: @success_type, failure_type: @failure_type ) end |
#success(value) ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/literal/result.rb', line 50 def success(value) Literal::Success.new( value, success_type: @success_type, failure_type: @failure_type ) end |