Class: ProtoProcessor::TaskRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/proto_processor/task_runner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(report) ⇒ TaskRunner



6
7
8
# File 'lib/proto_processor/task_runner.rb', line 6

def initialize(report)
  @report = report
end

Instance Attribute Details

#reportObject (readonly)

Returns the value of attribute report.



4
5
6
# File 'lib/proto_processor/task_runner.rb', line 4

def report
  @report
end

Instance Method Details

#run_chain(run_key, task_classes, initial_input, options, initial_report, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/proto_processor/task_runner.rb', line 10

def run_chain(run_key, task_classes, initial_input, options, initial_report, &block)
  tasks = []
  output = task_classes.inject([initial_input, options, initial_report]) do |args, task_class|
    task = task_class.new(args)
    tasks << task
    task.run
  end
  block.call(tasks, output.first, output.last) if block_given?
  @report.report(run_key, tasks, output)
  output
end