Class: Dk::TreeRunner

Inherits:
DryRunner show all
Includes:
HasTheRuns
Defined in:
lib/dk/tree_runner.rb

Constant Summary collapse

LEVEL_PREFIX =
'    '.freeze
LEVEL_BULLET =
'|-- '.freeze

Constants inherited from Runner

Runner::CMD_LOG_PREFIX, Runner::CMD_SSH_OUT_LOG_PREFIX, Runner::INDENT_LOG_PREFIX, Runner::SSH_LOG_PREFIX, Runner::TASK_END_LOG_PREFIX, Runner::TASK_START_LOG_PREFIX

Instance Attribute Summary

Attributes inherited from Runner

#logger, #params

Instance Method Summary collapse

Methods inherited from Runner

#add_task_callback, #cmd, #has_run_task?, #log_cli_run, #log_cli_task_run, #log_debug, #log_error, #log_info, #log_task_run, #pretty_run_time, #run_task, #ssh, #task_callback_task_classes, #task_callbacks

Constructor Details

#initialize(config, kernel) ⇒ TreeRunner

Returns a new instance of TreeRunner.



14
15
16
17
18
19
20
# File 'lib/dk/tree_runner.rb', line 14

def initialize(config, kernel)
  super(config, :logger => NullLogger.new) # disable any logging

  @task_run_stack = [self]
  @run_num        = 0
  @kernel         = kernel
end

Instance Method Details

#run(*args) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/dk/tree_runner.rb', line 22

def run(*args)
  # wipe the task runs before every run; that way `output_task_runs` outputs
  # just this run's task runs
  self.runs.clear

  # increment the run num and run the task
  @run_num += 1
  task = super

  # recursively output the task runs in a tree format
  output_task_runs(self.runs, 0, "#{@run_num}) ".rjust(LEVEL_PREFIX.size, ' '))

  # return the top-level task that was run
  task
end