Class: RackRscript

Inherits:
Object
  • Object
show all
Defined in:
lib/rack_rscript.rb

Instance Method Summary collapse

Constructor Details

#initialize(url = 'http://rorbuilder.info/r/heroku-rack/') ⇒ RackRscript

Returns a new instance of RackRscript.



5
6
7
8
# File 'lib/rack_rscript.rb', line 5

def initialize(url='http://rorbuilder.info/r/heroku-rack/')
  @@version = '0.3.1'
  @url_base = url
end

Instance Method Details

#call(env) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rack_rscript.rb', line 16

def call(env)
  req = Rack::Request.new(env)
  package_id, *jobs = req.params['package'], req.params['job']
  *args = req.params['arg']

  url = "%s%s.rsf" % [@url_base, package_id] 
  @content_type = "text/html"

  code = run_rcscript(url, jobs, args).first
  content = eval(code)    
  [200, {"Content-Type" => @content_type}, [content]]
end

#run_rcscript(rsf_url, jobs, arg = '') ⇒ Object



10
11
12
13
14
# File 'lib/rack_rscript.rb', line 10

def run_rcscript(rsf_url, jobs, arg='')
  args = [jobs.map {|x| "//job:" + x}.join("\n"), rsf_url]
  rs = RScript.new()
  rs.run(args)
end