sushi_fabric 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/sushi_fabric +70 -0
- data/lib/sushi_fabric.rb +1 -0
- data/lib/sushi_fabric/optparse_ex.rb +52 -0
- data/lib/sushi_fabric/version.rb +1 -1
- metadata +11 -18
data/bin/sushi_fabric
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
# Version = '20140315-210244'
|
4
|
+
|
5
|
+
require 'sushi_fabric'
|
6
|
+
|
7
|
+
opt = OptionParser.new do |o|
|
8
|
+
o.banner = <<-EOT
|
9
|
+
Usage:
|
10
|
+
#{File.basename(__FILE__)} --class [SushiApp class] [options]
|
11
|
+
\t(Either --dataset_id or --dataset_tsv is \e[31mrequired\e[0m)
|
12
|
+
EOT
|
13
|
+
o.on(:class_name, '-c class_name', '--class', "SushiApp class name (\e[31mrequired\e[0m)")
|
14
|
+
o.on(:dataset_id, '-i dataset_id', '--dataset_id', Integer, 'DataSet ID in Sushi DB')
|
15
|
+
o.on(:dataset_tsv, '-d dataset_tsv', '--dataset', String, 'DataSet file (.tsv) (This option is prior to dataset_id option)')
|
16
|
+
o.on(:parameterset_tsv, '-m parameterset_tsv', '--parameterset', String, 'Parameterset file (.tsv)')
|
17
|
+
o.on(:run_mode, '-r', '--run', 'Real run mode. without this option, it runs with test run mode which checks only DataSet and Parameters and no submittion')
|
18
|
+
o.on(:project, '1001', '-p', '--project', String, 'Project Number (default: 1001)')
|
19
|
+
o.on(:user, 'sushi_lover', '-u', '--user', String, 'Submit user (default: sushi_lover)')
|
20
|
+
o.on(:load_path, '-I load_path', '--load_path', 'Add path where SushiApp class is located (default: ./lib)')
|
21
|
+
o.parse!(ARGV)
|
22
|
+
end
|
23
|
+
opt.project = 'p' + opt.project
|
24
|
+
if File.exist?('lib')
|
25
|
+
$: << 'lib'
|
26
|
+
end
|
27
|
+
if opt.load_path
|
28
|
+
opt.load_path.split(':').each do |path|
|
29
|
+
$: << path
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
unless opt.class_name
|
34
|
+
puts
|
35
|
+
warn "\e[31mERROR\e[0m: --class is required"
|
36
|
+
puts
|
37
|
+
warn opt.help
|
38
|
+
exit
|
39
|
+
end
|
40
|
+
unless opt.dataset_id or opt.dataset_tsv
|
41
|
+
puts
|
42
|
+
warn "\e[31mERROR\e[0m: Either --dataset_id or --dataset_tsv is required"
|
43
|
+
puts
|
44
|
+
print opt.help
|
45
|
+
exit
|
46
|
+
end
|
47
|
+
|
48
|
+
begin
|
49
|
+
require opt.class_name
|
50
|
+
klass = eval(opt.class_name)
|
51
|
+
usecase = klass.new
|
52
|
+
rescue #NameError, LoadError # uninitialized constant
|
53
|
+
warn ""
|
54
|
+
warn "\e[31mERROR\e[0m: The class #{opt.class_name} cannot be loaded. Add path with -I option."
|
55
|
+
warn ""
|
56
|
+
warn "Current library load path(s):"
|
57
|
+
puts $:.map{|dir| "\t"+dir}
|
58
|
+
end
|
59
|
+
|
60
|
+
usecase.project = opt.project
|
61
|
+
usecase.user = opt.user
|
62
|
+
usecase.dataset_sushi_id = opt.dataset_id
|
63
|
+
usecase.dataset_tsv_file = opt.dataset_tsv
|
64
|
+
usecase.parameterset_tsv_file = opt.parameterset_tsv
|
65
|
+
if opt.run_mode
|
66
|
+
usecase.run
|
67
|
+
else
|
68
|
+
usecase.test_run
|
69
|
+
end
|
70
|
+
|
data/lib/sushi_fabric.rb
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'optparse'
|
5
|
+
# Version = '20130517-120455'
|
6
|
+
|
7
|
+
class OptionParser
|
8
|
+
attr_reader :p
|
9
|
+
alias :_on :on
|
10
|
+
def on(attr, *args, &block)
|
11
|
+
if attr.is_a?(Symbol)
|
12
|
+
self.class.class_eval do
|
13
|
+
unless method_defined?(attr)
|
14
|
+
attr_accessor attr
|
15
|
+
else
|
16
|
+
raise "Method #{attr.to_s} is already defined in OptionParser class"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
unless args[0] =~ /\-/
|
20
|
+
default = args.shift
|
21
|
+
self.send(attr.to_s+"=", default)
|
22
|
+
end
|
23
|
+
_on(*args) do |i|
|
24
|
+
self.send(attr.to_s+"=", i)
|
25
|
+
block.call(i) if block
|
26
|
+
end
|
27
|
+
else
|
28
|
+
args.unshift attr
|
29
|
+
_on(*args, block)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
if __FILE__ == $0
|
35
|
+
opt = OptionParser.new do |o|
|
36
|
+
o.banner = "Last update: #{o.version}\nUsage: ruby #{__FILE__} [options]"
|
37
|
+
o.on(:size, 100, '-N N', '--pop_size', Integer, 'population size (default: 100)'){|i| p i}
|
38
|
+
o.on(:seed, '-R R', '--rseed', 'random seed')
|
39
|
+
o.on(:flag, '-f', 'flag')
|
40
|
+
o.on('-M M', '--hoge', Integer, 'hoge'){|i| p i}
|
41
|
+
o.parse!(ARGV)
|
42
|
+
end
|
43
|
+
|
44
|
+
print "opt.flag = "
|
45
|
+
p opt.flag
|
46
|
+
print "opt.size = "
|
47
|
+
p opt.size
|
48
|
+
print "opt.seed = "
|
49
|
+
p opt.seed
|
50
|
+
puts
|
51
|
+
puts opt.help
|
52
|
+
end
|
data/lib/sushi_fabric/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sushi_fabric
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-03-
|
12
|
+
date: 2014-03-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &2156848140 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.3'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.3'
|
24
|
+
version_requirements: *2156848140
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: rake
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &2156847520 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ! '>='
|
@@ -37,17 +32,13 @@ dependencies:
|
|
37
32
|
version: '0'
|
38
33
|
type: :development
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
35
|
+
version_requirements: *2156847520
|
46
36
|
description: This library provides us with the methods to submit a job cooperating
|
47
37
|
with workflow manager.
|
48
38
|
email:
|
49
39
|
- masaomi.hatakeyama@fgcz.uzh.ch
|
50
|
-
executables:
|
40
|
+
executables:
|
41
|
+
- sushi_fabric
|
51
42
|
extensions: []
|
52
43
|
extra_rdoc_files: []
|
53
44
|
files:
|
@@ -56,7 +47,9 @@ files:
|
|
56
47
|
- LICENSE.txt
|
57
48
|
- README.md
|
58
49
|
- Rakefile
|
50
|
+
- bin/sushi_fabric
|
59
51
|
- config/environments/development.rb
|
52
|
+
- lib/sushi_fabric/optparse_ex.rb
|
60
53
|
- lib/sushi_fabric/sushiApp.rb
|
61
54
|
- lib/sushi_fabric/version.rb
|
62
55
|
- lib/sushi_fabric.rb
|
@@ -85,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
78
|
version: '0'
|
86
79
|
requirements: []
|
87
80
|
rubyforge_project:
|
88
|
-
rubygems_version: 1.8.
|
81
|
+
rubygems_version: 1.8.5
|
89
82
|
signing_key:
|
90
83
|
specification_version: 3
|
91
84
|
summary: workflow manager client.
|