Class: Hubbado::Sequence::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/hubbado/sequence/runner.rb

Overview

Invokes a sequencer and dispatches its Result to outcome blocks. Forgetting to handle a serious failure raises rather than silently swallowing it. Usable as a configurable dependency wherever a sequencer Result needs branch-style handling.

Defined Under Namespace

Modules: Substitute Classes: Dispatch

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.buildObject



10
11
12
# File 'lib/hubbado/sequence/runner.rb', line 10

def self.build
  new
end

Instance Method Details

#call(sequencer_class, **kwargs, &block) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/hubbado/sequence/runner.rb', line 14

def call(sequencer_class, **kwargs, &block)
  result = sequencer_class.(**kwargs)

  dispatch = Dispatch.new(sequencer_class, result)
  block.call(dispatch) if block_given?

  dispatch.enforce_safety_nets!

  dispatch.returned
end