class WorkflowRb::StepBuilder
Attributes
step[RW]
Public Class Methods
new(workflow_builder, step)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 55 def initialize(workflow_builder, step) @workflow_builder = workflow_builder @step = step end
Public Instance Methods
input(step_property, &value)
click to toggle source
Map workflow instance data to a property on the step
@param step_property [Symbol] the attribute on the step body class
# File lib/workflow_rb/services/workflow_builder.rb, line 105 def input(step_property, &value) mapping = IOMapping.new mapping.property = step_property mapping.value = value @step.inputs << mapping self end
name(name)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 60 def name(name) @step.name = name end
output(data_property, &value)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 113 def output(data_property, &value) mapping = IOMapping.new mapping.property = data_property mapping.value = value @step.outputs << mapping self end
then(body, &setup)
click to toggle source
Adds a new step to the workflow
@param body [Class] the step body implementation class
# File lib/workflow_rb/services/workflow_builder.rb, line 67 def then(body, &setup) new_step = WorkflowStep.new new_step.body = body @workflow_builder.add_step(new_step) new_builder = StepBuilder.new(@workflow_builder, new_step) if body.kind_of?(Class) new_step.name = body.name end if setup setup.call(new_builder) end new_outcome = StepOutcome.new new_outcome.next_step = new_step.id new_outcome.value = nil @step.outcomes << new_outcome new_builder end
then_step(&body)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 90 def then_step(&body) self.then(body) end
wait_for(event_name, event_key)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 121 def wait_for(event_name, event_key) new_step = SubscriptionStep.new new_step.event_name = event_name new_step.event_key = event_key @workflow_builder.add_step(new_step) new_builder = StepBuilder.new(@workflow_builder, new_step) new_step.name = 'WaitFor' new_outcome = StepOutcome.new new_outcome.next_step = new_step.id new_outcome.value = nil @step.outcomes << new_outcome new_builder end
when(value)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 94 def when(value) new_outcome = StepOutcome.new new_outcome.value = value @step.outcomes << new_outcome new_builder = OutcomeBuilder.new(@workflow_builder, new_outcome) new_builder end