class UseCaseFlow::Result

Attributes

name[R]

Public Class Methods

new(name, *args) click to toggle source
# 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

Public Instance Methods

else() { || ... } click to toggle source
# File lib/use_case_flow/result.rb, line 22
def else
  yield unless @was_called
end
else_fail!() click to toggle source
# File lib/use_case_flow/result.rb, line 26
def else_fail!
  self.else { raise "unhandled Result '#{@name}' with args: #{@args.inspect}" }
end
method_missing(_method_name, *_args, &_block) click to toggle source

rubocop:disable Style/MethodMissing

# File lib/use_case_flow/result.rb, line 31
def method_missing(_method_name, *_args, &_block)
  false
end
value() click to toggle source
# File lib/use_case_flow/result.rb, line 39
def value
  @args.first
end
values() click to toggle source
# File lib/use_case_flow/result.rb, line 35
def values
  @args
end