Class: RubyODE::ChainUseCase

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_ode/runtime.rb

Instance Method Summary collapse

Constructor Details

#initialize(first:, second:) ⇒ ChainUseCase

Returns a new instance of ChainUseCase.



64
65
66
67
# File 'lib/ruby_ode/runtime.rb', line 64

def initialize(first:, second:)
  @first = first
  @second = second
end

Instance Method Details

#process(param) ⇒ Object



69
70
71
72
73
74
75
76
77
# File 'lib/ruby_ode/runtime.rb', line 69

def process(param)
  first_output = @first.process(param)
  return Outputs.error(first_output.error) if first_output.is_a?(ErrorOutput)
  return Outputs.empty if first_output.is_a?(EmptyOutput)

  Outputs.value(@second.call(first_output.value, param))
rescue StandardError => error
  Outputs.error(error)
end