Class: L43::Core::Result
- Inherits:
-
Object
show all
- Extended by:
- Constructors
- Includes:
- Helpers
- Defined in:
- lib/l43/core/result.rb,
lib/l43/core/result/helpers.rb,
lib/l43/core/result/constructors.rb
Defined Under Namespace
Modules: Constructors, Helpers
Instance Method Summary
collapse
error, ok
Methods included from Helpers
#as_result, #as_result_fn
Instance Method Details
#==(other) ⇒ Object
13
14
15
16
17
|
# File 'lib/l43/core/result.rb', line 13
def ==(other)
return false unless self.class === other
to_h == other.to_h
end
|
#deconstruct ⇒ Object
19
20
21
22
23
24
25
|
# File 'lib/l43/core/result.rb', line 19
def deconstruct(*)
if @ok
[:ok, @value]
else
[:error, @message]
end
end
|
#error? ⇒ Boolean
27
|
# File 'lib/l43/core/result.rb', line 27
def error? = !@ok
|
#map(&blk) ⇒ Object
29
30
31
32
|
# File 'lib/l43/core/result.rb', line 29
def map(&blk)
return self unless @ok
blk.(self)
end
|
#map_result(&blk) ⇒ Object
34
35
36
37
38
39
|
# File 'lib/l43/core/result.rb', line 34
def map_result(&blk)
return self unless @ok
as_result('map_result') do
blk.(self)
end
end
|
#map_result!(&blk) ⇒ Object
41
42
43
44
|
# File 'lib/l43/core/result.rb', line 41
def map_result!(&blk)
return self unless @ok
self.class.ok(blk.(self))
end
|
#message! ⇒ Object
Also known as:
message
46
47
48
49
|
# File 'lib/l43/core/result.rb', line 46
def message!
return @message unless @ok
raise IllegalState, "No error message in an ok result"
end
|
#ok? ⇒ Boolean
52
|
# File 'lib/l43/core/result.rb', line 52
def ok? = @ok
|
#to_h ⇒ Object
Also known as:
deconstruct_keys
54
55
56
57
58
59
60
|
# File 'lib/l43/core/result.rb', line 54
def to_h(*)
if @ok
{ok: @value}
else
{error: @message}
end
end
|
#value! ⇒ Object
Also known as:
value
63
64
65
66
|
# File 'lib/l43/core/result.rb', line 63
def value!
return @value if @ok
raise IllegalState, "No value in an error result"
end
|