nera 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/nera_addsim +16 -6
- data/lib/nera/nera_cui.rb +14 -12
- data/lib/nera.rb +1 -1
- data/lib/nera_addsim/make_simulator.rb +33 -13
- metadata +2 -2
data/bin/nera_addsim
CHANGED
@@ -18,13 +18,23 @@ parser = OptionParser.new do |opts|
|
|
18
18
|
opts.parse!(ARGV)
|
19
19
|
end
|
20
20
|
|
21
|
-
unless ARGV.size
|
22
|
-
raise "\n\nUsage:\n nera_addsim 'nera_db_folder'"
|
21
|
+
unless ARGV.size < 2
|
22
|
+
raise "\n\nUsage:\n nera_addsim 'nera_db_folder' or nera_addsim"
|
23
23
|
end
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
|
25
|
+
folder_path = ""
|
26
|
+
if ARGV.size == 0
|
27
|
+
unless FileTest.exists?("Jobs") and FileTest.exists?("Tables") and FileTest.exists?("simulators.yml")
|
28
|
+
raise "\n\nCurrent directory is not a valid database.\nThis command performs in your database directory.\n\n"
|
29
|
+
end
|
30
|
+
folder_path = '.'
|
31
|
+
else
|
32
|
+
folder_path = ARGV[0]
|
33
|
+
end
|
34
|
+
|
35
|
+
unless FileTest.directory?( folder_path + '/Simulator_classes/')
|
36
|
+
raise "Folder #{folder_path}/Simulator_classes does not exist."
|
27
37
|
end
|
28
38
|
|
29
39
|
require File.expand_path(File.dirname(__FILE__) + "/../lib/nera_addsim/make_simulator")
|
30
|
-
NERA::CUI_Simulator_Adder.new(
|
40
|
+
NERA::CUI_Simulator_Adder.new(folder_path)
|
data/lib/nera/nera_cui.rb
CHANGED
@@ -95,6 +95,13 @@ HEADER
|
|
95
95
|
|
96
96
|
# --- selection of a parameter set
|
97
97
|
def param_layer_action
|
98
|
+
|
99
|
+
plc = NERA::ParameterLayerController.new( @path_db_folder, @simulator_class)
|
100
|
+
unless plc
|
101
|
+
Dialog::message("Specified simulator does not exist #{@path_db_folder}/#{@simulator_class.to_s}")
|
102
|
+
return :simulator_layer
|
103
|
+
end
|
104
|
+
|
98
105
|
$stdout.puts <<"HEADER"
|
99
106
|
===============================================
|
100
107
|
--- in parameter layer ------------------------
|
@@ -102,12 +109,6 @@ HEADER
|
|
102
109
|
===============================================
|
103
110
|
HEADER
|
104
111
|
|
105
|
-
plc = NERA::ParameterLayerController.new( @path_db_folder, @simulator_class)
|
106
|
-
unless plc
|
107
|
-
Dialog::message("Specified simulator does not exist #{@path_db_folder}/#{@simulator_class.to_s}")
|
108
|
-
return :simulator_layer
|
109
|
-
end
|
110
|
-
|
111
112
|
header,list = plc.parameters_list_in_csv
|
112
113
|
list.unshift( "Menu")
|
113
114
|
selected = 0
|
@@ -208,6 +209,13 @@ HEADER
|
|
208
209
|
|
209
210
|
# --- action at run layer
|
210
211
|
def run_layer_action
|
212
|
+
|
213
|
+
rlc = NERA::RunLayerController.new( @path_db_folder, @simulator_class, @parameter_id)
|
214
|
+
unless rlc
|
215
|
+
Dialog::message("Table #{@path_db_folder}/#{@simulator_class.to_s}/#{@parameter_id} is not found.")
|
216
|
+
return :parameter_layer
|
217
|
+
end
|
218
|
+
|
211
219
|
$stdout.puts <<"HEADER"
|
212
220
|
===============================================
|
213
221
|
--- in run layer ------------------------------
|
@@ -223,12 +231,6 @@ HEADER
|
|
223
231
|
"Cancel jobs",
|
224
232
|
"Analyze data",
|
225
233
|
"Exit"]
|
226
|
-
rlc = NERA::RunLayerController.new( @path_db_folder, @simulator_class, @parameter_id)
|
227
|
-
unless rlc
|
228
|
-
Dialog::message("Table #{@path_db_folder}/#{@simulator_class.to_s}/#{@parameter_id} is not found.")
|
229
|
-
return :parameter_layer
|
230
|
-
end
|
231
|
-
|
232
234
|
selected = 0
|
233
235
|
Dir.chdir( rlc.path_to_run_layer) {
|
234
236
|
selected = Dialog::select_one_or_return_string( action_list, "Select one")
|
data/lib/nera.rb
CHANGED
@@ -7,6 +7,7 @@ module NERA
|
|
7
7
|
def script_body(sim_info)
|
8
8
|
params=[]
|
9
9
|
sim_info[:params].each do | param |
|
10
|
+
next if param[0] == "seed"
|
10
11
|
params << " [#{param[0]},#{param[1]},#{param[2]}]"
|
11
12
|
end
|
12
13
|
params_str = params.join(",\n\t\t")
|
@@ -32,13 +33,16 @@ BODY
|
|
32
33
|
while true
|
33
34
|
$stdout.puts
|
34
35
|
$stdout.puts "+++Input parameter name+++"
|
36
|
+
$stdout.puts " If you need a seed of random number, please just input \"seed\""
|
35
37
|
name = Readline.readline(">").chomp.strip
|
36
38
|
break if name =~ /^[a-z]/ or name =~ /^[A-Z]/
|
37
39
|
$stdout.puts "Input is not valid"
|
38
40
|
$stdout.puts
|
39
41
|
$stdout.puts "Input the simulator name again."
|
40
42
|
end
|
41
|
-
|
43
|
+
return ["seed",nil,nil] if name == "seed"
|
44
|
+
#array << ":#{name}"
|
45
|
+
array << name.to_sym.inspect
|
42
46
|
$stdout.puts
|
43
47
|
num = Dialog.select_one(type, "++Select parameter type+++")
|
44
48
|
array << type[num]
|
@@ -53,6 +57,8 @@ BODY
|
|
53
57
|
end
|
54
58
|
if type[num] == Integer or type[num] == Float
|
55
59
|
if /[-+]?(?:[0-9]+(\.[0-9]*)?|(\.[0-9]+))([eE][-+]?[0-9]+)?/ =~ default
|
60
|
+
default = "#{default.to_i}" if type[num] == Integer
|
61
|
+
default = "#{default.to_f}" if type[num] == Float
|
56
62
|
break
|
57
63
|
end
|
58
64
|
else
|
@@ -84,11 +90,16 @@ BODY
|
|
84
90
|
|
85
91
|
case num
|
86
92
|
when 0
|
93
|
+
if param[0] == "seed"
|
94
|
+
return ["seed",nil,nil]
|
95
|
+
end
|
87
96
|
if param[1] == Integer or param[1] == Float
|
88
97
|
unless /[-+]?(?:[0-9]+(\.[0-9]*)?|(\.[0-9]+))([eE][-+]?[0-9]+)?/ =~ param[2]
|
89
98
|
$stdout.puts "! Default value must be #{param[1]}"
|
90
99
|
next
|
91
100
|
end
|
101
|
+
param[2] = "#{param[2].to_i}" if param[1] == Integer
|
102
|
+
param[2] = "#{param[2].to_f}" if param[1] == Float
|
92
103
|
end
|
93
104
|
return param
|
94
105
|
when 1
|
@@ -96,12 +107,14 @@ BODY
|
|
96
107
|
while true
|
97
108
|
$stdout.puts
|
98
109
|
$stdout.puts "+++Input parameter name+++"
|
110
|
+
$stdout.puts " If you need a seed of random number, please just input \"seed\""
|
99
111
|
name = Readline.readline(">").chomp.strip
|
100
112
|
break if name =~ /^[a-z]/ or name =~ /^[A-Z]/
|
101
113
|
$stdout.puts "Input is not valid"
|
102
114
|
$stdout.puts
|
103
115
|
$stdout.puts "Input the simulator name again."
|
104
116
|
end
|
117
|
+
return ["seed",nil,nil] if name == "seed"
|
105
118
|
param[0] = ":#{name}"
|
106
119
|
when 2
|
107
120
|
$stdout.puts
|
@@ -115,7 +128,8 @@ BODY
|
|
115
128
|
# p param[1]
|
116
129
|
if param[1] == Integer or param[1] == Float
|
117
130
|
if /[-+]?(?:[0-9]+(\.[0-9]*)?|(\.[0-9]+))([eE][-+]?[0-9]+)?/ =~ default
|
118
|
-
param[2] = default
|
131
|
+
param[2] = "#{default.to_i}" if param[1] == Integer
|
132
|
+
param[2] = "#{default.to_f}" if param[1] == Float
|
119
133
|
break
|
120
134
|
end
|
121
135
|
else
|
@@ -173,7 +187,7 @@ BODY
|
|
173
187
|
return nil
|
174
188
|
end
|
175
189
|
|
176
|
-
$stdout.print "
|
190
|
+
$stdout.print "Will you create a new simulator \"#{name}\" ?(y/n): "
|
177
191
|
if Readline.readline("").chomp.strip == "y"
|
178
192
|
sim_info[:name]=name
|
179
193
|
break
|
@@ -194,17 +208,17 @@ BODY
|
|
194
208
|
path_file = Readline.readline("> ~/").chomp.strip
|
195
209
|
unless File.file?(home+path_file)
|
196
210
|
$stdout.puts "File \"~/#{path_file}\" is not found."
|
197
|
-
$stdout.print "
|
211
|
+
$stdout.print "Will you abort this registration\" ?(y/n): "
|
198
212
|
return nil if Readline.readline("").chomp.strip == "y"
|
199
213
|
else
|
200
214
|
if (File.stat(home+path_file).mode & 2**6 ) != 2**6
|
201
215
|
$stdout.puts "File ~/#{path_file} is not executable."
|
202
|
-
$stdout.print "
|
216
|
+
$stdout.print "Will you abort this registration\" ?(y/n): "
|
203
217
|
return nil if Readline.readline("").chomp.strip == "y"
|
204
218
|
end
|
205
219
|
end
|
206
220
|
|
207
|
-
$stdout.print "
|
221
|
+
$stdout.print "Will you use \"~/#{path_file}\" ?(y/n): "
|
208
222
|
if Readline.readline("").chomp.strip == "y"
|
209
223
|
sim_info[:path]="~/"+path_file
|
210
224
|
break
|
@@ -229,25 +243,33 @@ BODY
|
|
229
243
|
$stdout.puts "Execute command :"
|
230
244
|
params_str = ""
|
231
245
|
params.each do | name, type, default |
|
232
|
-
|
246
|
+
if name == "seed"
|
247
|
+
params_str += " (seed)"
|
248
|
+
else
|
249
|
+
params_str += " (#{name.sub(':','')})"
|
250
|
+
end
|
251
|
+
|
233
252
|
end
|
234
|
-
exec = "#{path}#{params_str}
|
253
|
+
exec = "#{path}#{params_str}"
|
235
254
|
$stdout.puts " $ #{exec}"
|
236
255
|
$stdout.puts "------------------------------"
|
237
256
|
menu =["add"]
|
238
257
|
params.each do | name, type, default |
|
239
|
-
|
258
|
+
if name == "seed"
|
259
|
+
menu += ["seed"]
|
260
|
+
else
|
261
|
+
menu += ["#{name.sub(':','')} : #{type} (default #{default})"]
|
262
|
+
end
|
240
263
|
end
|
241
264
|
menu += ["exit"]
|
242
265
|
num = Dialog.select_one(menu)
|
243
|
-
# p menu[num]
|
244
266
|
case menu[num]
|
245
267
|
when "add"
|
246
268
|
params << add_param()
|
247
269
|
next
|
248
270
|
when "exit"
|
249
271
|
if params.length==0
|
250
|
-
$stdout.print "Any parameters don't exist.
|
272
|
+
$stdout.print "Any parameters don't exist. Will you continue this registration?(y/n): "
|
251
273
|
next if Readline.readline("").chomp.strip != "y"
|
252
274
|
end
|
253
275
|
break
|
@@ -280,9 +302,7 @@ BODY
|
|
280
302
|
$stdout.puts " No parameter"
|
281
303
|
else
|
282
304
|
index = 1
|
283
|
-
cmd = []
|
284
305
|
sim_info[:params].each do |name, type, default|
|
285
|
-
cmd << name.sub(':','')
|
286
306
|
$stdout.puts " #{index}-> #{name.sub(':','')} : #{type} (default #{default}) "
|
287
307
|
index += 1
|
288
308
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yohsuke Murase
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-03-
|
12
|
+
date: 2009-03-30 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|