testkit123 0.2.6 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/testkit123.rb +163 -86
- data.tar.gz.sig +0 -0
- metadata +32 -48
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 076b25cb13801fa21a785e8fc79f3907725af4ad499daa6f82901bb7896fdadd
|
4
|
+
data.tar.gz: bf84ef76c61f536d6b9a21e65966d75dc37e1dbf5d554ae8bb02103e8dabc9d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8a89f4616ebbed893740f995269dc06541bec6187b1587dfe89d375c17233dc69b7aa63d4e899d0746fc05922aeb1e3bce0384cc80602ec9bc923e6a7e599a5
|
7
|
+
data.tar.gz: a3bae8298736a349801abea83dcdede98c9ca3edf03ee3191acbdcea0f1e1042eeb18b7208a5487ae1244eb2afb2cd7688c15c556835b9b2ef7801477829eed6
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/testkit123.rb
CHANGED
@@ -2,47 +2,95 @@
|
|
2
2
|
|
3
3
|
# file: testkit123.rb
|
4
4
|
|
5
|
-
require 'rxfhelper'
|
6
5
|
require 'fileutils'
|
7
6
|
require 'testdata_text'
|
8
7
|
require 'simple-config'
|
8
|
+
require 'rxfreadwrite'
|
9
9
|
|
10
10
|
|
11
11
|
module StringFormat
|
12
|
-
|
12
|
+
|
13
13
|
refine String do
|
14
|
-
|
14
|
+
|
15
15
|
def camelize
|
16
|
-
self.split('_').collect(&:capitalize).join
|
16
|
+
self.split('_').collect(&:capitalize).join
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
end
|
22
22
|
|
23
23
|
class TestKit123
|
24
24
|
using StringFormat
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
using ColouredText
|
26
|
+
|
27
|
+
attr_reader :testdata_file
|
28
|
+
|
29
|
+
def initialize(templates: {testdata: nil, testx: nil}, project: nil,
|
30
|
+
debug: true, localpath: nil, datapath: nil,
|
28
31
|
gemtest_url: nil, rubyver: 'ruby-2.5.1')
|
29
32
|
|
30
33
|
@debug = debug
|
31
34
|
@h = templates
|
32
|
-
|
35
|
+
|
36
|
+
#return unless project
|
37
|
+
|
38
|
+
@localpath, @datapath, @gemtest_url = localpath, datapath, gemtest_url
|
39
|
+
@rubyver = rubyver
|
40
|
+
|
41
|
+
return unless project
|
42
|
+
|
33
43
|
@project_config = if project =~ /\.txt$/ then
|
34
44
|
project
|
35
|
-
|
36
|
-
File.join(localpath, project + '.txt')
|
45
|
+
else
|
46
|
+
File.join(localpath, project + '.txt')
|
37
47
|
end
|
48
|
+
|
38
49
|
puts '@project_config: ' + @project_config.inspect if @debug
|
39
|
-
|
50
|
+
puts 'localpath: ' + localpath.inspect if @debug
|
40
51
|
|
41
|
-
|
42
|
-
|
52
|
+
if File.exists? @project_config then
|
53
|
+
|
54
|
+
config = SimpleConfig.new(@project_config, debug: false).to_h
|
55
|
+
puts ('config: ' + config.inspect).debug if @debug
|
56
|
+
|
57
|
+
proj = config[:project]
|
58
|
+
puts 'create_standalone: proj: ' + proj.inspect if @debug
|
59
|
+
|
60
|
+
raise 'config[:data_path] not found' unless config[:data_path]
|
61
|
+
|
62
|
+
datafilepath = config[:data_path] + '/' + proj
|
63
|
+
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
64
|
+
|
65
|
+
ext = (config[:testdata_ext] and config[:testdata_ext][/\.?td$/]) ? 'td' : 'xml'
|
66
|
+
@testdata_file = File.join(datafilepath, "testdata_#{proj}.#{ext}")
|
67
|
+
|
68
|
+
end
|
43
69
|
|
44
70
|
end
|
45
71
|
|
72
|
+
# expects a test node; see new_testnode()
|
73
|
+
#
|
74
|
+
def add_test(testnode)
|
75
|
+
|
76
|
+
s2 , filetype = RXFReader.read @testdata_file
|
77
|
+
puts 'filetype: ' + filetype.inspect if @debug
|
78
|
+
|
79
|
+
xml = if s2.lstrip[0] == '<' then
|
80
|
+
s2
|
81
|
+
else
|
82
|
+
TestdataText.parse s2
|
83
|
+
end
|
84
|
+
|
85
|
+
puts 'xml: ' + xml.inspect if @debug
|
86
|
+
|
87
|
+
doc = Rexle.new(xml)
|
88
|
+
id = doc.root.xpath('records/test/summary/path/text()').last.to_i + 1
|
89
|
+
testnode.root.element('summary/path').text = id.to_s
|
90
|
+
doc.root.element('records').add testnode
|
91
|
+
return doc
|
92
|
+
end
|
93
|
+
|
46
94
|
def create_files(project=@project_config)
|
47
95
|
|
48
96
|
puts 'running create_files ...' if @debug
|
@@ -52,9 +100,9 @@ class TestKit123
|
|
52
100
|
raise "config file not found" unless File.exists? @project_config
|
53
101
|
|
54
102
|
config_file = @project_config
|
55
|
-
|
103
|
+
|
56
104
|
puts 'config_file: ' + config_file.inspect if @debug
|
57
|
-
|
105
|
+
|
58
106
|
config = SimpleConfig.new(config_file).to_h
|
59
107
|
puts 'config : ' + config.inspect if @debug
|
60
108
|
|
@@ -88,18 +136,18 @@ class TestKit123
|
|
88
136
|
|
89
137
|
testdata = @h[:testdata].gsub(/(?<=\.)\w+$/, ext)
|
90
138
|
puts 'testdata: ' + testdata.inspect if @debug
|
91
|
-
buffer_testdata, _ =
|
92
|
-
|
139
|
+
buffer_testdata, _ = RXFReader.read(testdata)
|
140
|
+
|
93
141
|
FileUtils.mkdir_p datafilepath
|
94
|
-
|
142
|
+
|
95
143
|
testdata_file = File.join(datafilepath, "testdata_#{proj}.#{ext}")
|
96
|
-
File.write testdata_file, eval('%{' + buffer_testdata + '}')
|
144
|
+
File.write testdata_file, eval('%{' + buffer_testdata + '}')
|
97
145
|
|
98
146
|
test_template_rsf = @h[:testx]
|
99
|
-
buffer_test, _ =
|
147
|
+
buffer_test, _ = RXFReader.read(test_template_rsf)
|
100
148
|
|
101
149
|
test_rsffile = File.join(config[:data_path], "#{proj}.rsf")
|
102
|
-
File.write test_rsffile, eval('%{' + buffer_test + '}')
|
150
|
+
File.write test_rsffile, eval('%{' + buffer_test + '}')
|
103
151
|
|
104
152
|
buffer_rb = %{#!/usr/bin/env ruby
|
105
153
|
|
@@ -107,9 +155,9 @@ buffer_rb = %{#!/usr/bin/env ruby
|
|
107
155
|
|
108
156
|
#require 'timecop'
|
109
157
|
|
110
|
-
|
158
|
+
|
111
159
|
class Test#{config[:classname]} < Testdata::Base
|
112
|
-
|
160
|
+
|
113
161
|
# 2011-07-24 19:52:15
|
114
162
|
#Timecop.freeze(Time.local(2011, 7, 24, 19, 52, 15))
|
115
163
|
|
@@ -123,43 +171,49 @@ end
|
|
123
171
|
|
124
172
|
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
125
173
|
puts 'reading the ruby template file ...' if @debug
|
126
|
-
File.write test_rbfile, eval('%{' + buffer_rb + '}')
|
174
|
+
File.write test_rbfile, eval('%{' + buffer_rb + '}')
|
127
175
|
|
128
176
|
"finished processing #{proj}"
|
129
177
|
end
|
130
|
-
|
178
|
+
|
131
179
|
def create_standalone(n)
|
132
|
-
|
180
|
+
|
133
181
|
# use the test number to find the test to copy from the test file
|
134
|
-
|
135
|
-
|
136
|
-
|
182
|
+
puts '@project_config: ' + @project_config.inspect
|
183
|
+
|
184
|
+
config = SimpleConfig.new(@project_config, debug: false).to_h
|
185
|
+
puts ('config: ' + config.inspect).debug if @debug
|
186
|
+
|
137
187
|
proj = config[:project]
|
138
188
|
puts 'create_standalone: proj: ' + proj.inspect if @debug
|
189
|
+
|
190
|
+
raise 'config[:data_path] not found' unless config[:data_path]
|
191
|
+
|
139
192
|
datafilepath = config[:data_path] + '/' + proj
|
140
|
-
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
141
|
-
|
142
|
-
ext = config[:testdata_ext][/\.?td$/] ? 'td' : 'xml'
|
193
|
+
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
194
|
+
|
195
|
+
ext = (config[:testdata_ext] and config[:testdata_ext][/\.?td$/]) ? 'td' : 'xml'
|
143
196
|
testdata_file = File.join(datafilepath, "testdata_#{proj}.#{ext}")
|
144
197
|
puts 'testdata_file: ' + testdata_file.inspect if @debug
|
145
198
|
puts 'source code filepath: ' + test_rbfile.inspect if @debug
|
146
|
-
|
199
|
+
|
147
200
|
s = File.read(test_rbfile).gsub(/^( )?end/,'')
|
148
201
|
require_gems = s.scan(/^require +['"]([^'"]+)/).map(&:first)
|
149
|
-
|
202
|
+
|
150
203
|
before_test = s[/(?<=def tests\(\)).*/m].split(/ test /)[0].lstrip
|
151
204
|
puts '** before_test: ' + before_test.inspect
|
152
205
|
|
153
206
|
a = s.split(/(?= test )/)
|
154
207
|
a.shift
|
208
|
+
puts 'a: ' + a.inspect if @debug
|
155
209
|
|
156
210
|
tests = a.map do |x|
|
157
|
-
r =
|
158
|
-
|
211
|
+
r = x.match(/(?<=['"])(?<test>[^"']+)['"]\s+do\s+\|(?<raw_args>[^\|]+)/)
|
212
|
+
|
159
213
|
[r[:test], r[:raw_args].split(/, */)]
|
160
214
|
end
|
161
215
|
|
162
|
-
s2 , filetype =
|
216
|
+
s2 , filetype = RXFReader.read testdata_file
|
163
217
|
puts 'filetype: ' + filetype.inspect if @debug
|
164
218
|
|
165
219
|
xml = if s2.lstrip[0] == '<' then
|
@@ -169,103 +223,125 @@ end
|
|
169
223
|
end
|
170
224
|
|
171
225
|
puts 'xml: ' + xml.inspect if @debug
|
172
|
-
|
226
|
+
|
173
227
|
doc = Rexle.new(xml)
|
174
228
|
puts 'after doc : ' if @debug
|
175
229
|
r = doc.root.xpath('records//test') || doc.root.xpath('records/test')
|
176
|
-
|
230
|
+
|
177
231
|
if @debug then
|
178
|
-
puts 'r: ' + r.inspect
|
232
|
+
puts 'r: ' + r.inspect
|
179
233
|
puts 'r.length: ' + r.length.inspect
|
180
234
|
puts 'n: ' + n.inspect
|
181
235
|
end
|
182
|
-
|
236
|
+
|
183
237
|
testnode = r[n-1]
|
184
238
|
puts 'testnode: ' + testnode.xml.inspect if @debug
|
185
|
-
|
239
|
+
|
186
240
|
title = testnode.text('summary/type')
|
241
|
+
puts ('title: ' + title.inspect).debug if @debug
|
242
|
+
puts ('tests: ' + tests.inspect).debug if @debug
|
187
243
|
i = tests.index tests.assoc(title)
|
188
|
-
|
244
|
+
puts 'i: ' + i.inspect if @debug
|
245
|
+
|
189
246
|
testcode = a[i].strip.lines[1..-2].map do |line|
|
190
247
|
line.sub(/^ {6}/,'')
|
191
248
|
end.join
|
192
|
-
|
193
|
-
# replace the input variable names with the input variable names defined
|
249
|
+
|
250
|
+
# replace the input variable names with the input variable names defined
|
194
251
|
# in the testdata file and prefix them with *test_*.
|
195
|
-
|
252
|
+
|
196
253
|
input_vars = testnode.xpath('records/input/summary/*/name()')
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
254
|
+
|
255
|
+
if @debug then
|
256
|
+
puts 'input_vars: ' + input_vars.inspect
|
257
|
+
puts 'tests[i][1]: ' + tests[i][1].inspect
|
258
|
+
puts 'zip: ' + tests[i][1].zip(input_vars).inspect
|
259
|
+
end
|
260
|
+
|
201
261
|
tests[i][1].zip(input_vars).each do |x|
|
202
|
-
testcode.gsub!(x[0]
|
203
|
-
end
|
262
|
+
testcode.gsub!(/\b#{x[0]}\b/, 'test_' + x[1])
|
263
|
+
end
|
204
264
|
|
205
265
|
args = testnode.xpath('records/input/summary/*').map do |input|
|
206
|
-
|
207
|
-
|
266
|
+
|
267
|
+
value = input.texts.join.gsub(/'/,"\'").strip
|
268
|
+
|
269
|
+
if value.lines.length > 1 then
|
270
|
+
"test_%s =<<EOF\n%s\nEOF\n" % [input.name, value ]
|
271
|
+
else
|
272
|
+
"test_%s = '%s'\n" % [input.name, value ]
|
273
|
+
end
|
274
|
+
|
208
275
|
end
|
209
|
-
|
276
|
+
|
210
277
|
vars = testnode.xpath('records/input/summary/*').map(&:name)
|
211
|
-
|
212
|
-
puts 'args: ' + args.inspect if @debug
|
213
|
-
|
278
|
+
|
279
|
+
puts 'args: ' + args.inspect if @debug
|
280
|
+
|
214
281
|
vars.each do |var|
|
215
282
|
testcode.gsub!(/\b#{var}\b/, 'test_' + var)
|
216
283
|
end
|
217
|
-
|
284
|
+
|
218
285
|
puts 'gems: ' + require_gems.inspect if @debug
|
219
|
-
|
286
|
+
|
220
287
|
codex = testcode.rstrip.lines
|
221
|
-
|
288
|
+
|
222
289
|
"# Test %d. Type: %s\n# Description: %s\n" \
|
223
290
|
% [n, title, testnode.text('summary/type')] + \
|
224
291
|
"# --------------------------------------------\n\n" + \
|
225
292
|
"require '#{proj}'\n" + require_gems.map {|x| "require '%s'" \
|
226
|
-
% x}.join("\n") +
|
293
|
+
% x}.join("\n") + \
|
294
|
+
"\nrequire 'rxfreadwrite'\n\n\n" \
|
227
295
|
+ before_test.gsub(/^ /,'') + "\n" + args.join("\n") \
|
228
296
|
+ codex[0..-2].join + 'puts ' + codex.last
|
229
297
|
|
230
298
|
end
|
231
299
|
|
232
300
|
def delete_files(s=nil)
|
233
|
-
|
301
|
+
|
234
302
|
filepath = if s =~ /\.txt$/ then
|
235
303
|
project
|
236
304
|
elsif s
|
237
|
-
File.join(@localpath, s + '.txt')
|
305
|
+
File.join(@localpath, s + '.txt')
|
238
306
|
else
|
239
307
|
@project_config
|
240
308
|
end
|
241
|
-
|
309
|
+
|
242
310
|
puts 'filepath: ' + filepath.inspect if @debug
|
243
|
-
|
311
|
+
|
244
312
|
config = SimpleConfig.new(filepath).to_h
|
245
|
-
|
313
|
+
|
246
314
|
proj = config[:project]
|
247
315
|
datafilepath = config[:data_path] + '/' + proj
|
248
316
|
FileUtils.rm_rf datafilepath
|
249
|
-
|
317
|
+
|
250
318
|
filepath = config[:local_path] + '/' + proj
|
251
319
|
FileUtils.rm_rf filepath
|
252
|
-
|
320
|
+
|
253
321
|
FileUtils.rm File.join(config[:data_path], "#{proj}.rsf")
|
254
|
-
|
322
|
+
|
255
323
|
proj + ' test files deleted'
|
256
|
-
|
324
|
+
|
257
325
|
end
|
258
|
-
|
259
|
-
def
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
326
|
+
|
327
|
+
def new_testnode(s=nil, type: '', inputs: {}, outputs: {result: ''})
|
328
|
+
|
329
|
+
if s then
|
330
|
+
|
331
|
+
# the scan is intended to find the input variables from an
|
332
|
+
# example Ruby script
|
333
|
+
|
334
|
+
inputs = s.scan(/test_([\w]+) += +['"]([^'"]+)/)\
|
335
|
+
.inject({}){|r,x| r.merge(x.first.to_sym => x.last)}
|
336
|
+
end
|
337
|
+
|
338
|
+
# observe *test* is masked with *_test* because it is a built-in method name.
|
339
|
+
|
264
340
|
h = {
|
265
341
|
_test: {
|
266
342
|
summary: {
|
267
343
|
path: '',
|
268
|
-
type:
|
344
|
+
type: type,
|
269
345
|
description: ''
|
270
346
|
},
|
271
347
|
records: {
|
@@ -274,21 +350,22 @@ end
|
|
274
350
|
records: {}
|
275
351
|
},
|
276
352
|
output: {
|
277
|
-
summary:
|
353
|
+
summary: outputs,
|
278
354
|
records: {}
|
279
355
|
}
|
280
|
-
}
|
356
|
+
}
|
281
357
|
}
|
282
358
|
}
|
283
359
|
|
284
|
-
a = RexleBuilder.new(h).to_a
|
360
|
+
a = RexleBuilder.new(h, debug: false).to_a
|
361
|
+
|
362
|
+
Rexle.new(a)
|
285
363
|
|
286
|
-
Rexle.new(a).xml pretty: true
|
287
|
-
|
288
364
|
end
|
289
365
|
|
290
366
|
def new_project(project='myproject', classname=nil, save: false)
|
291
367
|
|
368
|
+
puts 'inside new_project: ' + [project, classname].inspect if @debug
|
292
369
|
classname ||= project.camelize
|
293
370
|
|
294
371
|
s =<<EOF
|
@@ -311,8 +388,8 @@ test:
|
|
311
388
|
end
|
312
389
|
EOF
|
313
390
|
|
314
|
-
|
315
391
|
if save then
|
392
|
+
puts '@localpath: ' + @localpath.inspect if @debug
|
316
393
|
filepath = File.join(@localpath, project + '.txt')
|
317
394
|
File.write filepath, s
|
318
395
|
puts 'file saved ' + filepath if @debug
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testkit123
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,68 +10,53 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMjIxMTUyMzQ4WhcN
|
15
|
+
MjMwMjIxMTUyMzQ4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCykPDD
|
17
|
+
C99+OQXgdvHqnfGSurPttKSrB8nC+v8TchYliuwE/YeVjoNb33nSlT+vE+ZLDWLm
|
18
|
+
CA0Gtu6bE2+gOXVZvprKKwyztqmk+fLwJfPeBwB5/Aj7roVmN74yrunUffzNPDRM
|
19
|
+
cTaJ1SX4ODD6s36Hx28FNkcWZHLzzLR822E8wTyjHy/eMK4V69PW3z/nKSQy9EAV
|
20
|
+
ErKHk0ERJm6dUXb0WNkdFTQRVYU5fzlASid3yxMw9uq3P63xB4kl8f/OZYEfr4QT
|
21
|
+
u9q1ueZtcVZnNDzseyuNm3fNLpai+LDWJ6DA1zWuQZin+1g9jk0HKlM86weRrWxN
|
22
|
+
mzJ+C6GTgHlwMe37fmLXqD6YAILAbV19x8W06ZS/N/DU6FclKc4ly/T9mVJgqAMx
|
23
|
+
9e+fpbx6HCLwnz928nP+M52qfvMly0++QWawYk0aTTNs9+/5GBZxmrOq3CAEAcKs
|
24
|
+
Tp41e4lGloinqnC9HdCbjK8vpYUEki+MuGs6Y19RrCRjzD1lbZ7IbYGZ5EkCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUNqtk/CYY
|
26
|
+
+9THwv6U+woEXfZQOo4wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAfdkypqOi4heDFVtNrQXwCHBv312S6Ivo3ZUhtpbR
|
29
|
+
DAlYC0efVgGy2Xic/noETRT4/FMnTyKmQ9E3U/xCWSC1acZM51yB1vYA6boKt9xz
|
30
|
+
jNvpR7089iGJUvo7CUy+3LFe91fzZGGDiB3g2PgtOm1QnO8OPQqx7eqkKzsfZhrv
|
31
|
+
jsqQ+xmYGai4kc+lKOqhRot2cg8yhjr5x9CbOTKPC5cwq8h6bvKkD81ty/GQzSda
|
32
|
+
Y7veJQStbysuq2zUwx4TvATlFbOl4qA8PLT99wLPqUMrNl+JoWPuUrHnBr/Tp73q
|
33
|
+
HcBJ7t1jV+r747CBLN9Av0Fh0fsB2yxdMQnwbVdY6s3Ku+8cWvH8MUq/HpzRdX4i
|
34
|
+
oo9BUrJRFuzP3FNuq2We336yf1C+HnnH/mxSTwQhiP+A5aavkTnmm2GQzzOORN6I
|
35
|
+
DN5UNRowuQ2fXKFO7nmgUH33wBhFAs2KXZPPR6sWn2JxLUlMMngzSypdB7zQn7my
|
36
|
+
FmX/ZG5sgd+RpEYbxgC2cdNk
|
32
37
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
38
|
+
date: 2022-02-21 00:00:00.000000000 Z
|
34
39
|
dependencies:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: rxfhelper
|
37
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - "~>"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0.9'
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 0.9.1
|
45
|
-
type: :runtime
|
46
|
-
prerelease: false
|
47
|
-
version_requirements: !ruby/object:Gem::Requirement
|
48
|
-
requirements:
|
49
|
-
- - "~>"
|
50
|
-
- !ruby/object:Gem::Version
|
51
|
-
version: '0.9'
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.9.1
|
55
40
|
- !ruby/object:Gem::Dependency
|
56
41
|
name: simple-config
|
57
42
|
requirement: !ruby/object:Gem::Requirement
|
58
43
|
requirements:
|
59
44
|
- - "~>"
|
60
45
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0.
|
46
|
+
version: '0.7'
|
62
47
|
- - ">="
|
63
48
|
- !ruby/object:Gem::Version
|
64
|
-
version: 0.
|
49
|
+
version: 0.7.2
|
65
50
|
type: :runtime
|
66
51
|
prerelease: false
|
67
52
|
version_requirements: !ruby/object:Gem::Requirement
|
68
53
|
requirements:
|
69
54
|
- - "~>"
|
70
55
|
- !ruby/object:Gem::Version
|
71
|
-
version: '0.
|
56
|
+
version: '0.7'
|
72
57
|
- - ">="
|
73
58
|
- !ruby/object:Gem::Version
|
74
|
-
version: 0.
|
59
|
+
version: 0.7.2
|
75
60
|
- !ruby/object:Gem::Dependency
|
76
61
|
name: testdata_text
|
77
62
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,7 +78,7 @@ dependencies:
|
|
93
78
|
- !ruby/object:Gem::Version
|
94
79
|
version: 0.2.2
|
95
80
|
description:
|
96
|
-
email:
|
81
|
+
email: digital.robertson@gmail.com
|
97
82
|
executables: []
|
98
83
|
extensions: []
|
99
84
|
extra_rdoc_files: []
|
@@ -118,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
103
|
- !ruby/object:Gem::Version
|
119
104
|
version: '0'
|
120
105
|
requirements: []
|
121
|
-
|
122
|
-
rubygems_version: 2.7.6
|
106
|
+
rubygems_version: 3.2.22
|
123
107
|
signing_key:
|
124
108
|
specification_version: 4
|
125
109
|
summary: Generates a test suite of files (for use with the testdata gem) from a config
|
metadata.gz.sig
CHANGED
Binary file
|