torigoya_kit 0.0.3 → 0.0.4
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.
- 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
|