Module: Smith::Workflow::SplitStepPersistence::CompositeExecution

Included in:
Smith::Workflow::SplitStepPersistence
Defined in:
lib/smith/workflow/split_step_persistence/composite_execution.rb

Instance Method Summary collapse

Instance Method Details

#execute_prepared_composite_branch!(execution:, input:) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/smith/workflow/split_step_persistence/composite_execution.rb', line 17

def execute_prepared_composite_branch!(execution:, input:)
  CompositeBranchAuthorization
    .instance_method(:with_composite_branch_authorization)
    .bind_call(self, execution, input) do |authorization|
      CompositeBranchExecution
        .instance_method(:execute_authorized_composite_branch!)
        .bind_call(self, authorization, execution:, input:)
    end
end

#prepare_composite_step!Object



7
8
9
10
11
12
13
14
15
# File 'lib/smith/workflow/split_step_persistence/composite_execution.rb', line 7

def prepare_composite_step!
  ExecutionAuthorizationIssuance
    .instance_method(:with_prepared_step_execution_authorization)
    .bind_call(self) do |authorization|
      CompositePreparation
        .instance_method(:prepare_authorized_composite_step!)
        .bind_call(self, authorization)
    end
end

#reduce_prepared_composite_step!(plan:, input:, outcomes:, primary_failure: nil) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/smith/workflow/split_step_persistence/composite_execution.rb', line 27

def reduce_prepared_composite_step!(plan:, input:, outcomes:, primary_failure: nil)
  ExecutionAuthorizationIssuance
    .instance_method(:with_prepared_step_execution_authorization)
    .bind_call(self) do |authorization|
      CompositeReductionExecution
        .instance_method(:reduce_authorized_composite_step!)
        .bind_call(self, authorization, plan:, input:, outcomes:, primary_failure:)
    end
end