Module: L43::Core::AsResult
- Includes:
- Result
- Defined in:
- lib/l43/core/as_result.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Result
#==, #deconstruct_keys, #message!, #value!
#error, #ok
Class Method Details
.extended(by) ⇒ Object
8
9
10
|
# File 'lib/l43/core/as_result.rb', line 8
def self.extended(by)
by.include self
end
|
Instance Method Details
#as_result(caller: nil, &blk) ⇒ Object
12
13
14
15
16
17
18
19
20
|
# File 'lib/l43/core/as_result.rb', line 12
def as_result(caller: nil, &blk)
Success.new(blk.())
rescue StandardError => se
Failure.new(
exception: se,
message: se.inspect,
location: [caller, se.backtrace_locations.first].compact.join(" ")
)
end
|
#as_result_fn(&blk) ⇒ Object
30
31
32
33
34
|
# File 'lib/l43/core/as_result.rb', line 30
def as_result_fn(&blk)
-> (v) do
as_result { blk.(v) }
end
end
|
#defresult(name, &blk) ⇒ Object
22
23
24
25
26
27
28
|
# File 'lib/l43/core/as_result.rb', line 22
def defresult(name, &blk)
define_method(name) do |*a, **k, &b|
as_result(caller: name) do
blk.(*a, **k, &b)
end
end
end
|