rack-rscript 0.4.3 → 0.4.4

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 (2) hide show
  1. data/lib/rack-rscript.rb +25 -14
  2. metadata +2 -2
data/lib/rack-rscript.rb CHANGED
@@ -5,12 +5,15 @@
5
5
 
6
6
  require 'rscript'
7
7
  require 'app-routes'
8
+ require 'requestor'
9
+ require 'logger'
8
10
 
9
11
  class RackRscript
10
12
  include AppRoutes
11
13
 
12
14
  def initialize(raw_opts={})
13
-
15
+ @params = {}
16
+
14
17
  opts = {logfile: '', logrotate: 'daily', pkg_src: ''}.merge(raw_opts)
15
18
  @url_base = opts[:pkg_src] # web server serving the RSF files
16
19
  @url_base += '/' unless @url_base[-1] == '/'
@@ -28,9 +31,13 @@ class RackRscript
28
31
  def call(env)
29
32
  request = env['REQUEST_URI'][/https?:\/\/[^\/]+(.*)/,1]
30
33
 
31
- log Time.now.to_s + ": " + request
34
+ log Time.now.to_s + ": " + request.inspect
32
35
  content, content_type, status_code = run_route(request)
33
- content, status_code = "404: page not found", 404 if content.nil?
36
+ if content.nil? then
37
+ e = $!
38
+ log(e) if e
39
+ content, status_code = "404: page not found", 404
40
+ end
34
41
 
35
42
  content_type ||= 'text/html'
36
43
  status_code ||= 200
@@ -39,28 +46,36 @@ class RackRscript
39
46
 
40
47
 
41
48
  def run_job(url, jobs, params={}, *qargs)
42
- if params[:splat] and params[:splat].length > 0 then
43
- h = params[:splat].first[1..-1].split('&').inject({}) do |r,x|
49
+
50
+ if @params[:splat] and @params[:splat].length > 0 then
51
+ h = @params[:splat].first[1..-1].split('&').inject({}) do |r,x|
44
52
  k, v = x.split('=')
45
53
  r.merge(k.to_sym => v)
46
54
  end
47
- params.merge! h
55
+ @params.merge! h
48
56
  end
49
57
 
58
+
50
59
  result, args = RScript.new.read([url, jobs.split(/\s/), \
51
60
  qargs].flatten)
52
61
  rws = self
53
62
 
54
63
  begin
55
64
  r = eval result
56
- # jr040612 @params = {}
65
+ #@params = {}
57
66
  return r
58
67
 
59
68
  rescue Exception => e
60
-
69
+ @params = {}
61
70
  err_label = e.message.to_s + " :: \n" + e.backtrace.join("\n")
62
71
  log(err_label)
63
- ($!).to_s
72
+ end
73
+
74
+ end
75
+
76
+ def log(msg)
77
+ if @log == true then
78
+ @logger.debug msg
64
79
  end
65
80
  end
66
81
 
@@ -79,9 +94,5 @@ class RackRscript
79
94
  end
80
95
  end
81
96
 
82
- def log(msg)
83
- if @log == true then
84
- @logger.debug msg
85
- end
86
- end
97
+
87
98
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rack-rscript
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.3
5
+ version: 0.4.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - James Robertson
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-06-04 00:00:00 Z
13
+ date: 2012-07-13 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rack