testkit123 0.2.6 → 0.4.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eeae4cbfeefae68b91b80d42998690091b949d77e6ccfd76d5a99e01cf16f9d7
4
- data.tar.gz: c41884dc3440835042dec691831bf73d1dea1b3f7d9d92b14e83a18cacaa3afb
3
+ metadata.gz: 076b25cb13801fa21a785e8fc79f3907725af4ad499daa6f82901bb7896fdadd
4
+ data.tar.gz: bf84ef76c61f536d6b9a21e65966d75dc37e1dbf5d554ae8bb02103e8dabc9d5
5
5
  SHA512:
6
- metadata.gz: 9568eda11b89bb92c4765a25373bbf29b2ae2e022291530e1da7d45c8120f15d9e721adb23ae7f00c40f8129c3effca088debbc945b026124014ad76df505d3c
7
- data.tar.gz: 0e8ec37cfb4406b7551b5a9bf97ea8641b531cd07bef1e2379f7214cc0b55b758f334ff057a78ba4c2a20a8c970734c2fb5d4058c540a730ab37bb4e54e5a129
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
- def initialize(templates: {testdata: nil, testx: nil}, project: nil,
27
- debug: false, localpath: nil, datapath: nil,
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
- elsif project
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
- @localpath, @datapath, @gemtest_url = localpath, datapath, gemtest_url
42
- @rubyver = rubyver
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, _ = RXFHelper.read(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, _ = RXFHelper.read(test_template_rsf)
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
- config = SimpleConfig.new(@project_config).to_h
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 = a[0].match(/(?<=['"])(?<test>[^"']+)['"]\s+do\s+\|(?<raw_args>[^\|]+)/)
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 = RXFHelper.read testdata_file
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
- puts 'input_vars: ' + input_vars.inspect
199
- puts 'tests[i][1]: ' + tests[i][1].inspect
200
- puts 'zip: ' + tests[i][1].zip(input_vars).inspect
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], 'test_' + x[1])
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
- "test_%s =<<EOF\n%s\nEOF\n" % [input.name,
207
- input.texts.join.gsub(/'/,"\'").strip]
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") + "\n\n\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 make_testdata(s)
260
-
261
- inputs = s.scan(/test_([\w]+) += +['"]([^'"]+)/)\
262
- .inject({}){|r,x| r.merge(x.first.to_sym => x.last)}
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: {result: ''},
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.2.6
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
- MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwNzE1MTYwNTQ4WhcN
15
- MTkwNzE1MTYwNTQ4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtgJ54
17
- gKuobwa5Won07os+Evt07yvbyEB7OBxwD3rnv1oNLxlx1wkOD2DNeZd4Otw1Dl6M
18
- plfQUJCzRU9sQ5cAKqHVDPpf+EJIPm2bATJlO8w//F/LULbN1h8VsbGBcXUu3VoX
19
- m2Bf6EesFKM/+BiMujEDX9EBy3hCJp7Bkn4WMk4PRwUdEBE8TEFj9T947+JVqZdR
20
- 3s4+DtYzFWbX9MuNzeQlAxcjV1iFgTS2G/GY6k6hJl0HhFnHfqftfqKgLIRZY4yF
21
- LIkb5Kvj/yA1gYctId0lk1PrntSchvQvzYDAOrf8lOY3M3JLkiOWzwcRWDoPWCaI
22
- PdYjRk0ij/x2zKS3AgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
- HQYDVR0OBBYEFJig7R4v8LRxNY/3qFTqBFgZT6FzMCYGA1UdEQQfMB2BG2dlbW1h
24
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
- ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAAaMtjTuuZeFtw4VuH9W
26
- UozGqMeTxP2VkMw2vmaN+IF6jhNFBIDhgrQGNwijCsFZfMwl7efQ6PM2XIqXtJCZ
27
- O8CrfJ+Y64IszwHeNSzyxi1FFMfUYAafQq3E+E8KTk0PaCl9AEa1zxwkBWkGHzKG
28
- P1svw5bfBxQ9epcI9Ir00sKkx0S1mANSrwH6k2pKwOSpxhhX2Wlx6L4mnME0CTq8
29
- 6nk4O0PjUWuXrqQKUG4AtGeMPImOKz8uo+/wyaRZR/I+suAoL2xHo7RYqZwoCfQv
30
- MBi32Noiyau3znLWYXucwnOR8dh4RhcwxaP82ZX6Up19+qVqJqravkDQ+OBff6o+
31
- m3U=
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: 2018-11-21 00:00:00.000000000 Z
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.6'
46
+ version: '0.7'
62
47
  - - ">="
63
48
  - !ruby/object:Gem::Version
64
- version: 0.6.4
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.6'
56
+ version: '0.7'
72
57
  - - ">="
73
58
  - !ruby/object:Gem::Version
74
- version: 0.6.4
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: james@jamesrobertson.eu
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
- rubyforge_project:
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