Class: RailsWorkflow::ProcessManager

Inherits:
Object
  • Object
show all
Defined in:
app/managers/rails_workflow/process_manager.rb

Overview

ProcessManager should be used to build and start processes. It is top level hierarchy class that also can be used to build enhancements. For example they can be used to implement processes communications.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(process = nil) ⇒ ProcessManager

Returns a new instance of ProcessManager.



11
12
13
# File 'app/managers/rails_workflow/process_manager.rb', line 11

def initialize(process = nil)
  @process = process
end

Instance Attribute Details

#processObject

Returns the value of attribute process.



7
8
9
# File 'app/managers/rails_workflow/process_manager.rb', line 7

def process
  @process
end

Class Method Details

.build_process(template_id, context) ⇒ Object



15
16
17
# File 'app/managers/rails_workflow/process_manager.rb', line 15

def self.build_process(template_id, context)
  RailsWorkflow.config.template(template_id).build_process!(context)
end

.start_process(template_id, context) ⇒ Object



19
20
21
22
23
# File 'app/managers/rails_workflow/process_manager.rb', line 19

def self.start_process(template_id, context)
  process = build_process template_id, context
  new(process).start_process
  process
end

Instance Method Details

#complete_processObject



36
37
38
# File 'app/managers/rails_workflow/process_manager.rb', line 36

def complete_process
  process.complete
end

#operation_completed(operation) ⇒ Object



31
32
33
34
# File 'app/managers/rails_workflow/process_manager.rb', line 31

def operation_completed(operation)
  process.operation_complete operation
  process_complete
end

#start_processObject



25
26
27
28
29
# File 'app/managers/rails_workflow/process_manager.rb', line 25

def start_process
  process.start
rescue => exception
  RailsWorkflow::Error.create_from exception, parent: process
end