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