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