Class: Literal::Result Abstract

Inherits:
Monad
  • Object
show all
Defined in:
lib/literal/result.rb

Overview

This class is abstract.

Direct Known Subclasses

Failure, Success

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Monad

#handle

Constructor Details

#initialize(value) ⇒ Result

Returns a new instance of Result.



5
6
7
8
# File 'lib/literal/result.rb', line 5

def initialize(value)
	@value = value
	freeze
end

Instance Attribute Details

#valueObject

Returns the value of attribute value.



10
11
12
# File 'lib/literal/result.rb', line 10

def value
  @value
end

Instance Method Details

#call {|switch| ... } ⇒ Object

Yield Parameters:



18
19
20
# File 'lib/literal/result.rb', line 18

def call(&)
	Literal::Case.new(Literal::Success, Literal::Failure, &)[self].call(@value)
end

#deconstructArray

Returns:



13
14
15
# File 'lib/literal/result.rb', line 13

def deconstruct
	[@value]
end