Class: UseCaseFlow::Result
- Inherits:
-
Object
- Object
- UseCaseFlow::Result
show all
- Defined in:
- lib/use_case_flow/result.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, *args) ⇒ Result
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/use_case_flow/result.rb', line 7
def initialize(name, *args)
@name = name
@args = args
@was_called = false
define_singleton_method(name) do |&block|
block.call(*@args)
@was_called = true
end
define_singleton_method("#{name}?") do
true
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(_method_name, *_args, &_block) ⇒ Object
rubocop:disable Style/MethodMissing
31
32
33
|
# File 'lib/use_case_flow/result.rb', line 31
def method_missing(_method_name, *_args, &_block)
false
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
5
6
7
|
# File 'lib/use_case_flow/result.rb', line 5
def name
@name
end
|
Instance Method Details
#else ⇒ Object
22
23
24
|
# File 'lib/use_case_flow/result.rb', line 22
def else
yield unless @was_called
end
|
#else_fail! ⇒ Object
26
27
28
|
# File 'lib/use_case_flow/result.rb', line 26
def else_fail!
self.else { raise "unhandled Result '#{@name}' with args: #{@args.inspect}" }
end
|
#value ⇒ Object
39
40
41
|
# File 'lib/use_case_flow/result.rb', line 39
def value
@args.first
end
|
#values ⇒ Object
35
36
37
|
# File 'lib/use_case_flow/result.rb', line 35
def values
@args
end
|