srscript 0.1.5 → 0.2.0

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.
Files changed (6) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/srscript.rb +25 -324
  4. data.tar.gz.sig +0 -0
  5. metadata +52 -35
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d0e739f5baffe7ec3174500b2098f3db5eb9838f
4
- data.tar.gz: 93e348cf0d5aff9bdefed17d6a32f0bed24227b4
2
+ SHA256:
3
+ metadata.gz: 0aaec929b472cc38c1c1ebbbd833312492376a1dddfe96f0dde1c241269c1dbf
4
+ data.tar.gz: 0dd51e76b3e8fb78ae987d28495c38adf89cc9bf535e7be4c4d9996a9b4bdd50
5
5
  SHA512:
6
- metadata.gz: 116ac9c38504211cd45d4621b4aae54a703c352ce02ef0d74aaacea09066e0de826e650a9ea3736b365901180fc6c6a84e18c7b9a90694dc557ba1d2242b1aba
7
- data.tar.gz: 4dcc7df3bd156374f5f8b68ec1625ec23127df42cd660ceb326a5a81743854fbdf2cc8aef52fe8cf3f2ba8a45fef20a3226163d5c8e09e402a936eaa07b1dacf
6
+ metadata.gz: 5e2ab8e3809c411c911c238c75d6670ee381b07eb091a36a54da536afeae55fd9d7fb441591fce32d4596ea6c4163db7d49ca0121cf032bfbc806cdcd49caa5f
7
+ data.tar.gz: cf4141b11dc97cc6815e9035cb25b80b843a7f2a5d0823ae0f55b707fc838af801d081ec84ee692497ff01213e420e9393cd6a945641d96e1cf282d373a5ab30
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/srscript.rb CHANGED
@@ -1,355 +1,56 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
 
3
3
  # file: srscript.rb
4
4
 
5
5
 
6
- require 'sinatra/base'
6
+ require 'sinatra'
7
7
  require 'rscript'
8
8
 
9
- class SRScript < Sinatra::Base
10
-
11
-
12
- URL_BASE = 'http://rorbuilder.info/r/heroku/' #
13
-
14
- @@count = 0
15
- @@rscript = RScript.new()
16
- @@url_base = 'http://rorbuilder.info/r/heroku/' #
17
- @@get_routes = {}; @@post_routes = {}
18
- @@services = {}
19
- @@templates = {}
20
- @@app = nil
21
- @content_type = 'text/html'
22
-
23
- puts 'ready'
24
9
 
25
- def initialize()
26
- super
27
- puts 'initialized at ' + Time.now.to_s
28
- end
29
-
30
- get '/bootstrap' do
31
-
32
- doc = Document.new(File.open('server.xml','r').read)
33
- server_name, url_base = XPath.match(doc.root, 'summary/*/text()').map(&:to_s)
34
-
35
- url = URL_BASE + 'startup-level1.rsf'
36
- run_script(url, '//job:bootstrap', server_name, url_base)
37
- end
38
10
 
11
+ class SRScriptError < Exception
12
+ end
39
13
 
40
- get '/' do
41
- uri, @content_type = @@app.run_projectx('registry', 'get-key', :path => 'system/homepage/uri/text()')
42
- redirect(uri.to_s)
43
- end
44
-
45
-
46
- configure do
47
- puts 'bootstrapping ... '
48
- doc = Document.new(File.open('server.xml','r').read)
49
- localhost = XPath.first(doc.root, 'summary/localhost/text()').to_s
50
- Thread.new {sleep 8; open(localhost + 'bootstrap', 'UserAgent' => 'srscript')}
51
- end
52
-
53
- def run_rcscript(rsf_url, jobs, raw_args=[])
54
- @@rscript.read([rsf_url, jobs.split(/\s/), raw_args].flatten)
55
- end
56
-
57
- def run_script(url, jobs, *qargs)
58
- result, args = run_rcscript(url, jobs, qargs)
59
- eval(result)
60
- end
61
-
62
- def display_url_run(url, jobs, opts)
63
- h = {'.xml' => 'text/xml','.html' => 'text/html','.txt' => 'text/plain'}
64
- @content_type = h[opts[:extension]]
65
- out = run_script(url, jobs, opts[:args])
66
-
67
- content_type @content_type, :charset => 'utf-8' if defined? content_type
68
- out
69
- end
70
-
71
- def check_url(url)
72
- url = URI.parse(url)
73
- Net::HTTP.start(url.host, url.port) do |http|
74
- return http.head(url.request_uri).code
75
- end
76
- end
77
-
78
- def package_run(package_id, job, opts={})
79
- o = {
80
- :extension => '.html',
81
- :args => []
82
- }.merge(opts)
83
- jobs = "//job:" + job
84
-
85
- url, @content_type = @@app.run_projectx('registry', 'get-key', :path => "system/packages/*[name='#{package_id}']/url/text()").map(&:to_s)
14
+ class SRScript < Sinatra::Base
86
15
 
87
- url = @@url_base + url[1..-1] if url[/^\//]
16
+ def initialize(pkg_src: nil, home_pg: nil)
88
17
 
89
- if url then
90
- display_url_run(url.to_s.sub(/^#{@@url_base}/,'\0s/open/'),jobs, o)
91
- else
18
+ raise SRScriptError, 'pkg_src cannot be nil' unless pkg_src
92
19
 
93
- code = check_url(url)
20
+ super()
21
+ @home_pg = home_pg
22
+ @url_base = pkg_src + '/'
94
23
 
95
- if code == '200' then
96
- url = "%s%s.rsf" % [@@url_base, package_id]
97
- display_url_run(url,jobs, o)
98
- else
99
- # 404
100
- url = url_base + 'open-uri-error.rsf'
101
- run_script(url, '//job:with-code', code)
102
- end
103
- end
24
+ @rscript = RScriptRW.new pkg_src: pkg_src
104
25
 
105
26
  end
106
27
 
107
28
  get '/' do
108
- uri, @content_type = @@app.run_projectx('registry', 'get-key', :path => 'system/homepage/uri/text()')
109
- redirect(uri.to_s)
110
- end
111
-
112
- get %r{^\/([a-zA-Z0-9\-]+)$} do
113
- raw_url, @content_type = @@app.run_projectx('registry', 'get-key', :path => 'system/uri_aliases/url/text()')
114
- url = raw_url.to_s.clone
115
-
116
- #url.sub!('http://rscript.rorbuilder.info/','\0s/open/')
117
- doc = Document.new(open(url, "UserAgent" => "Sinatra-Rscript").read)
118
-
119
- #url = @@url_base + "alias.xml?passthru=1"
120
- #doc = Document.new(open(url, "UserAgent" => "Sinatra-Rscript").read)
121
- node = XPath.first(doc.root, "records/alias[name='#{params[:captures][0]}' and type='r']")
122
-
123
- if node.nil? and not @@get_routes.has_key? params[:captures][0] then
124
- url = "%s%s/index.xml" % [@@url_base, params[:captures][0]]
125
- status = check_url url
126
-
127
- redirect params[:captures][0] + '/' if status == '200'
128
- # url = ...
129
- # redirect url if check_url ""params[:alias] == '200'
130
- pass
131
- else
132
- pass
133
- end
134
- uri = node.text('uri').to_s
135
-
136
- redirect uri
137
- end
138
-
139
- get '/:directory/' do
140
- open("%s%s/index.xml" % [@@url_base, params[:directory]] , 'UserAgent' => 'S-Rscript').read
141
- end
142
-
143
- get '/css/:css' do
144
-
145
- css = params[:css]
146
- key = 'css/' + css
147
-
148
- if @@get_routes.has_key? key then
149
- out, @content_type = @@get_routes[key].call(params)
150
- @content_type ||= 'text/css'
151
- content_type @content_type, :charset => 'utf-8'
152
- out
153
- else
154
- rsf_job, @content_type = @@app.run_projectx('registry', 'get-key', :path => "system/css/*[name='css/#{css}']/rsf_job/text()")
155
- if rsf_job then
156
- redirect rsf_job.to_s
157
- else
158
- # 404
159
- end
160
- end
161
- end
162
-
163
- get '/:form/form' do
164
-
165
- form = params[:form]
166
- key = form + '/form'
167
-
168
- if @@get_routes.has_key? key then
169
- out, @content_type = @@get_routes[key].call(params)
170
- @content_type ||= 'text/html'
171
- content_type @content_type, :charset => 'utf-8'
172
- out
173
- else
174
- rsf_job, @content_type = @@app.run_projectx('registry', 'get-key', :path => "system/forms/*[name='#{form}/form']/rsf_job/text()")
175
- if rsf_job then
176
- puts 'job found'
177
- redirect rsf_job.to_s
178
- else
179
- # 404
180
- end
181
- end
29
+ package, job = @home_pg.split('#',2)
30
+ run_job("%s%s.rsf" % [@url_base, package], job, params)
182
31
  end
183
32
 
184
- get '/:form/form/*' do
185
-
186
- form = params[:form]
187
- key = form + '/form'
188
- args = params[:splat]
189
-
190
- if @@get_routes.has_key? key then
191
- out, @content_type = @@get_routes[key].call(params, args)
192
- @content_type ||= 'text/html'
193
- content_type @content_type, :charset => 'utf-8'
194
- out
195
- else
196
- rsf_job, @content_type = @@app.run_projectx('registry', 'get-key', :path => "system/forms/*[name='#{form}/form']/rsf_job/text()")
197
- if rsf_job then
198
- file_path = args.length > 0 ? '/' + args.join('/') : ''
199
- puts 'form file_path : ' + file_path.to_s
200
- redirect rsf_job.to_s + file_path
201
- else
202
- # 404
203
- end
204
- end
205
- end
206
-
207
- get '/do/:package_id/:job' do
208
- package_id = params[:package_id] #
209
- job, extension = params[:job][/\.\w{3}$/] ? [$`, $&] : [params[:job], '.html']
210
- package_run(package_id, job, {:extension => extension})
211
- end
33
+ get '/do/:package/:job/*' do
212
34
 
213
- get '/view-source/:package_id/:job' do
214
- package_id = params[:package_id] #
215
- *jobs = params[:job]
216
-
217
- #url = "%s%s.rsf" % [url_base, package_id]
218
- url, @content_type = @@app.run_projectx('registry', 'get-key', :path => "system/packages/*[name='#{package_id}']/url/text()")
219
- if url then
220
-
221
- #redirect rsf_job.to_s
222
- buffer = open(url.to_s.sub(/^http:\/\/rscript.rorbuilder.info\//,'\0s/open/'), "UserAgent" => 'Sinatra-Rscript').read
223
- content_type 'text/plain', :charset => 'utf-8'
224
- doc = Document.new(buffer)
225
-
226
- jobs.map!{|x| "@id='%s'" % x}
227
- doc.root.elements.to_a("//job[#{jobs.join(' or ')}]").map do |job|
228
- job.to_s
229
- end
230
- end
231
-
232
-
233
- end
234
-
235
- get '/do/:package_id/:job/*' do
236
- h = {'.xml' => 'text/xml','.html' => 'text/html','.txt' => 'text/plain'}
237
- package_id = params[:package_id] #
238
- job, extension = params[:job][/\.\w{3}$/] ? [$`, $&] : [params[:job], '.html']
239
- jobs = "//job:" + job
240
- raw_args = params[:splat]
35
+ raw_args = params['splat']
241
36
  args = raw_args.join.split('/')
242
-
243
- package_run(package_id, job, {:extension => extension, :args => args})
37
+ run_job("%s%s.rsf" % [@url_base, params['package']], params['job'],
38
+ params, :get, args)
244
39
 
245
40
  end
246
41
 
247
- get '/view-source/:package_id' do
248
- package_id = params[:package_id] #
249
- #url = "%s%s.rsf" % [url_base, package_id]
250
- url, @content_type = @@app.run_projectx('registry', 'get-key', :path => "system/packages/*[name='#{package_id}']/url/text()")
251
- if url then
252
- buffer = open(url.to_s.sub(/^http:\/\/rscript.rorbuilder.info\//,'\0s/open/'), "UserAgent" => 'Sinatra-Rscript').read
253
- content_type 'text/plain', :charset => 'utf-8'
254
- buffer
255
- end
42
+ get '/do/:package/:job' do |package,job|
43
+ run_job("%s%s.rsf" % [@url_base, package], job, params)
256
44
  end
257
45
 
258
- get '/do/:package_id/' do
259
- redirect "/do/r/p/" + params[:package_id]
260
- end
46
+ private
261
47
 
48
+ def run_job(url, job, params={}, type=:get, *qargs)
262
49
 
263
- # projectx request
264
- get '/p/:project_name/:method_name' do
265
- project_name = params[:project_name]
266
- method_name = params[:method_name]
267
- r, @content_type = @@app.run_projectx(project_name, method_name, request.params)
268
-
269
- @content_type ||= 'text/html'
270
- content_type @content_type, :charset => 'utf-8'
271
- # todo: implement a filter to check for rexml objects to be converted to a string
272
- r
273
- end
274
-
275
-
276
- # projectx request
277
- get '/p/projectx' do
278
- xml_project = request.params.to_a[0][1]
279
- projectx_handler(xml_project)
280
- end
281
-
282
- get '/load/:package_id/:job' do
283
-
284
- package_id = params[:package_id] #
285
- job, extension = params[:job][/\.\w{3}$/] ? [$`, $&] : [params[:job], '.html']
286
- load_rsf_job2(package_id, job, route=package_id + '/' + job, extension)
287
- end
288
-
289
-
290
-
291
- def follow_route(routes, key)
292
- if routes.has_key? key then
293
- routes[key].call(params)
294
-
295
- else
296
- route = routes.detect {|k,v| key[/#{k}/]}
297
-
298
- if route then
299
- remaining = $'
300
- if remaining then
301
- args = remaining.split('/')
302
- args.shift
303
- else
304
- args = []
305
- end
306
-
307
- route[1].call( params, args)
308
-
309
- else
310
- puts '@@app is ' + @@app.inspect
311
- out, @content_type = @@app.run_projectx('dir', 'view', {:file_path => key, :passthru => params[:passthru]})
312
- [out, @content_type]
313
- #puts "no match"
314
- end
315
- end
316
- end
317
-
318
- # custom routes
319
- get '/*' do
320
- key = params[:splat].join
321
-
322
- if params.has_key? 'edit' and params[:edit] = '1' then
323
- # fetch the editor
324
- # we first need to know the file type
325
- # open the xml file
326
- url = @@url_base + key
327
- buffer = open(url.to_s.sub(/^http:\/\/rscript.rorbuilder.info\//,'\0s/open/'), "UserAgent" => 'Sinatra-Rscript').read
328
- doc = Document.new(buffer)
329
- recordx_type = XPath.first(doc.root, 'summary/recordx_type/text()').to_s
330
- uri, @content_type = @@app.run_projectx('registry', 'get-key', :path => "system/recordx_editor/#{recordx_type}/uri/text()")
331
- editor_url = @@url_base + uri.to_s + '/' + key
332
-
333
- redirect editor_url
334
- else
335
-
336
- out, content_type = follow_route(@@get_routes, key)
337
- #puts out
338
- puts 'Content type : ' + content_type unless content_type.nil?
339
- content_type ||= 'text/html'
340
- content_type content_type, :charset => 'utf-8'
341
- out
342
- end
343
- end
50
+ @rscript.type = type
51
+ result, args = @rscript.read([url, '//job:' + job, qargs].flatten)
52
+ r = eval result
344
53
 
345
- post '/*' do
346
- key = params[:splat].join
347
- out, content_type = follow_route(@@post_routes, key)
348
- #puts 'sss' + out.to_s
349
- #out = follow_route(@@post_routes, key)
350
- content_type ||= 'text/html'
351
- content_type content_type, :charset => 'utf-8'
352
- out
353
54
  end
354
55
 
355
- end
56
+ end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: srscript
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,57 +10,75 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDRDCCAiygAwIBAgIBADANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTEzMDIwNjIxMDYyN1oXDTE0MDIwNjIxMDYyN1owSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBANd9dfY4pYA20eSePArM2mbotk15L2F7Qg9TWAsCfWWqltZwoMg9UX19LjGR
19
- P9k3znGXZsZufo91Xosx67st2E1iwL3OlTfdxok7NaJ7QYU6668qY2C4K/f0RtMs
20
- guNM+dJly8r8KdLJ66HJ5bXvf+MQ+RvRSxqIYt0LsA81JZEy2rQXcOx2F6q+S2OJ
21
- qKqaqEGyq7PicShXzJocyGtQvf538dfF/edCLD79iEIUbHokYJALFsuCknOiXffR
22
- qCzMqPZke40T4gjK0qXjjtQQQNvi+rKgv27+k02181117BPZLLj/pHM9B9/Owx/M
23
- DhFWYPvCuUyDy+VfzlaXXgT0u30CAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4E
24
- FgQUKHg/9vNIaGCbbkTNigc/OfnNHzYwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEB
25
- BQUAA4IBAQC2aHH+cBVLQf8MKW+vz4/15qXV/qRfVo+uL3QQEZjtX13XrgGfjrLL
26
- ZQYJ9Qx7rWRJNtQbxG1OEJFViX7QH5r+ElnhyteWa0LenYpsLXf2Rdqny9Pd2Zhh
27
- CQOwDCDXKt12rvh95eWKdtavk5jobVLGWZlX1pPbKXBjr3Ua1BmddIKMDM0sijzv
28
- aPkBMJTgV6D0ToN5DojyPWGys7xUAnC2drd57ztKK9mZPlVUVUP7ZmTIpTncgMJQ
29
- ZDjUblT6kOoS2GYI+2MxVyMsWc4tKtCX7Zbzv5h7uX57FgL0AdKxpXfDbMKMk+Tv
30
- iFh4gBdpaP47qEQUk0iiURIX2/vjlEBl
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMzA5MjIzNjE1WhcN
15
+ MjMwMzA5MjIzNjE1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDHKxjh
17
+ ZpGjjKRT4iIosaCoTSoqIfZ39SUU0V2nY5aTCY6WA1/GYDr2rcobxxSNa9P6cA6B
18
+ xKdKWUBKoU1A8Zfrv2fKJU5r5TKnFZod7KaGJQLSCcZA5hDOV0tt6qPKhZaAmlKm
19
+ XLp4yQXtDDGsTPtD1zCMCBH6B3PrWSaP6wwevRg5rG5mLcM/I+PBN9W2uocpTZN1
20
+ DUPjVXlo0vUzFErzf1YqowbgL70gZNYaIXbh94eSAJqIl32VfNNM+0rESNd9yYty
21
+ 3dRiYvLnYh1dA5RmDdNQaajU8+uHMfidfgqgEpvuAvC+c017lriTP/LRAewZRg1J
22
+ aAvgXTgCjRdqF3SKX1ErWgdc+hivGkque0huAUk4QQ1vTJytvyuH7og6lSORg29F
23
+ sQVzHHAihLu4N3UTjhm0B+I7R/ROhK1G8W453HBhXZDQjWohLJSsmsNvkyl1DDu2
24
+ P11hNYay3zYr5L9t6v7Pq1vmCTF/3o921ACb0vKb9IiqhO1gDy6rprSZAckCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU5Xn66R4k
26
+ A1lOu07s8nG0Q3O8hRcwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAU+mpOg2I7sm+9fKRedWEfF+luyt+hNwymZ7uwAMF
29
+ 8nPytLkvc0QWFxGPjThQ0hyqgqWCLd7FjGFKwA+w4uPg2II0Gnc3ma57MCEroYtr
30
+ cJxRA6F12HNY8zctS8rqEn6qYy9ah0ZVIgJDHN3wrnyR9L9of0k8J1FJbrcseyvl
31
+ IoWLe0QeSnvGaWQDCLU11dYcTy5ZvGOEpMPISsQ5gtCEoXdT2EIX8pQ0aogOE6/8
32
+ qsPY+HWMhVeiCoUGT4gBWV27Pm1tkh0nSdoIMJiSiVfhfWyKRLqTdzsGpS6G1XAh
33
+ U12gY1Lt1MrgDDcgmCLu4N7CxVJx/eVkS9V7cu65Q2D5YMe9IL9C7jgUZmB4oZkA
34
+ W60Ynnyc+GlLuzw+mI84MWVK/tf749G1XsaMvx2nnp86qdGfLf7xrGWawbKWJxi3
35
+ 2z1HlZv8zwgUdcV5iOVRfftvVqIXZESN34zxHHSgp9A0zmsLDe0wbOSybmRVGNhj
36
+ tWWpys05YhRty+oDHm6vgumf
31
37
  -----END CERTIFICATE-----
32
- date: 2013-07-27 00:00:00.000000000 Z
38
+ date: 2022-03-09 00:00:00.000000000 Z
33
39
  dependencies:
34
40
  - !ruby/object:Gem::Dependency
35
41
  name: sinatra
36
42
  requirement: !ruby/object:Gem::Requirement
37
43
  requirements:
38
- - - '>='
44
+ - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '0'
46
+ version: '2.2'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 2.2.0
41
50
  type: :runtime
42
51
  prerelease: false
43
52
  version_requirements: !ruby/object:Gem::Requirement
44
53
  requirements:
45
- - - '>='
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '2.2'
57
+ - - ">="
46
58
  - !ruby/object:Gem::Version
47
- version: '0'
59
+ version: 2.2.0
48
60
  - !ruby/object:Gem::Dependency
49
61
  name: rscript
50
62
  requirement: !ruby/object:Gem::Requirement
51
63
  requirements:
52
- - - '>='
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '0.9'
67
+ - - ">="
53
68
  - !ruby/object:Gem::Version
54
- version: '0'
69
+ version: 0.9.0
55
70
  type: :runtime
56
71
  prerelease: false
57
72
  version_requirements: !ruby/object:Gem::Requirement
58
73
  requirements:
59
- - - '>='
74
+ - - "~>"
60
75
  - !ruby/object:Gem::Version
61
- version: '0'
76
+ version: '0.9'
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: 0.9.0
62
80
  description:
63
- email: james@r0bertson.co.uk
81
+ email: digital.robertson@gmail.com
64
82
  executables: []
65
83
  extensions: []
66
84
  extra_rdoc_files: []
@@ -76,18 +94,17 @@ require_paths:
76
94
  - lib
77
95
  required_ruby_version: !ruby/object:Gem::Requirement
78
96
  requirements:
79
- - - '>='
97
+ - - ">="
80
98
  - !ruby/object:Gem::Version
81
- version: '0'
99
+ version: 2.1.2
82
100
  required_rubygems_version: !ruby/object:Gem::Requirement
83
101
  requirements:
84
- - - '>='
102
+ - - ">="
85
103
  - !ruby/object:Gem::Version
86
104
  version: '0'
87
105
  requirements: []
88
- rubyforge_project:
89
- rubygems_version: 2.0.0.rc.2
106
+ rubygems_version: 3.2.22
90
107
  signing_key:
91
108
  specification_version: 4
92
- summary: srscript
109
+ summary: A Sinatra based web server used as a rscript proxy.
93
110
  test_files: []
metadata.gz.sig CHANGED
Binary file