testkit123 0.3.1 → 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 +111 -99
- data.tar.gz.sig +0 -0
- metadata +28 -49
- 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,78 +2,78 @@
|
|
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
25
|
using ColouredText
|
26
|
-
|
26
|
+
|
27
27
|
attr_reader :testdata_file
|
28
|
-
|
29
|
-
def initialize(templates: {testdata: nil, testx: nil}, project: nil,
|
30
|
-
debug: true, localpath: nil, datapath: nil,
|
28
|
+
|
29
|
+
def initialize(templates: {testdata: nil, testx: nil}, project: nil,
|
30
|
+
debug: true, localpath: nil, datapath: nil,
|
31
31
|
gemtest_url: nil, rubyver: 'ruby-2.5.1')
|
32
32
|
|
33
33
|
@debug = debug
|
34
34
|
@h = templates
|
35
|
-
|
35
|
+
|
36
36
|
#return unless project
|
37
|
-
|
37
|
+
|
38
38
|
@localpath, @datapath, @gemtest_url = localpath, datapath, gemtest_url
|
39
|
-
@rubyver = rubyver
|
40
|
-
|
39
|
+
@rubyver = rubyver
|
40
|
+
|
41
41
|
return unless project
|
42
|
-
|
42
|
+
|
43
43
|
@project_config = if project =~ /\.txt$/ then
|
44
44
|
project
|
45
45
|
else
|
46
|
-
File.join(localpath, project + '.txt')
|
46
|
+
File.join(localpath, project + '.txt')
|
47
47
|
end
|
48
|
-
|
49
|
-
puts '@project_config: ' + @project_config.inspect if @debug
|
48
|
+
|
49
|
+
puts '@project_config: ' + @project_config.inspect if @debug
|
50
50
|
puts 'localpath: ' + localpath.inspect if @debug
|
51
|
-
|
51
|
+
|
52
52
|
if File.exists? @project_config then
|
53
|
-
|
53
|
+
|
54
54
|
config = SimpleConfig.new(@project_config, debug: false).to_h
|
55
55
|
puts ('config: ' + config.inspect).debug if @debug
|
56
|
-
|
56
|
+
|
57
57
|
proj = config[:project]
|
58
58
|
puts 'create_standalone: proj: ' + proj.inspect if @debug
|
59
|
-
|
59
|
+
|
60
60
|
raise 'config[:data_path] not found' unless config[:data_path]
|
61
|
-
|
61
|
+
|
62
62
|
datafilepath = config[:data_path] + '/' + proj
|
63
|
-
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
64
|
-
|
63
|
+
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
64
|
+
|
65
65
|
ext = (config[:testdata_ext] and config[:testdata_ext][/\.?td$/]) ? 'td' : 'xml'
|
66
|
-
@testdata_file = File.join(datafilepath, "testdata_#{proj}.#{ext}")
|
67
|
-
|
66
|
+
@testdata_file = File.join(datafilepath, "testdata_#{proj}.#{ext}")
|
67
|
+
|
68
68
|
end
|
69
69
|
|
70
70
|
end
|
71
71
|
|
72
72
|
# expects a test node; see new_testnode()
|
73
73
|
#
|
74
|
-
def add_test(testnode)
|
75
|
-
|
76
|
-
s2 , filetype =
|
74
|
+
def add_test(testnode)
|
75
|
+
|
76
|
+
s2 , filetype = RXFReader.read @testdata_file
|
77
77
|
puts 'filetype: ' + filetype.inspect if @debug
|
78
78
|
|
79
79
|
xml = if s2.lstrip[0] == '<' then
|
@@ -83,13 +83,13 @@ class TestKit123
|
|
83
83
|
end
|
84
84
|
|
85
85
|
puts 'xml: ' + xml.inspect if @debug
|
86
|
-
|
86
|
+
|
87
87
|
doc = Rexle.new(xml)
|
88
88
|
id = doc.root.xpath('records/test/summary/path/text()').last.to_i + 1
|
89
89
|
testnode.root.element('summary/path').text = id.to_s
|
90
90
|
doc.root.element('records').add testnode
|
91
91
|
return doc
|
92
|
-
end
|
92
|
+
end
|
93
93
|
|
94
94
|
def create_files(project=@project_config)
|
95
95
|
|
@@ -100,9 +100,9 @@ class TestKit123
|
|
100
100
|
raise "config file not found" unless File.exists? @project_config
|
101
101
|
|
102
102
|
config_file = @project_config
|
103
|
-
|
103
|
+
|
104
104
|
puts 'config_file: ' + config_file.inspect if @debug
|
105
|
-
|
105
|
+
|
106
106
|
config = SimpleConfig.new(config_file).to_h
|
107
107
|
puts 'config : ' + config.inspect if @debug
|
108
108
|
|
@@ -136,18 +136,18 @@ class TestKit123
|
|
136
136
|
|
137
137
|
testdata = @h[:testdata].gsub(/(?<=\.)\w+$/, ext)
|
138
138
|
puts 'testdata: ' + testdata.inspect if @debug
|
139
|
-
buffer_testdata, _ =
|
140
|
-
|
139
|
+
buffer_testdata, _ = RXFReader.read(testdata)
|
140
|
+
|
141
141
|
FileUtils.mkdir_p datafilepath
|
142
|
-
|
142
|
+
|
143
143
|
testdata_file = File.join(datafilepath, "testdata_#{proj}.#{ext}")
|
144
|
-
File.write testdata_file, eval('%{' + buffer_testdata + '}')
|
144
|
+
File.write testdata_file, eval('%{' + buffer_testdata + '}')
|
145
145
|
|
146
146
|
test_template_rsf = @h[:testx]
|
147
|
-
buffer_test, _ =
|
147
|
+
buffer_test, _ = RXFReader.read(test_template_rsf)
|
148
148
|
|
149
149
|
test_rsffile = File.join(config[:data_path], "#{proj}.rsf")
|
150
|
-
File.write test_rsffile, eval('%{' + buffer_test + '}')
|
150
|
+
File.write test_rsffile, eval('%{' + buffer_test + '}')
|
151
151
|
|
152
152
|
buffer_rb = %{#!/usr/bin/env ruby
|
153
153
|
|
@@ -155,9 +155,9 @@ buffer_rb = %{#!/usr/bin/env ruby
|
|
155
155
|
|
156
156
|
#require 'timecop'
|
157
157
|
|
158
|
-
|
158
|
+
|
159
159
|
class Test#{config[:classname]} < Testdata::Base
|
160
|
-
|
160
|
+
|
161
161
|
# 2011-07-24 19:52:15
|
162
162
|
#Timecop.freeze(Time.local(2011, 7, 24, 19, 52, 15))
|
163
163
|
|
@@ -171,48 +171,49 @@ end
|
|
171
171
|
|
172
172
|
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
173
173
|
puts 'reading the ruby template file ...' if @debug
|
174
|
-
File.write test_rbfile, eval('%{' + buffer_rb + '}')
|
174
|
+
File.write test_rbfile, eval('%{' + buffer_rb + '}')
|
175
175
|
|
176
176
|
"finished processing #{proj}"
|
177
177
|
end
|
178
|
-
|
178
|
+
|
179
179
|
def create_standalone(n)
|
180
|
-
|
180
|
+
|
181
181
|
# use the test number to find the test to copy from the test file
|
182
|
-
|
182
|
+
puts '@project_config: ' + @project_config.inspect
|
183
|
+
|
183
184
|
config = SimpleConfig.new(@project_config, debug: false).to_h
|
184
185
|
puts ('config: ' + config.inspect).debug if @debug
|
185
|
-
|
186
|
+
|
186
187
|
proj = config[:project]
|
187
188
|
puts 'create_standalone: proj: ' + proj.inspect if @debug
|
188
|
-
|
189
|
+
|
189
190
|
raise 'config[:data_path] not found' unless config[:data_path]
|
190
|
-
|
191
|
+
|
191
192
|
datafilepath = config[:data_path] + '/' + proj
|
192
|
-
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
193
|
-
|
193
|
+
test_rbfile = File.join(datafilepath, "test_#{proj}.rb")
|
194
|
+
|
194
195
|
ext = (config[:testdata_ext] and config[:testdata_ext][/\.?td$/]) ? 'td' : 'xml'
|
195
196
|
testdata_file = File.join(datafilepath, "testdata_#{proj}.#{ext}")
|
196
197
|
puts 'testdata_file: ' + testdata_file.inspect if @debug
|
197
198
|
puts 'source code filepath: ' + test_rbfile.inspect if @debug
|
198
|
-
|
199
|
+
|
199
200
|
s = File.read(test_rbfile).gsub(/^( )?end/,'')
|
200
201
|
require_gems = s.scan(/^require +['"]([^'"]+)/).map(&:first)
|
201
|
-
|
202
|
+
|
202
203
|
before_test = s[/(?<=def tests\(\)).*/m].split(/ test /)[0].lstrip
|
203
204
|
puts '** before_test: ' + before_test.inspect
|
204
205
|
|
205
206
|
a = s.split(/(?= test )/)
|
206
207
|
a.shift
|
207
208
|
puts 'a: ' + a.inspect if @debug
|
208
|
-
|
209
|
+
|
209
210
|
tests = a.map do |x|
|
210
211
|
r = x.match(/(?<=['"])(?<test>[^"']+)['"]\s+do\s+\|(?<raw_args>[^\|]+)/)
|
211
|
-
|
212
|
+
|
212
213
|
[r[:test], r[:raw_args].split(/, */)]
|
213
214
|
end
|
214
215
|
|
215
|
-
s2 , filetype =
|
216
|
+
s2 , filetype = RXFReader.read testdata_file
|
216
217
|
puts 'filetype: ' + filetype.inspect if @debug
|
217
218
|
|
218
219
|
xml = if s2.lstrip[0] == '<' then
|
@@ -222,109 +223,120 @@ end
|
|
222
223
|
end
|
223
224
|
|
224
225
|
puts 'xml: ' + xml.inspect if @debug
|
225
|
-
|
226
|
+
|
226
227
|
doc = Rexle.new(xml)
|
227
228
|
puts 'after doc : ' if @debug
|
228
229
|
r = doc.root.xpath('records//test') || doc.root.xpath('records/test')
|
229
|
-
|
230
|
+
|
230
231
|
if @debug then
|
231
|
-
puts 'r: ' + r.inspect
|
232
|
+
puts 'r: ' + r.inspect
|
232
233
|
puts 'r.length: ' + r.length.inspect
|
233
234
|
puts 'n: ' + n.inspect
|
234
235
|
end
|
235
|
-
|
236
|
+
|
236
237
|
testnode = r[n-1]
|
237
238
|
puts 'testnode: ' + testnode.xml.inspect if @debug
|
238
|
-
|
239
|
+
|
239
240
|
title = testnode.text('summary/type')
|
240
241
|
puts ('title: ' + title.inspect).debug if @debug
|
241
242
|
puts ('tests: ' + tests.inspect).debug if @debug
|
242
243
|
i = tests.index tests.assoc(title)
|
243
244
|
puts 'i: ' + i.inspect if @debug
|
244
|
-
|
245
|
+
|
245
246
|
testcode = a[i].strip.lines[1..-2].map do |line|
|
246
247
|
line.sub(/^ {6}/,'')
|
247
248
|
end.join
|
248
|
-
|
249
|
-
# replace the input variable names with the input variable names defined
|
249
|
+
|
250
|
+
# replace the input variable names with the input variable names defined
|
250
251
|
# in the testdata file and prefix them with *test_*.
|
251
|
-
|
252
|
+
|
252
253
|
input_vars = testnode.xpath('records/input/summary/*/name()')
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
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
|
+
|
257
261
|
tests[i][1].zip(input_vars).each do |x|
|
258
262
|
testcode.gsub!(/\b#{x[0]}\b/, 'test_' + x[1])
|
259
|
-
end
|
263
|
+
end
|
260
264
|
|
261
265
|
args = testnode.xpath('records/input/summary/*').map do |input|
|
262
|
-
|
263
|
-
|
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
|
+
|
264
275
|
end
|
265
|
-
|
276
|
+
|
266
277
|
vars = testnode.xpath('records/input/summary/*').map(&:name)
|
267
|
-
|
268
|
-
puts 'args: ' + args.inspect if @debug
|
269
|
-
|
278
|
+
|
279
|
+
puts 'args: ' + args.inspect if @debug
|
280
|
+
|
270
281
|
vars.each do |var|
|
271
282
|
testcode.gsub!(/\b#{var}\b/, 'test_' + var)
|
272
283
|
end
|
273
|
-
|
284
|
+
|
274
285
|
puts 'gems: ' + require_gems.inspect if @debug
|
275
|
-
|
286
|
+
|
276
287
|
codex = testcode.rstrip.lines
|
277
|
-
|
288
|
+
|
278
289
|
"# Test %d. Type: %s\n# Description: %s\n" \
|
279
290
|
% [n, title, testnode.text('summary/type')] + \
|
280
291
|
"# --------------------------------------------\n\n" + \
|
281
292
|
"require '#{proj}'\n" + require_gems.map {|x| "require '%s'" \
|
282
|
-
% x}.join("\n") +
|
293
|
+
% x}.join("\n") + \
|
294
|
+
"\nrequire 'rxfreadwrite'\n\n\n" \
|
283
295
|
+ before_test.gsub(/^ /,'') + "\n" + args.join("\n") \
|
284
296
|
+ codex[0..-2].join + 'puts ' + codex.last
|
285
297
|
|
286
298
|
end
|
287
299
|
|
288
300
|
def delete_files(s=nil)
|
289
|
-
|
301
|
+
|
290
302
|
filepath = if s =~ /\.txt$/ then
|
291
303
|
project
|
292
304
|
elsif s
|
293
|
-
File.join(@localpath, s + '.txt')
|
305
|
+
File.join(@localpath, s + '.txt')
|
294
306
|
else
|
295
307
|
@project_config
|
296
308
|
end
|
297
|
-
|
309
|
+
|
298
310
|
puts 'filepath: ' + filepath.inspect if @debug
|
299
|
-
|
311
|
+
|
300
312
|
config = SimpleConfig.new(filepath).to_h
|
301
|
-
|
313
|
+
|
302
314
|
proj = config[:project]
|
303
315
|
datafilepath = config[:data_path] + '/' + proj
|
304
316
|
FileUtils.rm_rf datafilepath
|
305
|
-
|
317
|
+
|
306
318
|
filepath = config[:local_path] + '/' + proj
|
307
319
|
FileUtils.rm_rf filepath
|
308
|
-
|
320
|
+
|
309
321
|
FileUtils.rm File.join(config[:data_path], "#{proj}.rsf")
|
310
|
-
|
322
|
+
|
311
323
|
proj + ' test files deleted'
|
312
|
-
|
324
|
+
|
313
325
|
end
|
314
|
-
|
326
|
+
|
315
327
|
def new_testnode(s=nil, type: '', inputs: {}, outputs: {result: ''})
|
316
|
-
|
328
|
+
|
317
329
|
if s then
|
318
|
-
|
319
|
-
# the scan is intended to find the input variables from an
|
330
|
+
|
331
|
+
# the scan is intended to find the input variables from an
|
320
332
|
# example Ruby script
|
321
|
-
|
333
|
+
|
322
334
|
inputs = s.scan(/test_([\w]+) += +['"]([^'"]+)/)\
|
323
|
-
.inject({}){|r,x| r.merge(x.first.to_sym => x.last)}
|
335
|
+
.inject({}){|r,x| r.merge(x.first.to_sym => x.last)}
|
324
336
|
end
|
325
|
-
|
337
|
+
|
326
338
|
# observe *test* is masked with *_test* because it is a built-in method name.
|
327
|
-
|
339
|
+
|
328
340
|
h = {
|
329
341
|
_test: {
|
330
342
|
summary: {
|
@@ -341,14 +353,14 @@ end
|
|
341
353
|
summary: outputs,
|
342
354
|
records: {}
|
343
355
|
}
|
344
|
-
}
|
356
|
+
}
|
345
357
|
}
|
346
358
|
}
|
347
359
|
|
348
360
|
a = RexleBuilder.new(h, debug: false).to_a
|
349
361
|
|
350
362
|
Rexle.new(a)
|
351
|
-
|
363
|
+
|
352
364
|
end
|
353
365
|
|
354
366
|
def new_project(project='myproject', classname=nil, save: false)
|
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
|
@@ -11,52 +11,32 @@ cert_chain:
|
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
27
|
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
+
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
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
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2022-02-21 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
|
-
- !ruby/object:Gem::Dependency
|
41
|
-
name: rxfhelper
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '1.0'
|
47
|
-
- - ">="
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: 1.0.5
|
50
|
-
type: :runtime
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '1.0'
|
57
|
-
- - ">="
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: 1.0.5
|
60
40
|
- !ruby/object:Gem::Dependency
|
61
41
|
name: simple-config
|
62
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +46,7 @@ dependencies:
|
|
66
46
|
version: '0.7'
|
67
47
|
- - ">="
|
68
48
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.7.
|
49
|
+
version: 0.7.2
|
70
50
|
type: :runtime
|
71
51
|
prerelease: false
|
72
52
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -76,7 +56,7 @@ dependencies:
|
|
76
56
|
version: '0.7'
|
77
57
|
- - ">="
|
78
58
|
- !ruby/object:Gem::Version
|
79
|
-
version: 0.7.
|
59
|
+
version: 0.7.2
|
80
60
|
- !ruby/object:Gem::Dependency
|
81
61
|
name: testdata_text
|
82
62
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,7 +78,7 @@ dependencies:
|
|
98
78
|
- !ruby/object:Gem::Version
|
99
79
|
version: 0.2.2
|
100
80
|
description:
|
101
|
-
email:
|
81
|
+
email: digital.robertson@gmail.com
|
102
82
|
executables: []
|
103
83
|
extensions: []
|
104
84
|
extra_rdoc_files: []
|
@@ -123,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
103
|
- !ruby/object:Gem::Version
|
124
104
|
version: '0'
|
125
105
|
requirements: []
|
126
|
-
|
127
|
-
rubygems_version: 2.7.10
|
106
|
+
rubygems_version: 3.2.22
|
128
107
|
signing_key:
|
129
108
|
specification_version: 4
|
130
109
|
summary: Generates a test suite of files (for use with the testdata gem) from a config
|
metadata.gz.sig
CHANGED
Binary file
|