lib/experiment/runner.rb in experiment-0.3.0 vs lib/experiment/runner.rb in experiment-0.3.1

- old
+ new

@@ -31,13 +31,14 @@ req_file.puts req_file.puts req_file.puts "# The first contious block of comment will be included in your report." req_file.puts "# This includes the reference implementation." req_file.puts "# Override any desired files in this directory." - Dir["./app/**/*.rb"].each do |f| - p = f.split("/") - File.expand_path(".").split("/") - req_file.puts "require File.dirname(__FILE__) + \"/../../#{p.join("/")}\"" + Dir["./app/**/*.{rb,o,dll,so,bundle}"].each do |f| + next if File.basename(f) == 'extconfig.rb' + p = File.expand_path(f).split("/") - File.expand_path(".").split("/") + req_file.puts "require \"#{p.join("/").gsub(/\.(rb|o|dll|so|bundle)$/, "")}\"" end req_file.puts "\nclass #{as_class_name @arguments.first} < MyExperiment\n\t\nend" end File.open(dir + "/config.yaml", "w") do |f| f << "---\nexperiment:\n development:\n compute:\n" @@ -123,10 +124,11 @@ # use the -o option to override configuration def run require File.dirname(__FILE__) + "/base" require "./experiments/experiment" + $: << "./" Experiment::Config::init @options.env @options.cv = Experiment::Config.get :cross_validations, 5 if @options.cv.nil? if @options.distributed require "drb/drb" require File.dirname(__FILE__) + "/work_server" @@ -134,11 +136,11 @@ Notify::init @arguments.length * @options.cv, STDOUT, Experiment::Config::get(:growl_notifications, true) ws = WorkServer.new @arguments, @options, local_ip Notify::done return true else - Notify::init @arguments.length * @options.cv, STDOUT, Experiment::Config::get(:growl_notifications, true) + Notify::init @arguments.length * @options.cv, @options.quiet ? false : STDERR, Experiment::Config::get(:growl_notifications, !@options.quiet) @arguments.each do |exp| require "./experiments/#{exp}/#{exp}" cla = eval(as_class_name(exp)) experiment = cla.new :normal, exp, @options experiment.normal_run! @options.cv @@ -150,29 +152,28 @@ # Creates an IRB console useful for debugging experiments # Loads up the environment for the condition passed def console cla = as_class_name(@arguments.first) if @arguments.length == 1 File.open("./tmp/irb-setup.rb", 'w') do |f| + f.puts "# Initializes the environment for IRb." f.puts "Experiment::Config::init #{@options.env.inspect}" - f.puts "def reload!" - f.puts " " - f.puts "end" + f.puts "$: << '#{File.expand_path(".")}/'" if @arguments.length == 1 + f.puts "require 'experiments/#{@arguments.first}/#{@arguments.first}'" f.puts "def experiment" f.puts " @experiment ||= #{cla}.new :normal, #{@arguments.first.inspect}, OpenStruct.new(#{@options.marshal_dump})" f.puts "end" f.puts "experiment #load up the configs" else - f.puts 'Dir["./app/*.rb"].each{|e| require e }' + f.puts 'Dir["./app/**/*.{rb,o,so,dll,bundle}"].each{|e| require e.gsub(/\.(rb|so|o|dll|bundle)$/, "") }' f.puts "Experiment::Config::load '', #{options.opts.inspect}" end end irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb' libs = " -r irb/completion" libs << " -r #{File.dirname(__FILE__) + "/base"}" libs << " -r./experiments/experiment" - libs << " -r ./experiments/#{@arguments.first}/#{@arguments.first}" if @arguments.length == 1 libs << " -r ./tmp/irb-setup.rb" puts "Loading #{@options.env} environment..." exec "#{irb} #{libs} --simple-prompt" end