torigoya_kit 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/torigoya_kit/ticket.rb +157 -2
- data/lib/torigoya_kit/version.rb +1 -1
- data/spec/cases/session_spec.rb +1 -1
- data/spec/cases/ticket_spec.rb +67 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0aa0f7efd0c88bda5d262a9f2c42ee3c3388f5b6
|
4
|
+
data.tar.gz: 2009f7b75e8a64d10dd2bda8cd5ff60194b29760
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccd1fb54a675325055769b58e82e6eec137de1046e659920b204cded3ea4b772cc19e0e531039749dc44e268d19558cd3279587cb19752ce2ba09e2363e20afc
|
7
|
+
data.tar.gz: 604ba0afdd976e90bf39c39dc550603cc9d37d6158bc3cb98921b22343b7db4733e5be3b4240b4f123cfe7c9dfcb603bfa3e5446b74ce0898617fdf42e5e3cf4
|
data/lib/torigoya_kit/ticket.rb
CHANGED
@@ -30,20 +30,71 @@ module TorigoyaKit
|
|
30
30
|
def to_msgpack(out = '')
|
31
31
|
return to_tuple.to_msgpack(out)
|
32
32
|
end
|
33
|
+
|
34
|
+
def ==(rhs)
|
35
|
+
return @name == rhs.name &&
|
36
|
+
@code == rhs.code &&
|
37
|
+
@is_compressed && rhs.is_compressed
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
def validate
|
42
|
+
raise InvalidFormatError.new("name must be String") unless @name.is_a?(String)
|
43
|
+
raise InvalidFormatError.new("code must be String") unless @code.is_a?(String)
|
44
|
+
raise InvalidFormatError.new("is_compressed must be Boolean") unless @is_compressed.is_a?(TrueClass) && @is_compressed.is_a?(FalseClass)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
#
|
49
|
+
class Command
|
50
|
+
def initialize(key_or_value, value=nil)
|
51
|
+
unless value.nil?
|
52
|
+
@key = key_or_value
|
53
|
+
@value = value
|
54
|
+
else
|
55
|
+
@value = key_or_value
|
56
|
+
end
|
57
|
+
|
58
|
+
validate
|
59
|
+
end
|
60
|
+
attr_reader :key, :value
|
61
|
+
|
62
|
+
def to_tuple
|
63
|
+
unless @key.nil?
|
64
|
+
return [@key, @value]
|
65
|
+
else
|
66
|
+
return [@value]
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def ==(rhs)
|
71
|
+
return @key == rhs.key && @value == rhs.value
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
def validate
|
76
|
+
unless @key.nil?
|
77
|
+
raise InvalidFormatError.new("key must be String") unless @key.is_a?(String)
|
78
|
+
end
|
79
|
+
raise InvalidFormatError.new("value must be String") unless @value.is_a?(String)
|
80
|
+
end
|
33
81
|
end
|
34
82
|
|
35
83
|
#
|
36
84
|
class ExecutionSetting
|
37
85
|
def initialize(command_line, structured_command, cpu_limit, memory_limit)
|
38
86
|
@command_line = command_line # String
|
39
|
-
@structured_command = structured_command # Array!
|
87
|
+
@structured_command = structured_command # Array!Command
|
40
88
|
@cpu_limit = cpu_limit # uint64 / sec
|
41
89
|
@memory_limit = memory_limit # uint64 / bytes
|
90
|
+
|
91
|
+
validate
|
42
92
|
end
|
93
|
+
attr_reader :command_line, :structured_command, :cpu_limit, :memory_limit
|
43
94
|
|
44
95
|
def to_tuple
|
45
96
|
return [@command_line,
|
46
|
-
@structured_command,
|
97
|
+
@structured_command.map {|x| x.to_tuple},
|
47
98
|
@cpu_limit,
|
48
99
|
@memory_limit
|
49
100
|
]
|
@@ -52,6 +103,34 @@ module TorigoyaKit
|
|
52
103
|
def to_msgpack(out = '')
|
53
104
|
return to_tuple.to_msgpack(out)
|
54
105
|
end
|
106
|
+
|
107
|
+
def ==(rhs)
|
108
|
+
return @command_line == rhs.command_line &&
|
109
|
+
@structured_command == rhs.structured_command &&
|
110
|
+
@cpu_limit == rhs.cpu_limit &&
|
111
|
+
@memory_limit == rhs.memory_limit
|
112
|
+
end
|
113
|
+
|
114
|
+
private
|
115
|
+
def validate
|
116
|
+
unless @command_line.nil?
|
117
|
+
raise InvalidFormatError.new("type of command_line must be String") unless @command_line.is_a?(String)
|
118
|
+
else
|
119
|
+
@command_line = ""
|
120
|
+
end
|
121
|
+
|
122
|
+
unless @structured_command.nil?
|
123
|
+
raise InvalidFormatError.new("type of structured_command must be Array") unless @structured_command.is_a?(Array)
|
124
|
+
@structured_command.each do |e|
|
125
|
+
raise InvalidFormatError.new("type of element of structured_command must be Command") unless e.is_a?(Command)
|
126
|
+
end
|
127
|
+
else
|
128
|
+
@structured_command = []
|
129
|
+
end
|
130
|
+
|
131
|
+
raise InvalidFormatError.new("type of cpu_limit must be Integer") unless @cpu_limit.is_a?(Integer)
|
132
|
+
raise InvalidFormatError.new("type of memory_limit must be Integer") unless @memory_limit.is_a?(Integer)
|
133
|
+
end
|
55
134
|
end
|
56
135
|
|
57
136
|
#
|
@@ -59,7 +138,10 @@ module TorigoyaKit
|
|
59
138
|
def initialize(compile_setting, link_setting)
|
60
139
|
@compile_setting = compile_setting # ExecutionSetting
|
61
140
|
@link_setting = link_setting # ExecutionSetting
|
141
|
+
|
142
|
+
validate
|
62
143
|
end
|
144
|
+
attr_reader :compile_setting, :link_setting
|
63
145
|
|
64
146
|
def to_tuple
|
65
147
|
return [@compile_setting.to_tuple,
|
@@ -70,6 +152,17 @@ module TorigoyaKit
|
|
70
152
|
def to_msgpack(out = '')
|
71
153
|
return to_tuple.to_msgpack(out)
|
72
154
|
end
|
155
|
+
|
156
|
+
def ==(rhs)
|
157
|
+
return @compile_setting == rhs.compile_setting &&
|
158
|
+
@link_setting == rhs.link_setting
|
159
|
+
end
|
160
|
+
|
161
|
+
private
|
162
|
+
def validate()
|
163
|
+
raise InvalidFormatError.new("type of compile_setting must be ExecutionSetting") unless @compile_setting.is_a?(ExecutionSetting)
|
164
|
+
raise InvalidFormatError.new("type of link_setting must be ExecutionSetting") unless @link_setting.is_a?(ExecutionSetting)
|
165
|
+
end
|
73
166
|
end
|
74
167
|
|
75
168
|
#
|
@@ -77,7 +170,10 @@ module TorigoyaKit
|
|
77
170
|
def initialize(stdin, run_setting)
|
78
171
|
@stdin = stdin # SourceData
|
79
172
|
@run_setting = run_setting # ExecutionSetting
|
173
|
+
|
174
|
+
validate
|
80
175
|
end
|
176
|
+
attr_reader :stdin, :run_setting
|
81
177
|
|
82
178
|
def to_tuple
|
83
179
|
return [@stdin, @run_setting]
|
@@ -86,13 +182,29 @@ module TorigoyaKit
|
|
86
182
|
def to_msgpack(out = '')
|
87
183
|
return to_tuple.to_msgpack(out)
|
88
184
|
end
|
185
|
+
|
186
|
+
def ==(rhs)
|
187
|
+
return @stdin == rhs.stdin &&
|
188
|
+
@run_settings == rhs.run_settings
|
189
|
+
end
|
190
|
+
|
191
|
+
private
|
192
|
+
def validate()
|
193
|
+
unless @stdin.nil?
|
194
|
+
raise InvalidFormatError.new("type of stdin must be SourceData") unless @stdin.is_a?(SourceData)
|
195
|
+
end
|
196
|
+
raise InvalidFormatError.new("type of run_setting must be ExecutionSetting") unless @run_setting.is_a?(ExecutionSetting)
|
197
|
+
end
|
89
198
|
end
|
90
199
|
|
91
200
|
#
|
92
201
|
class RunInstruction
|
93
202
|
def initialize(inputs)
|
94
203
|
@inputs = inputs # Array!Input
|
204
|
+
|
205
|
+
validate
|
95
206
|
end
|
207
|
+
attr_reader :inputs
|
96
208
|
|
97
209
|
def to_tuple
|
98
210
|
return [@inputs.map {|x| x.to_tuple}]
|
@@ -101,6 +213,18 @@ module TorigoyaKit
|
|
101
213
|
def to_msgpack(out = '')
|
102
214
|
return to_tuple.to_msgpack(out)
|
103
215
|
end
|
216
|
+
|
217
|
+
def ==(rhs)
|
218
|
+
return @inputs == rhs.inputs
|
219
|
+
end
|
220
|
+
|
221
|
+
private
|
222
|
+
def validate()
|
223
|
+
raise InvalidFormatError.new("type of inputs must be Array") unless @inputs.is_a?(Array)
|
224
|
+
@inputs.each do |e|
|
225
|
+
raise InvalidFormatError.new("type of element of inputs must be Input") unless e.is_a?(Input)
|
226
|
+
end
|
227
|
+
end
|
104
228
|
end
|
105
229
|
|
106
230
|
#
|
@@ -112,7 +236,10 @@ module TorigoyaKit
|
|
112
236
|
@source_codes = source_codes # Array!SourceData
|
113
237
|
@build_inst = build_inst # BuildInstruction
|
114
238
|
@run_inst = run_inst # RunInstruction
|
239
|
+
|
240
|
+
validate
|
115
241
|
end
|
242
|
+
attr_reader :base_name, :proc_id, :proc_version, :source_codes, :build_inst, :run_inst
|
116
243
|
|
117
244
|
def to_tuple
|
118
245
|
return [@base_name,
|
@@ -127,6 +254,34 @@ module TorigoyaKit
|
|
127
254
|
def to_msgpack
|
128
255
|
return to_tuple.to_msgpack()
|
129
256
|
end
|
257
|
+
|
258
|
+
def ==(rhs)
|
259
|
+
return @base_name == rhs.base_name &&
|
260
|
+
@proc_id == rhs.proc_id &&
|
261
|
+
@proc_version == rhs.proc_version &&
|
262
|
+
@source_codes == rhs.source_codes &&
|
263
|
+
@build_inst == rhs.build_inst &&
|
264
|
+
@run_inst == rhs.run_inst
|
265
|
+
end
|
266
|
+
|
267
|
+
private
|
268
|
+
def validate()
|
269
|
+
raise InvalidFormatError.new("type of base_name must be String") unless @base_name.is_a?(String)
|
270
|
+
raise InvalidFormatError.new("type of proc_id must be Integer") unless @proc_id.is_a?(Integer)
|
271
|
+
raise InvalidFormatError.new("type of proc_version must be String") unless @proc_version.is_a?(String)
|
272
|
+
raise InvalidFormatError.new("type of source_codes must be Array") unless @source_codes.is_a?(Array)
|
273
|
+
@source_codes.each do |e|
|
274
|
+
raise InvalidFormatError.new("type of element of source_codes must be SourceData") unless e.is_a?(SourceData)
|
275
|
+
end
|
276
|
+
raise InvalidFormatError.new("type of build_inst must be BuildInstruction") unless @build_inst.is_a?(BuildInstruction)
|
277
|
+
raise InvalidFormatError.new("type of run_inst must be RunInstruction") unless @run_inst.is_a?(RunInstruction)
|
278
|
+
end
|
130
279
|
end
|
131
280
|
|
281
|
+
|
282
|
+
class InvalidFormatError < StandardError
|
283
|
+
def initialize(*args)
|
284
|
+
super(*args)
|
285
|
+
end
|
286
|
+
end
|
132
287
|
end # module TorigoyaKit
|
data/lib/torigoya_kit/version.rb
CHANGED
data/spec/cases/session_spec.rb
CHANGED
data/spec/cases/ticket_spec.rb
CHANGED
@@ -6,10 +6,76 @@ describe :ticket do
|
|
6
6
|
ticket = make_ticket()
|
7
7
|
|
8
8
|
it "aaa" do
|
9
|
-
expect(ticket).not_to
|
9
|
+
expect(ticket).not_to be nil
|
10
10
|
end
|
11
11
|
|
12
12
|
it "aaa" do
|
13
13
|
expect(ticket.to_msgpack).not_to eq nil
|
14
14
|
end
|
15
|
+
|
16
|
+
#
|
17
|
+
dummy_es = TorigoyaKit::ExecutionSetting.new("", [], 0, 0)
|
18
|
+
dummy_bi = TorigoyaKit::BuildInstruction.new(dummy_es, dummy_es)
|
19
|
+
dummy_ri = TorigoyaKit::RunInstruction.new([])
|
20
|
+
|
21
|
+
it "construct ticket" do
|
22
|
+
expect do
|
23
|
+
TorigoyaKit::Ticket.new(nil, nil, nil, nil, nil, nil)
|
24
|
+
end.to raise_error(TorigoyaKit::InvalidFormatError)
|
25
|
+
|
26
|
+
expect do
|
27
|
+
TorigoyaKit::Ticket.new("", nil, nil, nil, nil, nil)
|
28
|
+
end.to raise_error(TorigoyaKit::InvalidFormatError)
|
29
|
+
|
30
|
+
expect do
|
31
|
+
TorigoyaKit::Ticket.new("", 0, nil, nil, nil, nil)
|
32
|
+
end.to raise_error(TorigoyaKit::InvalidFormatError)
|
33
|
+
|
34
|
+
expect do
|
35
|
+
TorigoyaKit::Ticket.new("", 0, "", nil, nil, nil)
|
36
|
+
end.to raise_error(TorigoyaKit::InvalidFormatError)
|
37
|
+
|
38
|
+
expect do
|
39
|
+
TorigoyaKit::Ticket.new("", 0, "", [], nil, nil)
|
40
|
+
end.to raise_error(TorigoyaKit::InvalidFormatError)
|
41
|
+
|
42
|
+
expect do
|
43
|
+
TorigoyaKit::Ticket.new("", 0, "", [], dummy_bi, nil)
|
44
|
+
end.to raise_error(TorigoyaKit::InvalidFormatError)
|
45
|
+
|
46
|
+
expect do
|
47
|
+
TorigoyaKit::Ticket.new("", 0, "", [], dummy_bi, dummy_ri)
|
48
|
+
end.to_not raise_error
|
49
|
+
end
|
50
|
+
|
51
|
+
it "construct execution setting" do
|
52
|
+
commands = [TorigoyaKit::Command.new("A=", "B"),
|
53
|
+
TorigoyaKit::Command.new("unit")
|
54
|
+
]
|
55
|
+
expected = TorigoyaKit::ExecutionSetting.new("test command", commands, 100, 200)
|
56
|
+
|
57
|
+
commands_dummy = [TorigoyaKit::Command.new("A=", "B"),
|
58
|
+
TorigoyaKit::Command.new("unit")
|
59
|
+
]
|
60
|
+
expected_dummy = TorigoyaKit::ExecutionSetting.new("test command", commands, 100, 200)
|
61
|
+
|
62
|
+
expect(expected).to eq expected_dummy
|
63
|
+
end
|
64
|
+
|
65
|
+
it "setting" do
|
66
|
+
expected_es = TorigoyaKit::ExecutionSetting.new("", [], 0, 0)
|
67
|
+
expect(expected_es).to eq dummy_es
|
68
|
+
end
|
69
|
+
|
70
|
+
it "build inst" do
|
71
|
+
expected_es = TorigoyaKit::ExecutionSetting.new("", [], 0, 0)
|
72
|
+
expected_bi = TorigoyaKit::BuildInstruction.new(expected_es, expected_es)
|
73
|
+
|
74
|
+
expect(expected_bi).to eq dummy_bi
|
75
|
+
end
|
76
|
+
|
77
|
+
it "run inst" do
|
78
|
+
expected_ri = TorigoyaKit::RunInstruction.new([])
|
79
|
+
expect(expected_ri).to eq dummy_ri
|
80
|
+
end
|
15
81
|
end
|