Module: L43::Core::AsResult
- Includes:
- Result
- Defined in:
- lib/l43/core/as_result.rb
Defined Under Namespace
Modules: Stack
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Result
#==, #deconstruct_keys, #message!, #value!
#error, #ok
Class Method Details
.extended(by) ⇒ Object
15
16
17
|
# File 'lib/l43/core/as_result.rb', line 15
def self.extended(by)
by.include self
end
|
Instance Method Details
#as_result(name = nil, caller: nil, &blk) ⇒ Object
19
20
21
22
23
24
25
26
27
|
# File 'lib/l43/core/as_result.rb', line 19
def as_result(name=nil, caller: nil, &blk)
Success.new(blk.())
rescue StandardError => se
Failure.new(
exception: se,
message: [se.inspect, name, "at #{blk.source_location}"].compact.join("\n"),
location: [caller, Stack.trace(se.backtrace_locations)].compact.join("\t\n")
)
end
|
#as_result_fn(&blk) ⇒ Object
37
38
39
40
41
|
# File 'lib/l43/core/as_result.rb', line 37
def as_result_fn(&blk)
-> (v) do
as_result { blk.(v) }
end
end
|
#defresult(name, &blk) ⇒ Object
29
30
31
32
33
34
35
|
# File 'lib/l43/core/as_result.rb', line 29
def defresult(name, &blk)
define_method(name) do |*a, **k, &b|
as_result(caller: name) do
blk.(*a, **k, &b)
end
end
end
|