rack-rscript 1.1.9 → 1.2.3

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: a2d9082990c984616d9a1e5df565d4691931b996646569380500cfef752ff0af
4
- data.tar.gz: 851c3dcf2920516de03778abda5bcbee715e846a419431758fb8756992319023
3
+ metadata.gz: 6d065f87d5e3da283e01c8c83906b1ff8c47b83bcb988303ca74c1992b18c6f5
4
+ data.tar.gz: 85232d65a5635ebd2f7f3bfcfc18f3e1dbc8aa0e601feacc1a91506a577894a8
5
5
  SHA512:
6
- metadata.gz: e97d68f52d58c1fe00e019a51a8579b2aab3046dc4c82602f5857a88e91821542fc608f0e2f99a599a8becb9388599645911ea0c0ef46966abfa4aa553464e60
7
- data.tar.gz: f25c004d25a0c65fc94900a1fcd3342e6f47849daf5a0ffab8f989ef172aceb5d69c0369459e2772c41928ceb9bcae74758d65d04a1380eee1a3e72422a1fe12
6
+ metadata.gz: e537f297872d82494924488c6519a120d00a621057801b118338235c088d5eb1ee50d6d06dc4d9ea3abc2a94d3bcd3c072e1de4c55685913a2e1cb59acf94c3d
7
+ data.tar.gz: 6b466d9f51bfeb33915d5462caf05a4d048cd1c4ca0fa384056eee13ad301ab400c4f8390c36cb536ce865c5432504d94887850ebbee48851531a14519969507
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/rack-rscript.rb CHANGED
@@ -17,7 +17,7 @@ require 'polyrex-links'
17
17
 
18
18
  class Redirect
19
19
  attr_reader :to_url
20
-
20
+
21
21
  def initialize(url)
22
22
  @to_url = url
23
23
  end
@@ -33,62 +33,65 @@ class RackRscript
33
33
  include AppRoutes
34
34
  include RXFHelperModule
35
35
  using ColouredText
36
-
37
- attr_reader :req
38
-
39
-
40
- def initialize(log: nil, pkg_src: '', cache: 5, rsc_host: nil,
36
+
37
+ attr_reader :req, :rsc
38
+
39
+
40
+ def initialize(log: nil, pkg_src: '', cache: 5, rsc_host: nil,
41
+ rsc: {host: rsc_host, port: '61000'},
41
42
  pxlinks: nil, debug: false, root: '', static: {})
42
43
 
43
44
  @log, @debug, @static = log, debug, static
44
- #=begin
45
+ #=begin
45
46
  puts '@app_root: ' + @app_root.inspect if @debug
46
47
  puts 'root: ' + root.inspect if @debug
47
-
48
+
48
49
  @params = {}
49
-
50
+
50
51
  @templates = {}
51
-
52
+
52
53
  @rscript = RScriptRW.new log: log, pkg_src: pkg_src, cache: cache, debug: true
53
54
  @render = NThrut.new(self)
54
-
55
+
55
56
  @url_base = pkg_src # web server serving the RSF files
56
- @url_base += '/' unless @url_base[-1] == '/'
57
-
57
+ @url_base += '/' unless @url_base[-1] == '/'
58
+
58
59
  if pxlinks then
59
-
60
+
60
61
  src, _ = RXFHelper.read(pxlinks)
61
-
62
+
62
63
  if src =~ /^<\?/ then
63
-
64
+
64
65
  @pxlinks = PolyrexLinks.new src
65
-
66
+
66
67
  else
67
-
68
+
68
69
  @pxlinks = PolyrexLinks.new
69
70
  @pxlinks.parse pxlinks
70
-
71
- end
72
-
71
+
72
+ end
73
+
73
74
  end
74
75
 
75
76
  super() # required for app-routes initialize method to exectue
76
- default_routes(@env, @params)
77
-
77
+ default_routes(@env, @params || {})
78
+
78
79
  @rsc = nil
79
80
 
80
- @rsc = RSC.new rsc_host if rsc_host and rsc_host.length > 0
81
-
81
+ if rsc[:host] and rsc[:host].length > 0 then
82
+ @rsc = RSC.new(rsc[:host], port: rsc[:port])
83
+ end
84
+
82
85
  @filetype = {xml: 'application/xml', html: 'text/html', png: 'image/png',
83
86
  jpg: 'image/jpeg', txt: 'text/plain', css: 'text/css',
84
- xsl: 'application/xml', svg: 'image/svg+xml'}
85
-
87
+ xsl: 'application/xml', svg: 'image/svg+xml'}
88
+
86
89
  @root, @static = root, static
87
90
  @initialized = {}
88
91
  #=end
89
92
  end
90
93
 
91
- def call(env)
94
+ def call(env, testmode: false)
92
95
 
93
96
 
94
97
  @env = env
@@ -96,22 +99,28 @@ class RackRscript
96
99
  #raw_request = env['REQUEST_PATH']
97
100
 
98
101
  @log.info 'RackRscript/call: ' + env.inspect if @log
99
- @req = Rack::Request.new(env)
100
102
 
101
- @req_params = @req.params
103
+ if testmode == false then
104
+
105
+ @req = Rack::Request.new(env)
106
+ @req_params = @req.params
107
+
108
+ end
109
+
102
110
  default_routes(env,@params)
103
-
111
+
104
112
  request = if @pxlinks then
105
113
  found = @pxlinks.locate(raw_request)
106
114
  found ? found.join : raw_request
107
115
  else
108
116
  raw_request
109
117
  end
110
-
118
+
111
119
  @log.info 'RackRscript/call/request: ' + request.inspect if @log
112
- #=begin
120
+ #=begin
121
+ puts 'request: ' + request.inspect if @debug
113
122
  run_request(request)
114
- #=end
123
+ #=end
115
124
  # [200, {"Content-Type" => "text/plain"}, [env.inspect]]
116
125
  end
117
126
 
@@ -119,169 +128,211 @@ class RackRscript
119
128
  @rscript.reset
120
129
  end
121
130
 
122
- def run_job(url, jobs, params={}, type=:get, *qargs)
131
+ def run_job(url, job, params={}, type=:get, *qargs)
123
132
 
133
+ puts 'inside run_job' if @debug
124
134
  @log.debug 'RackRscript/run_job/params: ' + params.inspect if @log
125
135
  @log.debug 'RackRscript/run_job/qargs: ' + qargs.inspect if @log
126
-
136
+
127
137
  if @params[:splat] then
128
138
  @params.each do |k,v|
129
139
  @params.delete k unless k == :splat or k == :package \
130
140
  or k == :job or k == :captures
131
141
  end
132
- end
133
-
142
+ end
143
+
134
144
  if @params[:splat] and @params[:splat].length > 0 then
135
- h = @params[:splat].first[1..-1].split('&').inject({}) do |r,x|
145
+ h = @params[:splat].first[1..-1].split('&').inject({}) do |r,x|
136
146
  k, v = x.split('=')
137
147
  v ? r.merge(k[/\w+$/].to_sym => Rack::Utils.unescape(v)) : r
138
148
  end
139
149
  @params.merge! h
140
150
  end
141
-
142
- @params.merge! @req.params
151
+
152
+ @params.merge! @req.params if @req
143
153
  @rscript.type = type
144
- result, args = @rscript.read([url, jobs.split(/\s/), \
154
+
155
+ if not @rscript.jobs(url).include?(job.to_sym) then
156
+
157
+ if @rscript.jobs(url).include?(:job_missing) then
158
+ job = 'job_missing'
159
+ else
160
+ [404, 'job not found']
161
+ end
162
+
163
+ end
164
+
165
+ result, args = @rscript.read([url, '//job:' + job, \
145
166
  qargs].flatten)
146
167
 
147
168
  rws = self
148
- rsc = @rsc if @rsc
169
+ rsc = @rsc if @rsc
149
170
  req = @req if @req
150
-
171
+
151
172
  begin
152
-
153
- if @rscript.jobs(url).include? :initialize and
154
- !@initialized[url] and jobs != 'initialize' then
155
- @rscript.run([url, '//job:initialize'])
173
+
174
+ if @debug then
175
+ puts @rscript.jobs(url).inspect
176
+ puts 'job: ' + job.inspect
177
+ puts 'url: ' + url.inspect
178
+ puts '@initialized: ' + @initialized.inspect
179
+ bflag = @rscript.jobs(url).include?(:initialize) and \
180
+ !@initialized[url] and job != 'initialize'
181
+ puts 'bflag: ' + bflag.inspect
182
+ end
183
+
184
+ if @rscript.jobs(url).include?(:initialize) and
185
+ !@initialized[url] and job != 'initialize' then
186
+ puts 'before run initialize' if @debug
187
+ r2 = @rscript.read([url, '//job:initialize'])
188
+ puts 'r2: ' + r2.inspect if @debug
189
+ eval r2.join
156
190
  @initialized[url] = true
157
191
  end
158
-
192
+
193
+
159
194
  r = eval result
195
+
160
196
  return r
161
197
 
162
- rescue Exception => e
163
-
198
+ rescue Exception => e
199
+
164
200
  @params = {}
165
- err_label = e.message.to_s + " :: \n" + e.backtrace.join("\n")
201
+ err_label = e.message.to_s + " :: \n" + e.backtrace.join("\n")
166
202
  raise RackRscriptError, err_label
167
203
 
168
204
  @log.debug 'RackRscript/run_job/error: ' + err_label if @log
169
205
  end
170
-
206
+
171
207
  end
172
208
 
173
-
209
+
174
210
  def redirect(url)
175
211
  Redirect.new url
176
212
  end
177
-
213
+
178
214
  # jr 140616 not yet used and still needs to be tested
179
215
  def transform(xsl, xml)
180
216
  Rexslt.new(xsl, xml).to_s
181
217
  end
182
218
 
183
- def haml(name,options={})
219
+ def haml(name,options={})
184
220
  @render.haml name, options
185
- end
186
-
221
+ end
222
+
187
223
  def slim(name,options={})
188
224
  @render.slim name, options
189
- end
190
-
225
+ end
226
+
191
227
  protected
192
228
 
193
229
  def default_routes(env, params)
194
230
 
195
231
  @log.info 'RackRscript/default_routes: ' + params.inspect if @log
196
-
232
+
197
233
  get '/do/:package/:job' do |package,job|
198
234
  @log.info 'RackRscript/route/do/package/job: ' + [package, job].inspect if @log
199
- run_job("%s%s.rsf" % [@url_base, package], "//job:" + job, params)
200
- end
235
+ run_job("%s%s.rsf" % [@url_base, package], job, params)
236
+ end
237
+
238
+ get '/:dir/do/:package/:job' do |dir, package, job|
239
+ run_job(("%s%s/%s.rsf" % [@url_base, dir, package]), job, params)
240
+ end
201
241
 
202
- get /\/(.*)\/do\/(\w+)\/(\w+)/ do |d, package,job|
203
- run_job(("%s%s/%s.rsf" % [@url_base, d, package]),
204
- "//job:" + job, params)
205
- end
242
+ get '/:dir/do/:package/:job/*' do |dir, package, job|
243
+ raw_args = params[:splat]
244
+ args = raw_args.first[/[^\s\?]+/].to_s.split('/')[1..-1]
245
+ run_job(("%s%s/%s.rsf" % [@url_base, dir, package]), job, params, :get, args)
246
+ end
206
247
 
207
248
  post '/do/:package/:job' do |package,job|
208
- run_job("%s%s.rsf" % [@url_base, package], "//job:" + job, params, :post)
249
+ run_job("%s%s.rsf" % [@url_base, package], job, params, :post)
209
250
  end
210
-
251
+
252
+ post '/:dir/do/:package/:job' do |dir, package,job|
253
+ run_job(("%s%s/%s.rsf" % [@url_base, dir, package]), job, params, :post)
254
+ end
255
+
211
256
  get '/do/:package/:job/*' do |package, job|
212
257
  raw_args = params[:splat]
213
258
  args = raw_args.first[/[^\s\?]+/].to_s.split('/')[1..-1]
214
- run_job("%s%s.rsf" % [@url_base, package], "//job:" + job, params, :get, args)
259
+ run_job("%s%s.rsf" % [@url_base, package], job, params, :get, args)
215
260
  end
216
261
 
217
262
  post '/do/:package/:job/*' do |package, job|
218
263
  raw_args = params[:splat]
219
264
  args = raw_args.first[/[^\s\?]+/].to_s.split('/')[1..-1]
220
- run_job("%s%s.rsf" % [@url_base, package], "//job:" + job, params, :post, args)
265
+ run_job("%s%s.rsf" % [@url_base, package], job, params, :post, args)
266
+ end
267
+
268
+ post '/:dir/do/:package/:job/*' do |package, job|
269
+ raw_args = params[:splat]
270
+ args = raw_args.first[/[^\s\?]+/].to_s.split('/')[1..-1]
271
+ run_job("%s%s/%s.rsf" % [@url_base, dir, package], job, params, :post, args)
221
272
  end
222
273
 
223
274
  get '/source/:package/:job' do |package,job|
224
275
  url = "%s%s.rsf" % [@url_base, package]
225
- [@rscript.read([url, '//job:' + job]).first, 'text/plain']
226
- end
276
+ [@rscript.read([url, job]).first, 'text/plain']
277
+ end
227
278
 
228
279
  get '/source/:package' do |package,job|
229
-
280
+
230
281
  url = "%s%s.rsf" % [@url_base, package]
231
282
 
232
283
  begin
233
-
284
+
234
285
  [RXFHelper.read(url).first,'text/plain']
235
286
 
236
287
  rescue
237
-
288
+
238
289
  ['url: ' + url + '; ' + ($!).inspect + \
239
290
  'couldn\'t find that package', 'text/plain']
240
291
  end
241
292
 
242
- end
293
+ end
243
294
 
244
295
  get '/ls' do
245
-
296
+
246
297
  FileX.exists? @url_base
247
298
  filepath = @url_base
248
-
299
+
249
300
  [Dir.glob(filepath + '/*.rsf').map{|x| x[/([^\/]+)\.rsf$/,1]}.to_json,\
250
301
  'application/json']
251
302
 
252
- end
253
-
303
+ end
304
+
254
305
  if @static.any? then
255
-
306
+
256
307
  get /^(\/(?:#{@static.keys.join('|')}).*)/ do |raw_path|
257
308
 
258
309
  _, file, tailpath = raw_path.split('/',3)
259
-
310
+
260
311
  filepath = if @static[file].empty? then
261
-
312
+
262
313
  path = raw_path
263
314
  puts 'path: ' + path.inspect if @debug
264
- filepath = File.join(@app_root, @root, path )
265
-
315
+ filepath = File.join(@app_root, @root, path )
316
+
266
317
  else
267
-
268
- File.join(@static[file], tailpath)
269
-
318
+
319
+ File.join(@static[file], tailpath)
320
+
270
321
  end
271
322
 
272
- @log.debug 'RackRscript/default_routes/filepath: ' + filepath.inspect if @log
323
+ @log.debug 'RackRscript/default_routes/filepath: ' + filepath.inspect if @log
273
324
 
274
325
 
275
326
  if @log then
276
- @log.info 'DandelionS1/default_routes: ' +
327
+ @log.info 'DandelionS1/default_routes: ' +
277
328
  "root: %s path: %s" % [@root, path]
278
329
  end
279
330
 
280
331
  if filepath.length < 1 or filepath[-1] == '/' then
281
- filepath += 'index.html'
332
+ filepath += 'index.html'
282
333
  FileX.read filepath
283
334
  elsif FileX.directory? filepath then
284
- Redirect.new (filepath + '/')
335
+ Redirect.new (filepath + '/')
285
336
  elsif FileX.exists? filepath then
286
337
 
287
338
  content_type = @filetype[filepath[/\w+$/].to_sym]
@@ -301,27 +352,39 @@ class RackRscript
301
352
  else
302
353
  Time.now.inspect
303
354
  end
304
-
355
+
356
+ end
357
+
358
+ # file exists?
359
+ a = Dir.glob( File.join(@root.to_s, '*')).select do |x|
360
+ File::ftype(x) == 'directory'
361
+ end
362
+
363
+ get /^\/#{a.join('|')}/ do
364
+
365
+ 'found' + a.inspect
366
+
305
367
  end
306
368
 
307
369
  end
308
-
370
+
309
371
  def run_request(request)
310
-
372
+
311
373
  #@log.debug 'inside run_request: ' + request.inspect if @log
312
374
  #@log.debug 'inside run_request @env: ' + @env.inspect if @log
313
375
  method_type = @env ? @env['REQUEST_METHOD'] : 'GET'
314
- content, content_type, status_code = run_route(request, method_type)
376
+ content, content_type, status_code = run_route(request, method_type)
315
377
  @log.info 'RackRscript/run_request/content: ' + content.inspect if @log
316
-
378
+ #puts 'content: ' + content.inspect if @debug
379
+
317
380
  #@log.debug 'inside run_request' if @log
318
381
  if content.is_a? Redirect then
319
-
382
+
320
383
  redirectx = content
321
384
  res = Rack::Response.new
322
385
  res.redirect(redirectx.to_url)
323
- res.finish
324
-
386
+ res.finish
387
+
325
388
  else
326
389
 
327
390
  e = $!
@@ -330,18 +393,18 @@ class RackRscript
330
393
  content, status_code = e, 500
331
394
  @log.debug 'RackRscript/call/error: ' + e if @log
332
395
  elsif content.nil? then
333
- content, status_code = "404: page not found", 404
334
- end
396
+ content, status_code = "404: page not found", 404
397
+ end
335
398
 
336
- tilt_proc = lambda do |s, content_type|
399
+ tilt_proc = lambda do |s, content_type|
337
400
  type = content_type[/[^\/]+$/]
338
401
  s = [s,{}] unless s.is_a? Array
339
402
  content, options = s
340
403
  [Tilt[type].new() {|x| content}.render(self, options), 'text/html']
341
404
  end
342
-
405
+
343
406
  passthru_proc = lambda{|c, ct| [c,ct]}
344
-
407
+
345
408
  ct_list = {
346
409
  'text/html' => passthru_proc,
347
410
  'text/haml' => tilt_proc,
@@ -355,62 +418,26 @@ class RackRscript
355
418
  'application/json' => passthru_proc,
356
419
  'image/png' => passthru_proc,
357
420
  'image/jpeg' => passthru_proc,
358
- 'image/svg+xml' => passthru_proc
421
+ 'image/svg+xml' => passthru_proc
359
422
  }
360
-
423
+
361
424
  content_type ||= 'text/html'
362
- status_code ||= 200
425
+ status_code ||= 200
363
426
  proc = ct_list[content_type]
364
427
  proc ||= passthru_proc
365
- content, content_type = proc.call(content, content_type)
366
-
428
+ content, content_type = proc.call(content, content_type)
429
+
367
430
  [status_code, {"Content-Type" => content_type}, [content]]
368
- end
369
-
431
+ end
432
+
370
433
  end
371
-
434
+
372
435
  alias jumpto run_request
373
436
 
374
437
  private
375
438
 
376
- def render99(name, type, opt={})
377
-
378
- options = {locals: {}}.merge!(opt)
379
- locals = options.delete :locals
380
-
381
- unless @templates[:layout] then
382
- template(:layout, type) { File.read('views/layout.' + type.to_s) }
383
- end
384
-
385
- layout = Tilt[type.to_s].new(options) {|x| @templates[:layout][:content]}
386
-
387
- unless @templates[name] then
388
- template(name, type) { File.read("views/%s.%s" % [name.to_s, type.to_s])}
389
- end
390
-
391
- template = Tilt[type.to_s].new(options) {|x| @templates[name][:content]}
392
- layout.render{ template.render(self, locals)}
393
- end
394
-
395
439
  def template(name, type=nil, &blk)
396
440
  @render.template name, type, &blk
397
- end
398
-
399
- def template99(name, type=nil, &blk)
400
- @templates.merge!({name => {content: blk.call, type: type}})
401
- @templates[name]
402
- end
403
-
404
- def tilt99(name, options={})
405
-
406
- options = {locals: {}}.merge!(opt)
407
- locals = options.delete :locals
408
- layout = Tilt[@templates[:layout][:type].to_s].new(options)\
409
- {|x| @templates[:layout][:content]}
410
- template = Tilt[@templates[name][:type].to_s].new(options) \
411
- {|x| @templates[name][:content]}
412
- layout.render{ template.render(self, locals)}
413
-
414
- end
415
-
441
+ end
442
+
416
443
  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.1.9
4
+ version: 1.2.3
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: 2020-07-04 00:00:00.000000000 Z
38
+ date: 2021-12-30 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rack
@@ -166,7 +166,7 @@ dependencies:
166
166
  version: '0.4'
167
167
  - - ">="
168
168
  - !ruby/object:Gem::Version
169
- version: 0.4.4
169
+ version: 0.4.5
170
170
  type: :runtime
171
171
  prerelease: false
172
172
  version_requirements: !ruby/object:Gem::Requirement
@@ -176,29 +176,29 @@ dependencies:
176
176
  version: '0.4'
177
177
  - - ">="
178
178
  - !ruby/object:Gem::Version
179
- version: 0.4.4
179
+ version: 0.4.5
180
180
  - !ruby/object:Gem::Dependency
181
181
  name: polyrex-links
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- version: 0.3.0
187
184
  - - "~>"
188
185
  - !ruby/object:Gem::Version
189
- version: '0.3'
186
+ version: '0.4'
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: 0.4.3
190
190
  type: :runtime
191
191
  prerelease: false
192
192
  version_requirements: !ruby/object:Gem::Requirement
193
193
  requirements:
194
- - - ">="
195
- - !ruby/object:Gem::Version
196
- version: 0.3.0
197
194
  - - "~>"
198
195
  - !ruby/object:Gem::Version
199
- version: '0.3'
196
+ version: '0.4'
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: 0.4.3
200
200
  description:
201
- email: james@jamesrobertson.eu
201
+ email: digital.robertson@gmail.com
202
202
  executables: []
203
203
  extensions: []
204
204
  extra_rdoc_files: []
@@ -223,7 +223,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
223
  - !ruby/object:Gem::Version
224
224
  version: '0'
225
225
  requirements: []
226
- rubygems_version: 3.0.3
226
+ rubyforge_project:
227
+ rubygems_version: 2.7.10
227
228
  signing_key:
228
229
  specification_version: 4
229
230
  summary: Rack-Rscript is a light-weight alternative to Sinatra-Rscript.
metadata.gz.sig CHANGED
Binary file