class Dmatrix::Runner
Attributes
logger[R]
options[R]
run_command[R]
Public Class Methods
new(options:, run_command:, logger: Logger.new)
click to toggle source
# File lib/dmatrix/runner.rb, line 11 def initialize(options:, run_command:, logger: Logger.new) @options = options @run_command = run_command @logger = logger end
Public Instance Methods
call()
click to toggle source
# File lib/dmatrix/runner.rb, line 17 def call reset_log_dir results = Parallel.map(combinations, in_threads: 4) do |combination| Executor.new( combination: combination, run_command: run_command, log_dir: log_dir ).build_run.tap do |result| logger.log_result(result) end end if results.any?(&:failure?) exit(1) end end
Private Instance Methods
combinations()
click to toggle source
# File lib/dmatrix/runner.rb, line 39 def combinations Matrix.new(input_combinations).combinations end
input_combinations()
click to toggle source
# File lib/dmatrix/runner.rb, line 43 def input_combinations YAML.load_file(matrix_path).fetch("matrix") end
log_dir()
click to toggle source
# File lib/dmatrix/runner.rb, line 56 def log_dir options.fetch(:log_dir) end
log_files()
click to toggle source
# File lib/dmatrix/runner.rb, line 60 def log_files Dir.glob(File.join(log_dir, "*.log")) end
matrix_path()
click to toggle source
# File lib/dmatrix/runner.rb, line 47 def matrix_path options.fetch(:matrix) end
reset_log_dir()
click to toggle source
# File lib/dmatrix/runner.rb, line 51 def reset_log_dir FileUtils.mkdir_p(log_dir) FileUtils.rm_r(log_files) end