class WorkflowRb::WorkflowBuilder
Attributes
initial_step[RW]
steps[RW]
Public Class Methods
new()
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 9 def initialize @steps = [] end
Public Instance Methods
add_step(step)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 23 def add_step(step) step.id = @steps.length @steps << step end
build(id, version, data_class)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 13 def build(id, version, data_class) result = WorkflowDefinition.new result.id = id result.version = version result.data_class = data_class result.steps = @steps result.initial_step = @initial_step result end
start_step(&body)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 45 def start_step(&body) start_with(body) end
start_with(body, &setup)
click to toggle source
# File lib/workflow_rb/services/workflow_builder.rb, line 28 def start_with(body, &setup) new_step = WorkflowStep.new new_step.body = body if body.kind_of?(Class) new_step.name = body.name end add_step(new_step) @initial_step = new_step.id new_builder = StepBuilder.new(self, new_step) if setup setup.call(new_builder) end new_builder end