rack-rscript 1.2.0 → 1.3.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: 35ab3661aa2c2f191b140e28dbda3805f32a97e6a3eaf6c1f410e30f411d6b6c
4
- data.tar.gz: b6d2ba9fd30c7ae71571f69918583c8206cd0d5dbebd89dd796e4f35d44662d0
3
+ metadata.gz: c7d34cb833bf0422cdcde6fbd6ca2af9f4c6dbb5588d83cb72a4ff53cb3ad938
4
+ data.tar.gz: 4e20d1dd5709d4fbbf3bf05c6696947a0474b4c5047512cd41ca8a67181d66e4
5
5
  SHA512:
6
- metadata.gz: 216dc0e7c0e24231bf0e0fbb7d6cd5550cf9bf027a37b860102f909a378c608c78c806f51ab1b170a4b5880d0fc021311cd23d2d42782b56dc200ffa15eacde4
7
- data.tar.gz: da45f89a5e37161bf83a9c63cdc8830e69ed949241f004990db59e67e7d21d33d9533932df96de08f5136339d1d61b81589d73fa9814149a0fe20997a93f0845
6
+ metadata.gz: f1ac22e48c0333b4a1892dee3d7885e14bf7aa5f8b5f8816f31a3f94718ebcc9e92f0f9faaa089f6baa781a86cf34ebeebd967d54531e444d26dd45eec9a4bdb
7
+ data.tar.gz: 3b0620c345d7933bfb9bd9b0bd5f2e176e63925a6e33c1146de5939aa99bee0859d3b5a6912100857378d74d20b78f9afb1f4b9e27b2cac1315a29b9df1c34d9
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/rack-rscript.rb CHANGED
@@ -13,11 +13,12 @@ require 'rscript'
13
13
  require 'app-routes'
14
14
  require 'uri'
15
15
  require 'polyrex-links'
16
+ require 'nthrut'
16
17
 
17
18
 
18
19
  class Redirect
19
20
  attr_reader :to_url
20
-
21
+
21
22
  def initialize(url)
22
23
  @to_url = url
23
24
  end
@@ -33,56 +34,59 @@ class RackRscript
33
34
  include AppRoutes
34
35
  include RXFHelperModule
35
36
  using ColouredText
36
-
37
+
37
38
  attr_reader :req, :rsc
38
-
39
-
40
- def initialize(log: nil, pkg_src: '', cache: 5, rsc_host: nil,
39
+
40
+
41
+ def initialize(log: nil, pkg_src: '', cache: 5, rsc_host: nil,
42
+ rsc: {host: rsc_host, port: '61000'},
41
43
  pxlinks: nil, debug: false, root: '', static: {})
42
44
 
43
45
  @log, @debug, @static = log, debug, static
44
- #=begin
46
+ #=begin
45
47
  puts '@app_root: ' + @app_root.inspect if @debug
46
48
  puts 'root: ' + root.inspect if @debug
47
-
49
+
48
50
  @params = {}
49
-
51
+
50
52
  @templates = {}
51
-
53
+
52
54
  @rscript = RScriptRW.new log: log, pkg_src: pkg_src, cache: cache, debug: true
53
55
  @render = NThrut.new(self)
54
-
56
+
55
57
  @url_base = pkg_src # web server serving the RSF files
56
- @url_base += '/' unless @url_base[-1] == '/'
57
-
58
+ @url_base += '/' unless @url_base[-1] == '/'
59
+
58
60
  if pxlinks then
59
-
61
+
60
62
  src, _ = RXFHelper.read(pxlinks)
61
-
63
+
62
64
  if src =~ /^<\?/ then
63
-
65
+
64
66
  @pxlinks = PolyrexLinks.new src
65
-
67
+
66
68
  else
67
-
69
+
68
70
  @pxlinks = PolyrexLinks.new
69
71
  @pxlinks.parse pxlinks
70
-
71
- end
72
-
72
+
73
+ end
74
+
73
75
  end
74
76
 
75
77
  super() # required for app-routes initialize method to exectue
76
- default_routes(@env, @params || {})
77
-
78
+ default_routes(@env, @params || {})
79
+
78
80
  @rsc = nil
79
81
 
80
- @rsc = RSC.new rsc_host if rsc_host and rsc_host.length > 0
81
-
82
+ if rsc[:host] and rsc[:host].length > 0 then
83
+ @rsc = RSC.new(rsc[:host], port: rsc[:port])
84
+ end
85
+
82
86
  @filetype = {xml: 'application/xml', html: 'text/html', png: 'image/png',
83
87
  jpg: 'image/jpeg', txt: 'text/plain', css: 'text/css',
84
- xsl: 'application/xml', svg: 'image/svg+xml'}
85
-
88
+ xsl: 'application/xml', svg: 'image/svg+xml'}
89
+
86
90
  @root, @static = root, static
87
91
  @initialized = {}
88
92
  #=end
@@ -96,28 +100,28 @@ class RackRscript
96
100
  #raw_request = env['REQUEST_PATH']
97
101
 
98
102
  @log.info 'RackRscript/call: ' + env.inspect if @log
99
-
103
+
100
104
  if testmode == false then
101
-
105
+
102
106
  @req = Rack::Request.new(env)
103
107
  @req_params = @req.params
104
-
108
+
105
109
  end
106
-
110
+
107
111
  default_routes(env,@params)
108
-
112
+
109
113
  request = if @pxlinks then
110
114
  found = @pxlinks.locate(raw_request)
111
115
  found ? found.join : raw_request
112
116
  else
113
117
  raw_request
114
118
  end
115
-
119
+
116
120
  @log.info 'RackRscript/call/request: ' + request.inspect if @log
117
- #=begin
121
+ #=begin
118
122
  puts 'request: ' + request.inspect if @debug
119
123
  run_request(request)
120
- #=end
124
+ #=end
121
125
  # [200, {"Content-Type" => "text/plain"}, [env.inspect]]
122
126
  end
123
127
 
@@ -130,46 +134,46 @@ class RackRscript
130
134
  puts 'inside run_job' if @debug
131
135
  @log.debug 'RackRscript/run_job/params: ' + params.inspect if @log
132
136
  @log.debug 'RackRscript/run_job/qargs: ' + qargs.inspect if @log
133
-
137
+
134
138
  if @params[:splat] then
135
139
  @params.each do |k,v|
136
140
  @params.delete k unless k == :splat or k == :package \
137
141
  or k == :job or k == :captures
138
142
  end
139
- end
140
-
143
+ end
144
+
141
145
  if @params[:splat] and @params[:splat].length > 0 then
142
- h = @params[:splat].first[1..-1].split('&').inject({}) do |r,x|
146
+ h = @params[:splat].first[1..-1].split('&').inject({}) do |r,x|
143
147
  k, v = x.split('=')
144
148
  v ? r.merge(k[/\w+$/].to_sym => Rack::Utils.unescape(v)) : r
145
149
  end
146
150
  @params.merge! h
147
151
  end
148
-
152
+
149
153
  @params.merge! @req.params if @req
150
154
  @rscript.type = type
151
-
155
+
152
156
  if not @rscript.jobs(url).include?(job.to_sym) then
153
-
157
+
154
158
  if @rscript.jobs(url).include?(:job_missing) then
155
- job = 'job_missing'
159
+ job = 'job_missing'
156
160
  else
157
161
  [404, 'job not found']
158
162
  end
159
163
 
160
164
  end
161
-
165
+
162
166
  result, args = @rscript.read([url, '//job:' + job, \
163
167
  qargs].flatten)
164
168
 
165
169
  rws = self
166
- rsc = @rsc if @rsc
170
+ rsc = @rsc if @rsc
167
171
  req = @req if @req
168
-
172
+
169
173
  begin
170
174
 
171
175
  if @debug then
172
- puts @rscript.jobs(url).inspect
176
+ puts @rscript.jobs(url).inspect
173
177
  puts 'job: ' + job.inspect
174
178
  puts 'url: ' + url.inspect
175
179
  puts '@initialized: ' + @initialized.inspect
@@ -177,74 +181,79 @@ class RackRscript
177
181
  !@initialized[url] and job != 'initialize'
178
182
  puts 'bflag: ' + bflag.inspect
179
183
  end
180
-
181
- if @rscript.jobs(url).include?(:initialize) and
184
+
185
+ if @rscript.jobs(url).include?(:initialize) and
182
186
  !@initialized[url] and job != 'initialize' then
183
187
  puts 'before run initialize' if @debug
184
- r2 = @rscript.read([url, '//job:initialize'])
188
+ r2 = @rscript.read([url, '//job:initialize'])
185
189
  puts 'r2: ' + r2.inspect if @debug
186
190
  eval r2.join
187
191
  @initialized[url] = true
188
192
  end
189
-
193
+
190
194
 
191
195
  r = eval result
192
196
 
193
197
  return r
194
198
 
195
- rescue Exception => e
196
-
199
+ rescue Exception => e
200
+
197
201
  @params = {}
198
- err_label = e.message.to_s + " :: \n" + e.backtrace.join("\n")
202
+ err_label = e.message.to_s + " :: \n" + e.backtrace.join("\n")
199
203
  raise RackRscriptError, err_label
200
204
 
201
205
  @log.debug 'RackRscript/run_job/error: ' + err_label if @log
202
206
  end
203
-
207
+
204
208
  end
205
209
 
206
-
210
+
207
211
  def redirect(url)
208
212
  Redirect.new url
209
213
  end
210
-
214
+
211
215
  # jr 140616 not yet used and still needs to be tested
212
216
  def transform(xsl, xml)
213
217
  Rexslt.new(xsl, xml).to_s
214
218
  end
215
219
 
216
- def haml(name,options={})
220
+ def haml(name,options={})
217
221
  @render.haml name, options
218
- end
219
-
222
+ end
223
+
220
224
  def slim(name,options={})
221
225
  @render.slim name, options
222
- end
223
-
226
+ end
227
+
224
228
  protected
225
229
 
226
230
  def default_routes(env, params)
227
231
 
228
232
  @log.info 'RackRscript/default_routes: ' + params.inspect if @log
229
-
233
+
230
234
  get '/do/:package/:job' do |package,job|
231
235
  @log.info 'RackRscript/route/do/package/job: ' + [package, job].inspect if @log
232
- run_job("%s%s.rsf" % [@url_base, package], job, params)
233
- end
234
-
235
- get /\/(.*)\/do\/(\w+)\/(\w+)$/ do |d, package,job|
236
- run_job(("%s%s/%s.rsf" % [@url_base, d, package]), job, params)
237
- end
238
-
239
- get /\/(.*)\/do\/(\w+)\/(\w+)\/(.*)/ do |d, package, job, raw_args|
240
- args = raw_args.split('/')
241
- run_job(("%s%s/%s.rsf" % [@url_base, d, package]), job, params, :get, args)
242
- end
236
+ run_job("%s%s.rsf" % [@url_base, package], job, params)
237
+ end
238
+
239
+ get '/:dir/do/:package/:job' do |dir, package, job|
240
+ run_job(("%s%s/%s.rsf" % [@url_base, dir, package]), job, params)
241
+ end
242
+
243
+ get '/:dir/do/:package/:job/*' do |dir, package, job|
244
+ raw_args = params[:splat]
245
+ args = raw_args.first[/[^\s\?]+/].to_s.split('/')[1..-1]
246
+ run_job(("%s%s/%s.rsf" % [@url_base, dir, package]), job, params, :get, args)
247
+ end
243
248
 
244
249
  post '/do/:package/:job' do |package,job|
245
- run_job("%s%s.rsf" % [@url_base, package], job, params, :post)
250
+ run_job("%s%s.rsf" % [@url_base, package], job, params, :post)
251
+ end
252
+
253
+ post '/:dir/do/:package/:job' do |dir, package,job|
254
+ run_job(("%s%s/%s.rsf" % [@url_base, dir, package]), job, params, :post)
246
255
  end
247
-
256
+
248
257
  get '/do/:package/:job/*' do |package, job|
249
258
  raw_args = params[:splat]
250
259
  args = raw_args.first[/[^\s\?]+/].to_s.split('/')[1..-1]
@@ -257,68 +266,74 @@ class RackRscript
257
266
  run_job("%s%s.rsf" % [@url_base, package], job, params, :post, args)
258
267
  end
259
268
 
269
+ post '/:dir/do/:package/:job/*' do |package, job|
270
+ raw_args = params[:splat]
271
+ args = raw_args.first[/[^\s\?]+/].to_s.split('/')[1..-1]
272
+ run_job("%s%s/%s.rsf" % [@url_base, dir, package], job, params, :post, args)
273
+ end
274
+
260
275
  get '/source/:package/:job' do |package,job|
261
276
  url = "%s%s.rsf" % [@url_base, package]
262
277
  [@rscript.read([url, job]).first, 'text/plain']
263
- end
278
+ end
264
279
 
265
280
  get '/source/:package' do |package,job|
266
-
281
+
267
282
  url = "%s%s.rsf" % [@url_base, package]
268
283
 
269
284
  begin
270
-
285
+
271
286
  [RXFHelper.read(url).first,'text/plain']
272
287
 
273
288
  rescue
274
-
289
+
275
290
  ['url: ' + url + '; ' + ($!).inspect + \
276
291
  'couldn\'t find that package', 'text/plain']
277
292
  end
278
293
 
279
- end
294
+ end
280
295
 
281
296
  get '/ls' do
282
-
297
+
283
298
  FileX.exists? @url_base
284
299
  filepath = @url_base
285
-
300
+
286
301
  [Dir.glob(filepath + '/*.rsf').map{|x| x[/([^\/]+)\.rsf$/,1]}.to_json,\
287
302
  'application/json']
288
303
 
289
- end
290
-
304
+ end
305
+
291
306
  if @static.any? then
292
-
307
+
293
308
  get /^(\/(?:#{@static.keys.join('|')}).*)/ do |raw_path|
294
309
 
295
310
  _, file, tailpath = raw_path.split('/',3)
296
-
311
+
297
312
  filepath = if @static[file].empty? then
298
-
313
+
299
314
  path = raw_path
300
315
  puts 'path: ' + path.inspect if @debug
301
- filepath = File.join(@app_root, @root, path )
302
-
316
+ filepath = File.join(@app_root, @root, path )
317
+
303
318
  else
304
-
305
- File.join(@static[file], tailpath)
306
-
319
+
320
+ File.join(@static[file], tailpath)
321
+
307
322
  end
308
323
 
309
- @log.debug 'RackRscript/default_routes/filepath: ' + filepath.inspect if @log
324
+ @log.debug 'RackRscript/default_routes/filepath: ' + filepath.inspect if @log
310
325
 
311
326
 
312
327
  if @log then
313
- @log.info 'DandelionS1/default_routes: ' +
328
+ @log.info 'DandelionS1/default_routes: ' +
314
329
  "root: %s path: %s" % [@root, path]
315
330
  end
316
331
 
317
332
  if filepath.length < 1 or filepath[-1] == '/' then
318
- filepath += 'index.html'
333
+ filepath += 'index.html'
319
334
  FileX.read filepath
320
335
  elsif FileX.directory? filepath then
321
- Redirect.new (filepath + '/')
336
+ Redirect.new (filepath + '/')
322
337
  elsif FileX.exists? filepath then
323
338
 
324
339
  content_type = @filetype[filepath[/\w+$/].to_sym]
@@ -338,28 +353,39 @@ class RackRscript
338
353
  else
339
354
  Time.now.inspect
340
355
  end
341
-
356
+
357
+ end
358
+
359
+ # file exists?
360
+ a = Dir.glob( File.join(@root.to_s, '*')).select do |x|
361
+ File::ftype(x) == 'directory'
362
+ end
363
+
364
+ get /^\/#{a.join('|')}/ do
365
+
366
+ 'found' + a.inspect
367
+
342
368
  end
343
369
 
344
370
  end
345
-
371
+
346
372
  def run_request(request)
347
-
373
+
348
374
  #@log.debug 'inside run_request: ' + request.inspect if @log
349
375
  #@log.debug 'inside run_request @env: ' + @env.inspect if @log
350
376
  method_type = @env ? @env['REQUEST_METHOD'] : 'GET'
351
- content, content_type, status_code = run_route(request, method_type)
377
+ content, content_type, status_code = run_route(request, method_type)
352
378
  @log.info 'RackRscript/run_request/content: ' + content.inspect if @log
353
379
  #puts 'content: ' + content.inspect if @debug
354
380
 
355
381
  #@log.debug 'inside run_request' if @log
356
382
  if content.is_a? Redirect then
357
-
383
+
358
384
  redirectx = content
359
385
  res = Rack::Response.new
360
386
  res.redirect(redirectx.to_url)
361
- res.finish
362
-
387
+ res.finish
388
+
363
389
  else
364
390
 
365
391
  e = $!
@@ -368,18 +394,18 @@ class RackRscript
368
394
  content, status_code = e, 500
369
395
  @log.debug 'RackRscript/call/error: ' + e if @log
370
396
  elsif content.nil? then
371
- content, status_code = "404: page not found", 404
372
- end
397
+ content, status_code = "404: page not found", 404
398
+ end
373
399
 
374
- tilt_proc = lambda do |s, content_type|
400
+ tilt_proc = lambda do |s, content_type|
375
401
  type = content_type[/[^\/]+$/]
376
402
  s = [s,{}] unless s.is_a? Array
377
403
  content, options = s
378
404
  [Tilt[type].new() {|x| content}.render(self, options), 'text/html']
379
405
  end
380
-
406
+
381
407
  passthru_proc = lambda{|c, ct| [c,ct]}
382
-
408
+
383
409
  ct_list = {
384
410
  'text/html' => passthru_proc,
385
411
  'text/haml' => tilt_proc,
@@ -393,26 +419,26 @@ class RackRscript
393
419
  'application/json' => passthru_proc,
394
420
  'image/png' => passthru_proc,
395
421
  'image/jpeg' => passthru_proc,
396
- 'image/svg+xml' => passthru_proc
422
+ 'image/svg+xml' => passthru_proc
397
423
  }
398
-
424
+
399
425
  content_type ||= 'text/html'
400
- status_code ||= 200
426
+ status_code ||= 200
401
427
  proc = ct_list[content_type]
402
428
  proc ||= passthru_proc
403
- content, content_type = proc.call(content, content_type)
404
-
429
+ content, content_type = proc.call(content, content_type)
430
+
405
431
  [status_code, {"Content-Type" => content_type}, [content]]
406
- end
407
-
432
+ end
433
+
408
434
  end
409
-
435
+
410
436
  alias jumpto run_request
411
437
 
412
438
  private
413
-
439
+
414
440
  def template(name, type=nil, &blk)
415
441
  @render.template name, type, &blk
416
- end
417
-
442
+ end
443
+
418
444
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-rscript
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwNjI4MTA0NTMzWhcN
15
- MjEwNjI4MTA0NTMzWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC++hKM
17
- OkDJ8KaD3zDoCEYnfM3w0zHKKGDhTr5pAWeFG3uSMEDpjSFjpDTNLRQnYXnAlkTQ
18
- iqnnkZ3PgKD2DrL3Tebb7i1xxiYDEV8uQJApP51MPd/bgdLka8y1Z/gNx0o5N42Z
19
- biScnOGCSwl1XpQHVgO+zhhLoPhsb4rneuOZRrT14OiHb5ERJilqE5DJhhErymQv
20
- Cs5NDHjLp39Ui3jpe0j3qdNMWBH49V7tXREIyKaM/vjDQGvaS/NX4jLGw0YVdMCE
21
- W8yadDcqRDWkFK7cz+omnIUZHGu6tcJA2oTeL/plSfJneyUXxMAAqarmm9jKWGiE
22
- Sa9icmAmueF4fjrPm8wiXcrOwDiCS0nAAOsiXnfrwJq+IKZDdvfiYrbJYqV3jpxO
23
- Zc47nGjO3oH85YcaWd0IQqpt+c0CVzRTy3wBK35xDSI9oRh3Io3qZq8YnJxpCTtR
24
- f/tFJkOfA97aDaU+n6NflYphEJgQIbNR8g5HH6aYMC1hV9NHBSj9C0+IPL0CAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUotFCdsTq
26
- oF0+c4sgqZqQGAzOATIwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjExMjI5MTgxNDQyWhcN
15
+ MjIxMjI5MTgxNDQyWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC86yKR
17
+ KdjeR2YaKGfHPYSq+dF7O6QO+iCllVNfuVLgdZ46E35mBPMRNiXkwu3nnzEcdKnp
18
+ gN23mnWcl/riMqR6I+aymlqzFuqOeeOEl/A4T/fCcuhGx7DZmOEKJx0a58L/o3/K
19
+ X8LriVIA2fqKXpXlwcsbH9LuHHCGCXzDrw2sfJOevCkPZmGC+4YmY/Ma77gBiJL3
20
+ 1NAvfEAY2/Mm3SnKC/QR26cWo4ZT6cVqCvd6NcjnRbe2/4MkV+QRzG9bjR/jXv/p
21
+ d5IimipfEw3rvqzCZqSmqC7ZPXAJhCm3VfwrVr6AaUkOiov0elBBDEU7tN4rpLAd
22
+ AP/FQSDjA3+ElDiDQFfTgqqepIcoGZqsm+ct/MuHMVQzaBCHs/LQXTNIJDsv5oOq
23
+ YswOTDTE4j//Du1ySuCyboVDDQjeMNj7Xzr6gmQaelHrcC/Ax18fFVMMQS3CykUP
24
+ FPPwXgaqhMvO6IigDhif6bxOr9GWkR3wAOAZcdPTJuI69kXsDIppd8wvwBcCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUedc2Phvh
26
+ fegWTvjwW6u98RQNLiEwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAaEAg7AuqvVp/0qFr40orUDsiWgUri6xIAr7HN+Iu
29
- EYDxIn873j5HorzAcrhKkfb9dNyJnpraac1Hpn9yqg7hIeW/mU0LIM9wNe4S9yTI
30
- IOh0hhqsyeas7UwaZA220Bx23yyxque7E9P+fqn5I4RwtJXn/kDXZHiarKfvFTH1
31
- mduzu/04uoC0dYEAL/ASvOr/EMxD+N9/vtoxR4+bj4W8WXozy9ySAlpuKwDuVXmc
32
- twljCSdBB5QG11CH/7S+k4JMhN9vx+n4R2tNqouqyE0/Smyn+gXfYHR5jXqOzGFa
33
- wmNbJU6Nt9ro9mFunXiNVM3t85KOb7HptOAv7uAu+yNHzDX6iDy43y1wwTN9Ca+0
34
- 468xA07gVSZnQMLOLNcZE6qcx5MZVkhjTlWVchzBAusC2pb37Ut8jXn+q92nqCw9
35
- tilHf4Ok7vnZYPnxQk5PY3q28lYoflnB47YIc0pdkJHI1M3YXL/HxrcZCEIHAU3W
36
- aTCBK3Pk2/LQtqaW3yaSg73t
28
+ BgkqhkiG9w0BAQsFAAOCAYEAT8rbqnsRYicLTmcGmLHEvSAn/KEdyqbSSuuD0Kfr
29
+ SCVHCqTl53smpdKgBboZH9ZVr946vYtCZ/rtd1pVpEo/ENcWcaNaV4NhK6n/njCX
30
+ UBZ9Pdy0obZwP8k+nykQdQqDYUqiW/BXo1SB/BdkPOVu5mRYmx7yHuuj2vZpMmxM
31
+ lv4IN0rEyJXBtkcLQbGdQcRT9/b1/FLPAsuxEX7mFdSQrFufNLGcGzWl/c51a5Xo
32
+ SI76WH1OLRawRbeI9RS81zY/+Ku4K/plSqzynwuB52HFY4gEHtWlDMjJLdA98Pr8
33
+ z+AnDPyf+tgyo6PzzxVnEsp0GLrP1zKa4+NKXGXnbtDtPn7zQL3NamT39nPFzHfp
34
+ 7wFc43V/b0NugGvugJlSjM4y4rHww2j0aKMTJDGGJK0e51BLG1Hs3c/SckeGIk3r
35
+ uQ8ts8x2DfuJYY/PmLbqwXkzMzb1EgnUBWZ3mZCdlL0UBst5ypPAFTn1b2qRUC92
36
+ UtKkOrrEmCXrBnFtpv6a1ULk
37
37
  -----END CERTIFICATE-----
38
- date: 2021-01-18 00:00:00.000000000 Z
38
+ date: 2022-01-15 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rack
@@ -181,24 +181,44 @@ dependencies:
181
181
  name: polyrex-links
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '0.4'
184
187
  - - ">="
185
188
  - !ruby/object:Gem::Version
186
- version: 0.3.0
189
+ version: 0.4.3
190
+ type: :runtime
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
187
194
  - - "~>"
188
195
  - !ruby/object:Gem::Version
189
- version: '0.3'
196
+ version: '0.4'
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: 0.4.3
200
+ - !ruby/object:Gem::Dependency
201
+ name: nthrut
202
+ requirement: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: 0.1.0
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '0.1'
190
210
  type: :runtime
191
211
  prerelease: false
192
212
  version_requirements: !ruby/object:Gem::Requirement
193
213
  requirements:
194
214
  - - ">="
195
215
  - !ruby/object:Gem::Version
196
- version: 0.3.0
216
+ version: 0.1.0
197
217
  - - "~>"
198
218
  - !ruby/object:Gem::Version
199
- version: '0.3'
219
+ version: '0.1'
200
220
  description:
201
- email: james@jamesrobertson.eu
221
+ email: digital.robertson@gmail.com
202
222
  executables: []
203
223
  extensions: []
204
224
  extra_rdoc_files: []
metadata.gz.sig CHANGED
Binary file