experiment 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,7 +8,7 @@ require "rdoc/rdoc"
8
8
  require File.dirname(__FILE__) + "/../lib/experiment/runner"
9
9
 
10
10
  class App
11
- VERSION = '0.2.0'
11
+ VERSION = '0.3.1'
12
12
 
13
13
  attr_reader :options
14
14
 
@@ -55,7 +55,7 @@ class App
55
55
  @opts = OptionParser.new
56
56
  @opts.on('-v', '--version') { output_version ; exit 0 }
57
57
  @opts.on('-h', '--help') { output_help }
58
- @opts.on('-V', '--verbose') { @options.verbose = true }
58
+ @opts.on('-V', '--verbose') { @options.verbose = true; @options.summary = true }
59
59
  @opts.on('-q', '--quiet') { @options.quiet = true }
60
60
  @opts.on('-e', '--env [ENV]', [:development, :compute], "Sets the environment to run in.") { |v| @options.env = v }
61
61
 
@@ -65,7 +65,7 @@ class App
65
65
  @opts.on('-m', '--description M', String, "Description or hypothesis for the condition being generated.") { |v| @options.description = v }
66
66
  end
67
67
 
68
- if ARGV.first == 'run' || ARGV.first == "-h"
68
+ if ARGV.first == 'run' || ARGV.first == "-h" || ARGV.first == 'console'
69
69
  @opts.separator ""
70
70
  @opts.separator "Options for `run`:"
71
71
  @opts.on('-c', '--cv CV', Integer, "The number of cross validations to run.") { |v| @options.cv = v }
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module Experiment
5
- VERSION = '0.3.0'
5
+ VERSION = '0.3.1'
6
6
  end
@@ -62,6 +62,7 @@ module Experiment
62
62
  exp = YAML::load_file(expath)
63
63
  @config.merge! exp["experiment"][env.to_s] if exp["experiment"][env.to_s].is_a? Hash
64
64
  end
65
+ @config.merge! @override_options if @override_options
65
66
  @config.merge! parse(options)
66
67
  end
67
68
 
@@ -176,11 +177,8 @@ module Experiment
176
177
  num += 1
177
178
  cl = value.class == Fixnum ? Integer : value.class;
178
179
  o.on("--#{key} VALUE", cl, "Default value #{value.inspect}") do |v|
179
- if options.opts == ""
180
- options.opts = "#{key}: #{v}"
181
- else
182
- options.opts += ", #{key}: #{v}"
183
- end
180
+ @override_options ||= {}
181
+ @override_options[key] = v
184
182
  end
185
183
  end
186
184
  end
@@ -24,7 +24,7 @@ module Experiment
24
24
  @previous_time = @start_time
25
25
  @growl = growl
26
26
  @mode = mode
27
- show if @mode == :normal
27
+ show if @mode == :normal && @out
28
28
  end
29
29
 
30
30
  # Called when starting work on a particular experiment
@@ -95,6 +95,7 @@ module Experiment
95
95
  end
96
96
 
97
97
  def show_if_needed
98
+ return unless @out
98
99
  if @total.zero?
99
100
  cur_percentage = 100
100
101
  prev_percentage = 0
@@ -113,22 +114,22 @@ module Experiment
113
114
 
114
115
 
115
116
  def show
116
- percent = @current * 100 / @total
117
- bar_width = percent * @terminal_width / 100
118
- line = sprintf "%3d%% |%s%s| %s", percent, "=" * bar_width, "-" * (@terminal_width - bar_width), stat
117
+ percent = @current * 100.0 / @total
118
+ bar_width = percent * @terminal_width / 100.0
119
+ line = sprintf "%3d%% |%s%s| %s", percent, "=" * bar_width.floor, "-" * (@terminal_width - bar_width.ceil), stat
119
120
 
120
121
 
121
- width = get_width
122
- if line.length == width - 1
122
+ #width = get_width
123
+ #if line.length == width - 1
123
124
  @out.print(line + (@finished_p ? "\n" : "\r"))
124
125
  @out.flush
125
- elsif line.length >= width
126
- @terminal_width = [@terminal_width - (line.length - width + 1), 0].max
127
- if @terminal_width == 0 then @out.print(line + eol) else show end
128
- else # line.length < width - 1
129
- @terminal_width += width - line.length + 1
130
- show
131
- end
126
+ #elsif line.length >= width
127
+ # @terminal_width = [@terminal_width - (line.length - width + 1), 0].max
128
+ # if @terminal_width == 0 then @out.print(line + (@finished_p ? "\n" : "\r")) else show end
129
+ #else # line.length < width - 1
130
+ # @terminal_width += width - line.length + 1
131
+ # show
132
+ #end
132
133
  @previous_time = Time.now
133
134
  end
134
135
 
@@ -33,9 +33,10 @@ module Experiment
33
33
  req_file.puts "# The first contious block of comment will be included in your report."
34
34
  req_file.puts "# This includes the reference implementation."
35
35
  req_file.puts "# Override any desired files in this directory."
36
- Dir["./app/**/*.rb"].each do |f|
37
- p = f.split("/") - File.expand_path(".").split("/")
38
- req_file.puts "require File.dirname(__FILE__) + \"/../../#{p.join("/")}\""
36
+ Dir["./app/**/*.{rb,o,dll,so,bundle}"].each do |f|
37
+ next if File.basename(f) == 'extconfig.rb'
38
+ p = File.expand_path(f).split("/") - File.expand_path(".").split("/")
39
+ req_file.puts "require \"#{p.join("/").gsub(/\.(rb|o|dll|so|bundle)$/, "")}\""
39
40
  end
40
41
  req_file.puts "\nclass #{as_class_name @arguments.first} < MyExperiment\n\t\nend"
41
42
  end
@@ -125,6 +126,7 @@ module Experiment
125
126
  require File.dirname(__FILE__) + "/base"
126
127
 
127
128
  require "./experiments/experiment"
129
+ $: << "./"
128
130
  Experiment::Config::init @options.env
129
131
  @options.cv = Experiment::Config.get :cross_validations, 5 if @options.cv.nil?
130
132
  if @options.distributed
@@ -136,7 +138,7 @@ module Experiment
136
138
  Notify::done
137
139
  return true
138
140
  else
139
- Notify::init @arguments.length * @options.cv, STDOUT, Experiment::Config::get(:growl_notifications, true)
141
+ Notify::init @arguments.length * @options.cv, @options.quiet ? false : STDERR, Experiment::Config::get(:growl_notifications, !@options.quiet)
140
142
  @arguments.each do |exp|
141
143
  require "./experiments/#{exp}/#{exp}"
142
144
  cla = eval(as_class_name(exp))
@@ -152,17 +154,17 @@ module Experiment
152
154
  def console
153
155
  cla = as_class_name(@arguments.first) if @arguments.length == 1
154
156
  File.open("./tmp/irb-setup.rb", 'w') do |f|
157
+ f.puts "# Initializes the environment for IRb."
155
158
  f.puts "Experiment::Config::init #{@options.env.inspect}"
156
- f.puts "def reload!"
157
- f.puts " "
158
- f.puts "end"
159
+ f.puts "$: << '#{File.expand_path(".")}/'"
159
160
  if @arguments.length == 1
161
+ f.puts "require 'experiments/#{@arguments.first}/#{@arguments.first}'"
160
162
  f.puts "def experiment"
161
163
  f.puts " @experiment ||= #{cla}.new :normal, #{@arguments.first.inspect}, OpenStruct.new(#{@options.marshal_dump})"
162
164
  f.puts "end"
163
165
  f.puts "experiment #load up the configs"
164
166
  else
165
- f.puts 'Dir["./app/*.rb"].each{|e| require e }'
167
+ f.puts 'Dir["./app/**/*.{rb,o,so,dll,bundle}"].each{|e| require e.gsub(/\.(rb|so|o|dll|bundle)$/, "") }'
166
168
  f.puts "Experiment::Config::load '', #{options.opts.inspect}"
167
169
  end
168
170
 
@@ -171,7 +173,6 @@ module Experiment
171
173
  libs = " -r irb/completion"
172
174
  libs << " -r #{File.dirname(__FILE__) + "/base"}"
173
175
  libs << " -r./experiments/experiment"
174
- libs << " -r ./experiments/#{@arguments.first}/#{@arguments.first}" if @arguments.length == 1
175
176
  libs << " -r ./tmp/irb-setup.rb"
176
177
  puts "Loading #{@options.env} environment..."
177
178
  exec "#{irb} #{libs} --simple-prompt"
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 0
9
- version: 0.3.0
8
+ - 1
9
+ version: 0.3.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jakub Hampl
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-06 00:00:00 +00:00
17
+ date: 2010-12-11 00:00:00 +00:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency