comana 0.0.0 → 0.0.1
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/comana.gemspec +62 -0
- data/lib/comana.rb +8 -2
- data/spec/comana_spec.rb +52 -73
- metadata +15 -41
- data/spec/dummy/input_a +0 -0
- data/spec/dummy/input_b +0 -0
data/comana.gemspec
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "comana"
|
8
|
+
s.version = "0.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["ippei94da"]
|
12
|
+
s.date = "2012-04-23"
|
13
|
+
s.description = "An aim of this gem is to provide a framework of\n managing scientific computing.\n Researchers on computing have to check calculation and\n generate new calculation and execute, repeatedly.\n The abstract class that this gem provide would help the work.\n "
|
14
|
+
s.email = "ippei94da@gmail.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".rspec",
|
22
|
+
"Gemfile",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"comana.gemspec",
|
28
|
+
"lib/comana.rb",
|
29
|
+
"spec/comana_spec.rb",
|
30
|
+
"spec/spec_helper.rb"
|
31
|
+
]
|
32
|
+
s.homepage = "http://github.com/ippei94da/comana"
|
33
|
+
s.licenses = ["MIT"]
|
34
|
+
s.require_paths = ["lib"]
|
35
|
+
s.rubygems_version = "1.8.11"
|
36
|
+
s.summary = "Manager for scientific computing"
|
37
|
+
|
38
|
+
if s.respond_to? :specification_version then
|
39
|
+
s.specification_version = 3
|
40
|
+
|
41
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.9.0"])
|
43
|
+
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
44
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.1.3"])
|
45
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
46
|
+
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
47
|
+
else
|
48
|
+
s.add_dependency(%q<rspec>, ["~> 2.9.0"])
|
49
|
+
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
50
|
+
s.add_dependency(%q<bundler>, ["~> 1.1.3"])
|
51
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
52
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
53
|
+
end
|
54
|
+
else
|
55
|
+
s.add_dependency(%q<rspec>, ["~> 2.9.0"])
|
56
|
+
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
57
|
+
s.add_dependency(%q<bundler>, ["~> 1.1.3"])
|
58
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
59
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
data/lib/comana.rb
CHANGED
@@ -11,6 +11,8 @@ class Comana
|
|
11
11
|
class NotImplementedError < Exception; end
|
12
12
|
class AlreadyStartedError < Exception; end
|
13
13
|
|
14
|
+
attr_reader :dir
|
15
|
+
|
14
16
|
#
|
15
17
|
def initialize(dir)
|
16
18
|
@dir = dir
|
@@ -67,7 +69,7 @@ class Comana
|
|
67
69
|
# e.g.,
|
68
70
|
#@logfile = "comana.log"
|
69
71
|
#@alive_time = 3600
|
70
|
-
#@outfiles = ["output_a", "ouput_b"] #
|
72
|
+
#@outfiles = ["output_a", "ouput_b"] # Files only to output should be indicated.
|
71
73
|
end
|
72
74
|
|
73
75
|
# Return latest modified time of files in calc dir recursively.
|
@@ -80,7 +82,11 @@ class Comana
|
|
80
82
|
end
|
81
83
|
|
82
84
|
def started?
|
83
|
-
File.exist?( "#{@dir}/#{@logfile}" )
|
85
|
+
return true if File.exist?( "#{@dir}/#{@logfile}" )
|
86
|
+
@outfiles.each do |file|
|
87
|
+
return true if File.exist?( "#{@dir}/#{file}" )
|
88
|
+
end
|
89
|
+
return false
|
84
90
|
end
|
85
91
|
|
86
92
|
# Return true if the condition is satisfied.
|
data/spec/comana_spec.rb
CHANGED
@@ -3,8 +3,8 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
3
3
|
|
4
4
|
NOW = Time.now
|
5
5
|
CALC_DIR = "spec/dummy"
|
6
|
-
|
7
|
-
|
6
|
+
LOCKFILE = "#{CALC_DIR}/log"
|
7
|
+
OUTFILES = ["#{CALC_DIR}/output_a", "#{CALC_DIR}/output_b"]
|
8
8
|
|
9
9
|
class Comana
|
10
10
|
public :latest_modified_time, :started?
|
@@ -13,14 +13,10 @@ end
|
|
13
13
|
class CalcFinished < Comana
|
14
14
|
def normal_ended? ; true ; end
|
15
15
|
def finished? ; true ; end
|
16
|
-
def send_command ; ; end
|
17
|
-
def prepare_next ; ; end
|
18
|
-
def initial_state ; ; end
|
19
|
-
def latest_state ; ; end
|
20
|
-
def teardown ; ; end
|
21
16
|
def set_parameters
|
22
17
|
@logfile = "log"
|
23
18
|
@alive_time = 500
|
19
|
+
@outfiles = []
|
24
20
|
end
|
25
21
|
end
|
26
22
|
|
@@ -28,14 +24,10 @@ describe Comana, "with not calculated" do
|
|
28
24
|
class CalcYet < Comana
|
29
25
|
def normal_ended? ; false ; end
|
30
26
|
def finished? ; false ; end
|
31
|
-
def send_command ; ; end
|
32
|
-
def prepare_next ; ; end
|
33
|
-
def initial_state ; ; end
|
34
|
-
def latest_state ; ; end
|
35
|
-
def teardown ; ; end
|
36
27
|
def set_parameters
|
37
28
|
@logfile = "log"
|
38
29
|
@alive_time = 3600
|
30
|
+
@outfiles = []
|
39
31
|
end
|
40
32
|
end
|
41
33
|
before do
|
@@ -43,7 +35,7 @@ describe Comana, "with not calculated" do
|
|
43
35
|
|
44
36
|
File.utime(NOW - 1000 ,NOW - 1000, "#{CALC_DIR}/input_a")
|
45
37
|
File.utime(NOW - 2000 ,NOW - 2000, "#{CALC_DIR}/input_b")
|
46
|
-
FileUtils.rm(
|
38
|
+
FileUtils.rm(LOCKFILE) if File.exist?(LOCKFILE)
|
47
39
|
end
|
48
40
|
|
49
41
|
it "should return the state" do
|
@@ -60,12 +52,12 @@ describe Comana, "with not calculated" do
|
|
60
52
|
end
|
61
53
|
|
62
54
|
it "should return true with log." do
|
63
|
-
File.open(
|
55
|
+
File.open(LOCKFILE, "w")
|
64
56
|
@calc.started?.should be_true
|
65
57
|
end
|
66
58
|
|
67
59
|
after do
|
68
|
-
FileUtils.rm(
|
60
|
+
FileUtils.rm(LOCKFILE) if File.exist?(LOCKFILE)
|
69
61
|
end
|
70
62
|
end
|
71
63
|
|
@@ -73,14 +65,10 @@ describe Comana, "with log" do
|
|
73
65
|
class CalcStarted < Comana
|
74
66
|
def normal_ended? ; false ; end
|
75
67
|
def finished? ; false ; end
|
76
|
-
def send_command ; ; end
|
77
|
-
def prepare_next ; ; end
|
78
|
-
def initial_state ; ; end
|
79
|
-
def latest_state ; ; end
|
80
|
-
def teardown ; ; end
|
81
68
|
def set_parameters
|
82
69
|
@logfile = "log"
|
83
70
|
@alive_time = 5000
|
71
|
+
@outfiles = []
|
84
72
|
end
|
85
73
|
end
|
86
74
|
|
@@ -88,7 +76,7 @@ describe Comana, "with log" do
|
|
88
76
|
@calc = CalcStarted .new(CALC_DIR)
|
89
77
|
File.utime(NOW - 1000 ,NOW - 1000, "#{CALC_DIR}/input_a")
|
90
78
|
File.utime(NOW - 2000 ,NOW - 2000, "#{CALC_DIR}/input_b")
|
91
|
-
File.open(
|
79
|
+
File.open(LOCKFILE, "w")
|
92
80
|
end
|
93
81
|
|
94
82
|
it "should return :started" do
|
@@ -96,51 +84,46 @@ describe Comana, "with log" do
|
|
96
84
|
end
|
97
85
|
|
98
86
|
after do
|
99
|
-
FileUtils.rm(
|
87
|
+
FileUtils.rm(LOCKFILE) if File.exist?(LOCKFILE)
|
100
88
|
end
|
101
89
|
end
|
102
90
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
#
|
118
|
-
#
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
#end
|
91
|
+
describe Comana, "with output, without lock" do
|
92
|
+
class CalcStarted < Comana
|
93
|
+
def normal_ended? ; false ; end
|
94
|
+
def finished? ; false ; end
|
95
|
+
def set_parameters
|
96
|
+
@logfile = "log"
|
97
|
+
@alive_time = 5000
|
98
|
+
@outfiles = []
|
99
|
+
@outfiles = ["output_a", "output_b"]
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
before do
|
104
|
+
@calc = CalcStarted .new(CALC_DIR)
|
105
|
+
File.utime(NOW - 1000 ,NOW - 1000, "#{CALC_DIR}/input_a")
|
106
|
+
File.utime(NOW - 2000 ,NOW - 2000, "#{CALC_DIR}/input_b")
|
107
|
+
File.open(OUTFILES[0], "w")
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should return :started" do
|
111
|
+
@calc.state.should == :started
|
112
|
+
end
|
113
|
+
|
114
|
+
after do
|
115
|
+
FileUtils.rm(OUTFILES[0]) if File.exist?(OUTFILES[0])
|
116
|
+
end
|
117
|
+
end
|
131
118
|
|
132
119
|
describe Comana, "with terminated" do
|
133
120
|
class CalcTerminated < Comana
|
134
121
|
def normal_ended? ; false ; end
|
135
122
|
def finished? ; false ; end
|
136
|
-
def send_command ; ; end
|
137
|
-
def prepare_next ; ; end
|
138
|
-
def initial_state ; ; end
|
139
|
-
def latest_state ; ; end
|
140
|
-
def teardown ; ; end
|
141
123
|
def set_parameters
|
142
124
|
@logfile = "log"
|
143
125
|
@alive_time = 500
|
126
|
+
@outfiles = []
|
144
127
|
end
|
145
128
|
end
|
146
129
|
|
@@ -149,17 +132,17 @@ describe Comana, "with terminated" do
|
|
149
132
|
|
150
133
|
File.utime(NOW - 1000 ,NOW - 1000, "#{CALC_DIR}/input_a")
|
151
134
|
File.utime(NOW - 2000 ,NOW - 2000, "#{CALC_DIR}/input_b")
|
152
|
-
File.open(
|
135
|
+
File.open(LOCKFILE, "w")
|
153
136
|
end
|
154
137
|
|
155
138
|
it "should return the state" do
|
156
|
-
File.open(
|
157
|
-
File.utime(NOW - 1000 ,NOW - 1000,
|
139
|
+
File.open(LOCKFILE, "w")
|
140
|
+
File.utime(NOW - 1000 ,NOW - 1000, LOCKFILE)
|
158
141
|
@calc_terminated .state.should == :terminated
|
159
142
|
end
|
160
143
|
|
161
144
|
after do
|
162
|
-
FileUtils.rm(
|
145
|
+
FileUtils.rm(LOCKFILE) if File.exist?(LOCKFILE)
|
163
146
|
end
|
164
147
|
end
|
165
148
|
|
@@ -167,14 +150,10 @@ describe Comana, "with next" do
|
|
167
150
|
class CalcNext < Comana
|
168
151
|
def normal_ended? ; true ; end
|
169
152
|
def finished? ; false ; end
|
170
|
-
def send_command ; ; end
|
171
|
-
def prepare_next ; ; end
|
172
|
-
def initial_state ; ; end
|
173
|
-
def latest_state ; ; end
|
174
|
-
def teardown ; ; end
|
175
153
|
def set_parameters
|
176
154
|
@logfile = "log"
|
177
155
|
@alive_time = 500
|
156
|
+
@outfiles = []
|
178
157
|
end
|
179
158
|
end
|
180
159
|
|
@@ -183,18 +162,18 @@ describe Comana, "with next" do
|
|
183
162
|
|
184
163
|
File.utime(NOW - 1000 ,NOW - 1000, "#{CALC_DIR}/input_a")
|
185
164
|
File.utime(NOW - 2000 ,NOW - 2000, "#{CALC_DIR}/input_b")
|
186
|
-
File.open(
|
165
|
+
File.open(LOCKFILE, "w")
|
187
166
|
end
|
188
167
|
|
189
168
|
it "should return the state" do
|
190
169
|
|
191
|
-
File.open(
|
192
|
-
File.utime(NOW - 1000 ,NOW - 1000,
|
170
|
+
File.open(LOCKFILE, "w")
|
171
|
+
File.utime(NOW - 1000 ,NOW - 1000, LOCKFILE)
|
193
172
|
@calc_next .state.should == :next
|
194
173
|
end
|
195
174
|
|
196
175
|
after do
|
197
|
-
FileUtils.rm(
|
176
|
+
FileUtils.rm(LOCKFILE) if File.exist?(LOCKFILE)
|
198
177
|
end
|
199
178
|
end
|
200
179
|
|
@@ -204,18 +183,18 @@ describe Comana, "with finished" do
|
|
204
183
|
|
205
184
|
File.utime(NOW - 1000 ,NOW - 1000, "#{CALC_DIR}/input_a")
|
206
185
|
File.utime(NOW - 2000 ,NOW - 2000, "#{CALC_DIR}/input_b")
|
207
|
-
#FileUtils.rm(
|
208
|
-
File.open(
|
186
|
+
#FileUtils.rm(LOCKFILE) if File.exist?(LOCKFILE)
|
187
|
+
File.open(LOCKFILE, "w")
|
209
188
|
end
|
210
189
|
|
211
190
|
it "should return the state" do
|
212
191
|
|
213
|
-
File.open(
|
214
|
-
File.utime(NOW - 1000 ,NOW - 1000,
|
192
|
+
File.open(LOCKFILE, "w")
|
193
|
+
File.utime(NOW - 1000 ,NOW - 1000, LOCKFILE)
|
215
194
|
@calc_finished .state.should == :finished
|
216
195
|
end
|
217
196
|
|
218
197
|
after do
|
219
|
-
FileUtils.rm(
|
198
|
+
FileUtils.rm(LOCKFILE) if File.exist?(LOCKFILE)
|
220
199
|
end
|
221
200
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: comana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
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: 2012-04-
|
12
|
+
date: 2012-04-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &82627330 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.9.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 2.9.0
|
24
|
+
version_requirements: *82627330
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: rdoc
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &82626650 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ~>
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: '3.12'
|
38
33
|
type: :development
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '3.12'
|
35
|
+
version_requirements: *82626650
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: bundler
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &82625910 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ~>
|
@@ -53,15 +43,10 @@ dependencies:
|
|
53
43
|
version: 1.1.3
|
54
44
|
type: :development
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.1.3
|
46
|
+
version_requirements: *82625910
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: jeweler
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &82624270 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
52
|
- - ~>
|
@@ -69,15 +54,10 @@ dependencies:
|
|
69
54
|
version: 1.8.3
|
70
55
|
type: :development
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 1.8.3
|
57
|
+
version_requirements: *82624270
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: simplecov
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &82623330 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
63
|
- - ! '>='
|
@@ -85,12 +65,7 @@ dependencies:
|
|
85
65
|
version: '0'
|
86
66
|
type: :development
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
68
|
+
version_requirements: *82623330
|
94
69
|
description: ! "An aim of this gem is to provide a framework of\n managing scientific
|
95
70
|
computing.\n Researchers on computing have to check calculation and\n generate
|
96
71
|
new calculation and execute, repeatedly.\n The abstract class that this gem provide
|
@@ -109,10 +84,9 @@ files:
|
|
109
84
|
- README.rdoc
|
110
85
|
- Rakefile
|
111
86
|
- VERSION
|
87
|
+
- comana.gemspec
|
112
88
|
- lib/comana.rb
|
113
89
|
- spec/comana_spec.rb
|
114
|
-
- spec/dummy/input_a
|
115
|
-
- spec/dummy/input_b
|
116
90
|
- spec/spec_helper.rb
|
117
91
|
homepage: http://github.com/ippei94da/comana
|
118
92
|
licenses:
|
@@ -129,7 +103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
103
|
version: '0'
|
130
104
|
segments:
|
131
105
|
- 0
|
132
|
-
hash:
|
106
|
+
hash: -857450093
|
133
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
108
|
none: false
|
135
109
|
requirements:
|
@@ -138,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
112
|
version: '0'
|
139
113
|
requirements: []
|
140
114
|
rubyforge_project:
|
141
|
-
rubygems_version: 1.8.
|
115
|
+
rubygems_version: 1.8.11
|
142
116
|
signing_key:
|
143
117
|
specification_version: 3
|
144
118
|
summary: Manager for scientific computing
|
data/spec/dummy/input_a
DELETED
File without changes
|
data/spec/dummy/input_b
DELETED
File without changes
|