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 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"] # should be use files only to output.
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
- LOG = "#{CALC_DIR}/log"
7
- #OUTFILES = ["output_a"]
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(LOG) if File.exist?(LOG)
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(LOG, "w")
55
+ File.open(LOCKFILE, "w")
64
56
  @calc.started?.should be_true
65
57
  end
66
58
 
67
59
  after do
68
- FileUtils.rm(LOG) if File.exist?(LOG)
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(LOG, "w")
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(LOG) if File.exist?(LOG)
87
+ FileUtils.rm(LOCKFILE) if File.exist?(LOCKFILE)
100
88
  end
101
89
  end
102
90
 
103
- #describe Comana, "with output" do
104
- # class CalcStarted < Comana
105
- # def normal_ended? ; false ; end
106
- # def finished? ; false ; end
107
- # def send_command ; ; end
108
- # def prepare_next ; ; end
109
- # def initial_state ; ; end
110
- # def latest_state ; ; end
111
- # def teardown ; ; end
112
- # def set_parameters
113
- # @logfile = "log"
114
- # @alive_time = 5000
115
- # end
116
- # end
117
- #
118
- # before do
119
- # @calc = CalcStarted .new(CALC_DIR)
120
- # File.utime(NOW - 1000 ,NOW - 1000, "#{CALC_DIR}/input_a")
121
- # File.utime(NOW - 2000 ,NOW - 2000, "#{CALC_DIR}/input_b")
122
- # #File.open(OUTPUT, "w")
123
- # end
124
- #
125
- # it "should return :started"
126
- #
127
- # after do
128
- # FileUtils.rm(LOG) if File.exist?(LOG)
129
- # end
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(LOG, "w")
135
+ File.open(LOCKFILE, "w")
153
136
  end
154
137
 
155
138
  it "should return the state" do
156
- File.open(LOG, "w")
157
- File.utime(NOW - 1000 ,NOW - 1000, LOG)
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(LOG) if File.exist?(LOG)
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(LOG, "w")
165
+ File.open(LOCKFILE, "w")
187
166
  end
188
167
 
189
168
  it "should return the state" do
190
169
 
191
- File.open(LOG, "w")
192
- File.utime(NOW - 1000 ,NOW - 1000, LOG)
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(LOG) if File.exist?(LOG)
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(LOG) if File.exist?(LOG)
208
- File.open(LOG, "w")
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(LOG, "w")
214
- File.utime(NOW - 1000 ,NOW - 1000, LOG)
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(LOG) if File.exist?(LOG)
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.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-03 00:00:00.000000000 Z
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: 940464947
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.21
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