class Pm::Process
Basic process
Attributes
config[R]
context[R]
Public Class Methods
new(config, context)
click to toggle source
# File lib/flow.rb, line 42 def initialize(config, context) @config = config @context = context @operations = [] extend_by_tag end
Public Instance Methods
build_next_operations(old_operation)
click to toggle source
# File lib/flow.rb, line 71 def build_next_operations(old_operation) old_operation.config[old_operation.status].each do |operation_conf| operation_conf.each do |tag, _value| new_config = config['operations'].find { |o| o['tag'] == tag } new_operations = Operation.new(new_config, old_operation.context) @operations << new_operations end end end
run_iteration()
click to toggle source
# File lib/flow.rb, line 58 def run_iteration next_operations = @operations.select(&:ready?) next_operations.map(&:complete) next_operations.map do |old_operation| next if old_operation.config[old_operation.status].nil? build_next_operations(old_operation) end run_iteration if @operations.any?(&:ready?) end
start()
click to toggle source
# File lib/flow.rb, line 50 def start @operations = config['start'].map do |tag| new_config = config['operations'].find { |o| o['tag'] == tag } Operation.new(new_config, context) end run_iteration end