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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/rack-rscript.rb +186 -141
- data.tar.gz.sig +0 -0
- metadata +60 -79
- 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: eb8f81937a9057df995fed0866db887efb7d3b51821c94fd8981be81443fc0fb
|
4
|
+
data.tar.gz: 4145e73c58a2ae1de7e636b576e33a51ac08a021b631e54aef864bc8e1753352
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
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'][
|
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
|
-
|
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,
|
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
|
-
|
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,
|
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,
|
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
|
-
|
177
|
-
|
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+)
|
180
|
-
run_job(("%s%s/%s.rsf" % [@url_base, d, package]),
|
181
|
-
|
182
|
-
|
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],
|
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],
|
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],
|
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,
|
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
|
-
@
|
372
|
-
|
373
|
-
|
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
|
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
|
-
|
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-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.
|
46
|
+
version: '2.2'
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 2.
|
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.
|
56
|
+
version: '2.2'
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 2.
|
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.
|
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.
|
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.
|
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.
|
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
|
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
|
136
|
+
version: 4.1.0
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '4.1'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
141
|
+
name: rexslt
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
144
|
- - ">="
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
146
|
+
version: 0.7.0
|
147
147
|
- - "~>"
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version: '
|
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:
|
156
|
+
version: 0.7.0
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
159
|
+
version: '0.7'
|
160
160
|
- !ruby/object:Gem::Dependency
|
161
|
-
name:
|
161
|
+
name: rsc
|
162
162
|
requirement: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: '0.
|
166
|
+
version: '0.4'
|
167
167
|
- - ">="
|
168
168
|
- !ruby/object:Gem::Version
|
169
|
-
version: 0.
|
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.
|
176
|
+
version: '0.4'
|
177
177
|
- - ">="
|
178
178
|
- !ruby/object:Gem::Version
|
179
|
-
version: 0.
|
179
|
+
version: 0.4.5
|
180
180
|
- !ruby/object:Gem::Dependency
|
181
|
-
name:
|
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:
|
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
|
-
|
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
|