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 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
@@ -1,3 +1,4 @@
1
1
  require "sushi_fabric/version"
2
2
 
3
3
  require 'sushi_fabric/sushiApp'
4
+ require 'sushi_fabric/optparse_ex'
@@ -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
@@ -1,3 +1,3 @@
1
1
  module SushiFabric
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
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.6
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-14 00:00:00.000000000 Z
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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.24
81
+ rubygems_version: 1.8.5
89
82
  signing_key:
90
83
  specification_version: 3
91
84
  summary: workflow manager client.