Class: Taskinator::Task::SubProcess

Inherits:
Taskinator::Task show all
Defined in:
lib/taskinator/task.rb

Overview

a task which delegates to another process

Instance Attribute Summary collapse

Attributes inherited from Taskinator::Task

#next, #options, #process, #uuid

Instance Method Summary collapse

Methods inherited from Taskinator::Task

#<=>, base_key, #cancelled?, define_step_task, define_sub_process_task, #enqueue, #on_completed_entry, #paused?, #to_s

Methods included from Persistence

included

Constructor Details

#initialize(process, sub_process, options = {}) ⇒ SubProcess

Returns a new instance of SubProcess.

Raises:

  • (ArgumentError)


153
154
155
156
157
158
159
# File 'lib/taskinator/task.rb', line 153

def initialize(process, sub_process, options={})
  super(process, options)
  raise ArgumentError, 'sub_process' if sub_process.nil? || !sub_process.is_a?(Process)

  @sub_process = sub_process
  @sub_process.parent = self
end

Instance Attribute Details

#sub_processObject (readonly)

Returns the value of attribute sub_process.



151
152
153
# File 'lib/taskinator/task.rb', line 151

def sub_process
  @sub_process
end

Instance Method Details

#accept(visitor) ⇒ Object



170
171
172
173
# File 'lib/taskinator/task.rb', line 170

def accept(visitor)
  super
  visitor.visit_process(:sub_process)
end

#can_complete_task?Boolean

Returns:

  • (Boolean)


165
166
167
168
# File 'lib/taskinator/task.rb', line 165

def can_complete_task?
  # NOTE: this works out-of-process, so there isn't any issue
  sub_process.completed?
end

#startObject



161
162
163
# File 'lib/taskinator/task.rb', line 161

def start
  sub_process.start!
end