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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 560dc7d23a4b2dc3330982f8ca4ddbba94461f17ff22c4296d842eda8c92cd19
4
- data.tar.gz: 3a5643258d69a643a57395f77d335acf78887187d70168e536c33d7141719955
3
+ metadata.gz: 076b25cb13801fa21a785e8fc79f3907725af4ad499daa6f82901bb7896fdadd
4
+ data.tar.gz: bf84ef76c61f536d6b9a21e65966d75dc37e1dbf5d554ae8bb02103e8dabc9d5
5
5
  SHA512:
6
- metadata.gz: 6daac63a4f2e865788879f9541dde921f9dfd98580a48f0d725699ec535c43059087e1f9f6e36585d042bdee550e5a180f363a58a844c133ec62ebe95a315b3d
7
- data.tar.gz: 219ebfe3cabc637e4db9966978843787f5d7cff22ece377052f4b64a5e3ca2a16e61f84d50a3bc80136ad9b14e31bd7651a6271a5e64aafd2ae312e982de691c
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 = RXFHelper.read @testdata_file
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, _ = RXFHelper.read(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, _ = RXFHelper.read(test_template_rsf)
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 = RXFHelper.read testdata_file
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
- puts 'input_vars: ' + input_vars.inspect
255
- puts 'tests[i][1]: ' + tests[i][1].inspect
256
- 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
+
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
- "test_%s =<<EOF\n%s\nEOF\n" % [input.name,
263
- 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
+
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") + "\n\n\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.3.1
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
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwMjAxMjA0MzE4WhcN
15
- MjIwMjAxMjA0MzE4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDYLk88
17
- mTT4qYC19ZG6k74St4hkvxBobe3p57tvSRljHhahLrVtUFM0i2YzjyJi9PM7q1jm
18
- RCtp69apz9E5l9s3y0NBbipKGVvksf48WmwO1tWKxks9E6CG3D+qVE+lw9yGgbid
19
- vSAOSmY7kARA/PWNpokk4AGSK9au2z0xM6TAGRuTeXoRswTc0u2WW+LJCNgapTVB
20
- OnclLXN9sNLJCRHWGRXwCdXd1ln1KRxtIZgnVxttHDtCL8UjpIw+JI+tGKqRwiOg
21
- HQDS8SqH4+KxR8+0XvRoVqQ3d8ozuDgtsaW6diEYXgR4z/ys9LJUiKpOB2Tquobs
22
- n9L96U0M3zUF5WGGM/Q2Ux1TY4h0OOOgEwb8V8/u0hHIJKOuDClYjTRWu7FBJRx7
23
- 2f7NqbErCfutAfm2hQpj9thMrpjgMlf68ZTcrHiK8Loq4+LZoB+bAlZ+VQb5eYvR
24
- UXfpjmEP30rnulkQFt9qwTtQUUY5/5/MeU29eoSgRg+dPKebapwxF80Fgb0CAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUmNd64gCU
26
- Me3RqaJGrXkwrpyEigswJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
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
- BgkqhkiG9w0BAQsFAAOCAYEA1RgOx9puiSkwKJn487dnDiuRSVsuBJFMZZhp+shk
29
- ajXuyuC1TXrV97c14khNoUNofRhusOTgKkO6l/ouJsObSzUIFIQHt8ljFowM7rM6
30
- ZOrFT08G0akM84d1dUCGCpTZyW7M0HmNxh4Yn2hIChejsfgwYZmesL7grqJ3WKvE
31
- KZF9E6c0A0a60gAZWXb0Of0yXTSqiX2uNEkM7STyG+yu/XzLus+z2rEYdUFaxfvW
32
- +AAeovOz8G+IQhuHZ6zG3KtRYeHq0057/tC44obGbyNOXC0twIUGJ0ajRedNKEc2
33
- OC0wzHol3qEYmVai7DkQL8xX7m3VsWd/0JbS+tzchySc/e2R1I3FAGeOSzmUSN6o
34
- 0CPM0BbOB4yUW+Ev7o3g31CsFuQ+5bCgR7n64QwTeHjlgFelmaJ1XalvnBC97S6k
35
- /B2OocR7kLmSGm860fyULSY2RzLBKLOhjQHnrSiHj6n9pWrmkd+7Zxo/up/Jq4Xv
36
- 0cPz7gMjFOVqEBQuSfoVKd9K
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: 2021-02-01 00:00:00.000000000 Z
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.1
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.1
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: james@jamesrobertson.eu
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
- rubyforge_project:
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