coderunner 0.12.4 → 0.12.5
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/coderunner.gemspec +1 -1
- data/lib/coderunner.rb +1 -0
- data/lib/coderunner/class_methods.rb +22 -0
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.12.
|
1
|
+
0.12.5
|
data/coderunner.gemspec
CHANGED
data/lib/coderunner.rb
CHANGED
@@ -202,6 +202,7 @@ EOF
|
|
202
202
|
["continue_in_new_folder", "cnf", 1, 'Make a new folder in the parent directory and copy all coderunner configuration files to that folder. If options j or f are specified, copy all matching runs to that new folder.', ['folder'], [:j, :f, :U, :N]],
|
203
203
|
["code_runner_execute", "crex", 1, 'Run (within the CodeRunner class) the fragment of Ruby code given.', ['Ruby fragment'], []],
|
204
204
|
["delete", "del", 0, 'Permanently erase all filtered runs.', [], [:j, :F, :U, :N]],
|
205
|
+
["differences_between", "diff", 1, 'Print a table of all the differences between the input parameters of the given ids.', ['ids'], [:j, :F, :U, :N]],
|
205
206
|
["directory", "dir", 1, 'Print out the directory for the given run.', ['id'], []],
|
206
207
|
['dumb_film', "dfm", 0, 'Create a film of the specified graphkits using gnuplot "dumb" ASCII terminal.', [], [:F, :G, :g, :U, :N, :j, :f]],
|
207
208
|
["execute", "ex", 1, 'Run (at the top level) the fragment of Ruby code given.', ['Ruby fragment'], []],
|
@@ -76,6 +76,28 @@ class CodeRunner
|
|
76
76
|
runner = fetch_runner(copts)
|
77
77
|
runner.destroy
|
78
78
|
end
|
79
|
+
def self.differences_between(ids, copts = {})
|
80
|
+
runner = fetch_runner(copts)
|
81
|
+
runs = runner.filtered_ids.map{|id| runner.run_list[id]}
|
82
|
+
vars = runner.run_class.rcp.variables.dup + runner.run_class.rcp.run_info.dup
|
83
|
+
vars.delete_if{|var| runs.map{|r| r.send(var)}.uniq.size == 1}
|
84
|
+
vars.delete :id
|
85
|
+
vars.delete :run_name
|
86
|
+
vars.delete :output_file
|
87
|
+
vars.delete :error_file
|
88
|
+
vars.delete :executable
|
89
|
+
vars.delete :comment
|
90
|
+
vars.delete :naming_pars
|
91
|
+
vars.delete :parameter_hash
|
92
|
+
vars.unshift :id
|
93
|
+
#vars.push 'File.basename(executable)'
|
94
|
+
table = vars.map{|var| [var] + runs.map{|r| str = r.instance_eval(var.to_s).to_s; str.size>10?str[0..9]:str} }
|
95
|
+
#vars[-1] = 'exec'
|
96
|
+
col_widths = table.map{|row| row.map{|v| v.to_s.size}}.inject{|o,n| o.zip(n).map{|a| a.max}}
|
97
|
+
eputs
|
98
|
+
table.each{|row| i=0; eputs row.map{|v| str = sprintf(" %#{col_widths[i]}s ", v.to_s); i+=1; str}.join('|'); eputs '-' * (col_widths.sum + col_widths.size*3 - 1) }
|
99
|
+
#p table, col_widths
|
100
|
+
end
|
79
101
|
|
80
102
|
def self.dumb_film(copts = {})
|
81
103
|
# process_copts(copts)
|