Class: TurbotRunner::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/turbot_runner/runner.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(directory, options = {}) ⇒ Runner

Returns a new instance of Runner.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/turbot_runner/runner.rb', line 9

def initialize(directory, options={})
  assert_absolute_path(directory)
  @base_directory = directory
  @config = load_config(directory)
  @record_handler = options[:record_handler]
  @log_to_file = options[:log_to_file]
  @timeout = options[:timeout]
  if options[:output_directory]
    assert_absolute_path(options[:output_directory])
    @output_directory = options[:output_directory]
  else
    @output_directory = File.join(@base_directory, 'output')
  end
end

Instance Attribute Details

#base_directoryObject (readonly)

Returns the value of attribute base_directory.



7
8
9
# File 'lib/turbot_runner/runner.rb', line 7

def base_directory
  @base_directory
end

Instance Method Details

#process_outputObject



48
49
50
51
52
53
54
# File 'lib/turbot_runner/runner.rb', line 48

def process_output
  process_script_output(scraper_config)

  transformers.each do |transformer_config|
    process_script_output(transformer_config.merge(:base_directory => @base_directory))
  end
end

#runObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/turbot_runner/runner.rb', line 24

def run
  set_up_output_directory

  succeeded = run_script(scraper_config)
  # Run the transformers even if the scraper fails
  transformers.each do |transformer_config|
    succeeded = run_script(
      transformer_config.merge(:base_directory => @base_directory),
      input_file=scraper_output_file) && succeeded
  end
  succeeded
end

#set_up_output_directoryObject



37
38
39
40
41
42
43
44
45
46
# File 'lib/turbot_runner/runner.rb', line 37

def set_up_output_directory
  FileUtils.mkdir_p(@output_directory)
  FileUtils.rm_f(File.join(@output_directory, 'scraper.out'))
  FileUtils.rm_f(File.join(@output_directory, 'scraper.err'))

  transformers.each do |transformer_config|
    FileUtils.rm_f(File.join(@output_directory, "#{transformer_config[:file]}.out"))
    FileUtils.rm_f(File.join(@output_directory, "#{transformer_config[:file]}.err"))
  end
end