Sha256: b39ecc68cd0a6b15160010a7eafadbbee3d091e88ecc2319740717fa172a102a
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
require 'fileutils' require 'jkr/utils' class Jkr class Trial attr_reader :params def self.make_trials(resultset_dir, plan) var_combs = [{}] plan.vars.each do |key, vals| var_combs = vals.map {|val| var_combs.map do |var_comb| var_comb.dup.merge(key => val) end }.flatten end var_combs.map do |var_comb| result_dir = Utils.reserve_next_dir(resultset_dir) Trial.new(result_dir, plan, plan.params.merge(var_comb)) end end def self.run(env, plan) plan_suffix = File.basename(plan.file_path, ".plan") resultset_dir = Utils.reserve_next_dir(env.jkr_result_dir, plan_suffix) trials = self.make_trials(resultset_dir, plan) FileUtils.copy_file(plan.file_path, File.join(resultset_dir, File.basename(plan.file_path))) params = plan.params.merge(plan.vars) plan.freeze plan.prep.call(plan) trials.each do |trial| trial.run end plan.cleanup.call(plan) end def initialize(result_dir, plan, params) @result_dir = result_dir @plan = plan @params = params end private :initialize def run() Jkr::TrialUtils.define_routine_utils(@result_dir, @plan, @params) @plan.routine.call(@plan, @params) Jkr::TrialUtils.undef_routine_utils(@plan) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jkr-0.0.1 | lib/jkr/trial.rb |