rack-rscript 1.1.7 → 1.2.1

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: 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