rack-rscript 1.1.7 → 1.2.1

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