cuca 0.07 → 0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG +10 -0
- data/README.md +51 -0
- data/application_skeleton/app/test.rb +16 -0
- data/application_skeleton/conf/config.rb +8 -1
- data/application_skeleton/public/dispatch-fwdev.cgi +3 -1
- data/application_skeleton/public/dispatch.cgi +1 -1
- data/application_skeleton/public/dispatch.fcgi +1 -1
- data/application_skeleton/scripts/server-lighttpd-fcgi.rb +43 -4
- data/application_skeleton/scripts/server-lighttpd.rb +58 -5
- data/application_skeleton/scripts/server-webrick.rb +1 -1
- data/application_skeleton/tests/functional/basic.rb +32 -0
- data/bin/cuca +7 -3
- data/lib/cuca.rb +1 -1
- data/lib/cuca/app.rb +44 -31
- data/lib/cuca/cgi_emu.rb +17 -6
- data/lib/cuca/const.rb +1 -1
- data/lib/cuca/controller.rb +0 -2
- data/lib/cuca/generator/view.rb +7 -5
- data/lib/cuca/mimetypes.rb +2 -0
- data/lib/cuca/sessionpage.rb +18 -4
- data/lib/cuca/stdlib/README +2 -0
- data/lib/cuca/stdlib/form.rb +1 -1
- data/lib/cuca/stdlib/listwidget/dblist.rb +13 -2
- data/lib/cuca/stdlib/listwidget/querydef.rb +11 -17
- data/lib/cuca/test/helpers.rb +55 -2
- data/lib/cuca/urlmap.rb +18 -9
- data/tests/all.rb +4 -1
- data/tests/controller.rb +26 -9
- data/tests/test_app/app/test.rb +0 -0
- data/tests/urlmap.rb +7 -0
- data/tests/widget.rb +2 -2
- metadata +106 -128
- data/README +0 -43
- data/application_skeleton/public/dispatch.cgi-old +0 -18
- data/application_skeleton/public/dispatch.fcgi-old +0 -25
- data/application_skeleton/scripts/rack-test.rb +0 -52
- data/application_skeleton/scripts/server-rack-thin.rb +0 -40
- data/application_skeleton/scripts/server-rack-webrick.rb +0 -22
- data/lib/cuca/stdlib/old_arform.rb +0 -254
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2642f8b68bb957ae09ac2c04c73533bb3812d15a
|
4
|
+
data.tar.gz: 13ddcc6f74af2fc5efb19c513caabc89eb9256c1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5d2e104a1abbb3a428c34c20cf10b5fe6618c159fd855829466f84123e6b63211536acc4e081d2892aa60552651346f00330cded2c37121ac9fd8e592289eccb
|
7
|
+
data.tar.gz: 4b4e8e0d019ffd3290805571faef4bbe3f34af5494972bde6f4d5fc12cfb123d22390f70c6d0e5dd825ac9b80feaeae037dabce54bd9ba430be4f8f8572462f7
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
* 2014/12/31 - 0.11
|
2
|
+
- Few fixes & cleanup
|
3
|
+
- Ruby 2.1.0 support
|
4
|
+
|
5
|
+
* 2013/xx/xx - 0.10
|
6
|
+
- Ruby 1.9 support
|
7
|
+
- functional tests
|
8
|
+
|
9
|
+
* 2009 - 2013 ... big gap of changes done without publishing anything... ;)
|
10
|
+
|
1
11
|
* 2009/xx/xx - 0.07
|
2
12
|
- 'stop' option :cancel_execution added. This can be raised in before filters
|
3
13
|
and will avoid that the run/get/post... methods are called.
|
data/README.md
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# Cuca - a web application framework
|
2
|
+
|
3
|
+
Cuca is another web application framework written in Ruby. It's made to
|
4
|
+
build applications with focus on functionality - less design. You can
|
5
|
+
create and application without writing HTML. Once written Widgets
|
6
|
+
(a smart screen element) can be reused thorough your project with
|
7
|
+
minimum effort allowing to build fast and secure web applications.
|
8
|
+
|
9
|
+
It implements the following concepts:
|
10
|
+
* A Widget is a screen element. Can be a full page or part of it.
|
11
|
+
The Controller and the Layout are Widgets, too.
|
12
|
+
* A Controller deals with one request URI (get, post or both) and can set variables
|
13
|
+
other widgets can make use of. It can also define a Layout and filters.
|
14
|
+
* A Layout wraps the output of a controller and finally return the
|
15
|
+
built web page.
|
16
|
+
* A Generator (NOT "code generator") can be used within any Widget to help building the web content.
|
17
|
+
Cuca comes with a Markaby and eruby Generator.
|
18
|
+
* A Session can used optionally to keep stateful data.
|
19
|
+
|
20
|
+
Cuca was written for internal use in 2008 and as per 2013 we keep using and improving it.
|
21
|
+
|
22
|
+
### It implements the following concepts:
|
23
|
+
* A Widget is a screen element. Can be a full page or part of it.
|
24
|
+
The Controller and the Layout are Widgets, too.
|
25
|
+
* A Controller deals with one request URI (get, post or both) and can set variables
|
26
|
+
other widgets can make use of. It can also define a Layout and filters.
|
27
|
+
* A Layout wraps the output of a controller and finally return the
|
28
|
+
built web page.
|
29
|
+
* A Generator (NOT "code generator") can be used within any Widget to help building the web content.
|
30
|
+
Cuca comes with a Markaby and eruby Generator.
|
31
|
+
* A Session can used optionally to keep stateful data.
|
32
|
+
|
33
|
+
## Installation & Getting started
|
34
|
+
|
35
|
+
Download and install from the internet:
|
36
|
+
|
37
|
+
gem install --remote cuca
|
38
|
+
|
39
|
+
## Create an application skeleton:
|
40
|
+
|
41
|
+
cuca my_project # this will create a new project
|
42
|
+
cd my_project
|
43
|
+
ruby ./script/server-webrick.rb
|
44
|
+
|
45
|
+
Open http://localhost:2000/
|
46
|
+
|
47
|
+
|
48
|
+
## Read on
|
49
|
+
|
50
|
+
Check the rdoc once installed
|
51
|
+
|
@@ -24,6 +24,9 @@ Cuca::App.configure do |config|
|
|
24
24
|
### in lower levels of your directory layout.
|
25
25
|
config.include_directories = %w{_controllers _layouts _models _widgets}
|
26
26
|
|
27
|
+
# How to name the controller class in a file (make sure this matches include_directories if you want autoload
|
28
|
+
# config.controller_naming = lambda { |f| f.capitalize+"Controller" } # <= the default
|
29
|
+
|
27
30
|
### This would be an autoload configuration
|
28
31
|
# config.include_directories = [
|
29
32
|
# { :dir => '_controllers', :class_naming => lambda { |f| f.capitalize+'Controller' } },
|
@@ -42,7 +45,11 @@ Cuca::App.configure do |config|
|
|
42
45
|
|
43
46
|
### the view generator will look for external templates here:
|
44
47
|
# config.view_directory = 'app/_views'
|
45
|
-
|
48
|
+
|
49
|
+
### Force encoding of views to this one, if undefined default external
|
50
|
+
### encoding will be used. Encoding name must be accepted by Ruby Encoding class
|
51
|
+
# config.view_encoding = 'UTF-8'
|
52
|
+
|
46
53
|
### 404 (file not found) and 500 system error page (relative to the public folder)
|
47
54
|
# config.http_404 = '404.html'
|
48
55
|
# config.http_500 = '500.html'
|
@@ -1,13 +1,52 @@
|
|
1
|
-
#!/usr/bin/ruby
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This will create a simple FastCGI lighttpd config file and run against the cuca application
|
4
|
+
#
|
5
|
+
|
6
|
+
require 'ostruct'
|
7
|
+
require 'optparse'
|
8
|
+
|
9
|
+
options = OpenStruct.new
|
10
|
+
options.dispatcher = 'dispatch.fcgi'
|
11
|
+
options.port = 2000
|
12
|
+
options.lighttpd = 'lighttpd'
|
13
|
+
|
14
|
+
op = OptionParser.new do |opts|
|
15
|
+
opts.banner = "Usage: server-lighttpd-fcgi.rb [options]"
|
16
|
+
opts.on("-pPORT", "--port=NAME", "TCP Port to listen on (2000)") do |x|
|
17
|
+
options.port = x
|
18
|
+
end
|
19
|
+
|
20
|
+
opts.on("-lPROGRAM", "--lighttpd=PROGRAM", "The lighttpd binary (/usr/sbin/lighttpd)") do |d|
|
21
|
+
options.lighttpd = d
|
22
|
+
end
|
23
|
+
|
24
|
+
opts.on("-dDISPATCHER", "--dispatcher=DISPATCHER", "The cgi program in public/ directory (dispatch.cgi)") do |d|
|
25
|
+
options.dispatcher = d
|
26
|
+
end
|
27
|
+
opts.on("-h", "--help", "Help") do
|
28
|
+
puts opts
|
29
|
+
exit 0
|
30
|
+
end
|
31
|
+
end.parse!(ARGV)
|
32
|
+
|
33
|
+
|
34
|
+
cuca_path = File.expand_path(File.dirname(__FILE__))+"/../"
|
35
|
+
|
36
|
+
if !File.exist?(cuca_path + "/public/" + options.dispatcher) then
|
37
|
+
STDERR.puts "Can't find dispatcher #{options.dispatcher} in public directory, use -d"
|
38
|
+
exit 1
|
39
|
+
end
|
40
|
+
|
2
41
|
|
3
42
|
cuca_path = File.expand_path(File.dirname(__FILE__)+"/../")
|
4
43
|
document_root = "#{cuca_path}/public/"
|
5
44
|
error_log = "#{cuca_path}/log/error.log"
|
6
45
|
access_log = "#{cuca_path}/log/access.log"
|
7
46
|
pid_file = '/tmp/lighttpd.pid'
|
8
|
-
dispatcher =
|
9
|
-
server_port =
|
10
|
-
server_program =
|
47
|
+
dispatcher = options.dispatcher
|
48
|
+
server_port = options.port
|
49
|
+
server_program = options.lighttpd
|
11
50
|
|
12
51
|
config = <<-EOF
|
13
52
|
|
@@ -1,12 +1,65 @@
|
|
1
|
-
#!/usr/bin/ruby
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This will create a simple CGI lighttpd config file and run against the cuca application
|
4
|
+
#
|
5
|
+
# Takes one optional argument the full path the the ruby interpreter to use
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'ostruct'
|
9
|
+
require 'optparse'
|
10
|
+
|
11
|
+
options = OpenStruct.new
|
12
|
+
options.ruby_interpreter = '/usr/bin/ruby'
|
13
|
+
options.dispatcher = 'dispatch.cgi'
|
14
|
+
options.port = 2000
|
15
|
+
options.lighttpd = 'lighttpd'
|
16
|
+
|
17
|
+
op = OptionParser.new do |opts|
|
18
|
+
opts.banner = "Usage: server-lighttpd.rb [options]"
|
19
|
+
opts.on("-pPORT", "--port=NAME", "TCP Port to listen on (2000)") do |x|
|
20
|
+
options.port = x
|
21
|
+
end
|
22
|
+
opts.on("-iRUBY", "--interpreter=RUBY", "The ruby binary (/usr/bin/ruby)") do |d|
|
23
|
+
options.ruby_interpreter = d
|
24
|
+
end
|
25
|
+
opts.on("-lPROGRAM", "--lighttpd=PROGRAM", "The lighttpd binary (/usr/sbin/lighttpd)") do |d|
|
26
|
+
options.lighttpd = d
|
27
|
+
end
|
28
|
+
|
29
|
+
opts.on("-dDISPATCHER", "--dispatcher=DISPATCHER", "The cgi program in public/ directory (dispatch.cgi)") do |d|
|
30
|
+
options.dispatcher = d
|
31
|
+
end
|
32
|
+
opts.on("-h", "--help", "Help") do
|
33
|
+
puts opts
|
34
|
+
exit 0
|
35
|
+
end
|
36
|
+
end.parse!(ARGV)
|
37
|
+
|
38
|
+
|
39
|
+
if !File.exist?(options.ruby_interpreter) then
|
40
|
+
STDERR.puts "Can't find ruby interpreter, use -i"
|
41
|
+
exit 1
|
42
|
+
end
|
43
|
+
|
44
|
+
#if !File.exist?(options.lighttpd) then
|
45
|
+
# STDERR.puts "Can't find lighttpd binary use -l"
|
46
|
+
# exit 1
|
47
|
+
#end
|
2
48
|
|
3
49
|
cuca_path = File.expand_path(File.dirname(__FILE__))+"/../"
|
50
|
+
|
51
|
+
if !File.exist?(cuca_path + "/public/" + options.dispatcher) then
|
52
|
+
STDERR.puts "Can't find dispatcher #{options.dispatcher} in public directory, use -d"
|
53
|
+
exit 1
|
54
|
+
end
|
55
|
+
|
56
|
+
|
4
57
|
document_root = "#{cuca_path}/public/"
|
5
58
|
error_log = "#{cuca_path}/log/error.log"
|
6
59
|
access_log = "#{cuca_path}/log/access.log"
|
7
60
|
pid_file = '/tmp/lighttpd.pid'
|
8
|
-
server_program =
|
9
|
-
server_port =
|
61
|
+
server_program = options.lighttpd
|
62
|
+
server_port = options.port
|
10
63
|
|
11
64
|
config = <<-EOF
|
12
65
|
|
@@ -17,7 +70,7 @@ server.modules = (
|
|
17
70
|
"mod_cgi"
|
18
71
|
)
|
19
72
|
|
20
|
-
cgi.assign = ( ".cgi" => "
|
73
|
+
cgi.assign = ( ".cgi" => "#{options.ruby_interpreter}" )
|
21
74
|
|
22
75
|
server.document-root = "#{document_root}"
|
23
76
|
|
@@ -25,7 +78,7 @@ server.port = #{server_port}
|
|
25
78
|
|
26
79
|
server.errorlog = "#{error_log}"
|
27
80
|
|
28
|
-
server.error-handler-404 = "
|
81
|
+
server.error-handler-404 = "/#{options.dispatcher}"
|
29
82
|
# server.error-handler-404 = "/error-404.html"
|
30
83
|
|
31
84
|
index-file.names = ( "index.html" )
|
@@ -20,7 +20,7 @@ class CucaHandler < WEBrick::HTTPServlet::CGIHandler
|
|
20
20
|
end
|
21
21
|
|
22
22
|
server = WEBrick::HTTPServer.new(:Port => 2000)
|
23
|
-
server.mount("/", CucaHandler, File.expand_path(File.dirname(__FILE__))+"/../public/dispatch
|
23
|
+
server.mount("/", CucaHandler, File.expand_path(File.dirname(__FILE__))+"/../public/dispatch.cgi")
|
24
24
|
|
25
25
|
trap("INT"){ server.shutdown }
|
26
26
|
server.start
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
$cuca_path = File.dirname(__FILE__)+"/../../"
|
4
|
+
|
5
|
+
require 'cuca'
|
6
|
+
require 'cuca/test/helpers'
|
7
|
+
|
8
|
+
class TC_TestWidget < Test::Unit::TestCase
|
9
|
+
|
10
|
+
include Cuca::Test::Helpers
|
11
|
+
|
12
|
+
def test_index
|
13
|
+
# x = get('/index', { :test => 'me' })
|
14
|
+
# puts x.inspect
|
15
|
+
|
16
|
+
# x = get('/test')
|
17
|
+
# puts x.inspect
|
18
|
+
|
19
|
+
x = post('/test')
|
20
|
+
puts x.inspect
|
21
|
+
puts
|
22
|
+
puts
|
23
|
+
x = post('/test', { :post_var => 'post_value' } )
|
24
|
+
puts x.inspect
|
25
|
+
puts
|
26
|
+
puts
|
27
|
+
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
data/bin/cuca
CHANGED
@@ -3,7 +3,11 @@
|
|
3
3
|
# This is a simple script to install the cuca application skeleton
|
4
4
|
# provided by the cuca gems.
|
5
5
|
#
|
6
|
-
|
6
|
+
begin
|
7
|
+
require 'ftools'
|
8
|
+
rescue LoadError
|
9
|
+
end
|
10
|
+
|
7
11
|
require 'fileutils'
|
8
12
|
|
9
13
|
if ARGV.size == 0 then
|
@@ -29,12 +33,12 @@ Dir.glob("#{framework_path}/**/*").each do |file|
|
|
29
33
|
|
30
34
|
if File.directory?(file) then
|
31
35
|
puts "(mkdir) #{fname}"
|
32
|
-
|
36
|
+
FileUtils.mkdir_p(dname)
|
33
37
|
next
|
34
38
|
end
|
35
39
|
|
36
40
|
puts "(install) #{fname}"
|
37
|
-
|
41
|
+
FileUtils.install(file, dname)
|
38
42
|
|
39
43
|
if fname.include?('/scripts/server') || fname.include?('/public/dispatch') || fname.include?('/scripts/console') then
|
40
44
|
puts "(chmod) #{fname} (755)"
|
data/lib/cuca.rb
CHANGED
data/lib/cuca/app.rb
CHANGED
@@ -5,7 +5,7 @@ require 'cuca/config'
|
|
5
5
|
def cuca_register_autoload(object, file)
|
6
6
|
autoload(object, file)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
|
10
10
|
module Cuca
|
11
11
|
|
@@ -21,16 +21,24 @@ class Sandbox
|
|
21
21
|
controller_class = mod::const_get(controller_class_name)
|
22
22
|
controller = controller_class.send(:new, :assigns=>assigns)
|
23
23
|
$controller_object = controller
|
24
|
-
|
25
|
-
controller.run_before_filters
|
26
24
|
|
25
|
+
controller.run_before_filters
|
27
26
|
|
28
|
-
controller.send('_do'.intern, 'run', subcall)
|
29
27
|
case request_method
|
30
|
-
when 'POST'
|
28
|
+
when 'POST'
|
29
|
+
controller.send('_do'.intern, 'run', subcall)
|
31
30
|
controller.send('_do'.intern, 'post', subcall)
|
32
|
-
when 'GET'
|
31
|
+
when 'GET'
|
32
|
+
controller.send('_do'.intern, 'run', subcall)
|
33
33
|
controller.send('_do'.intern, 'get', subcall)
|
34
|
+
when 'PUT'
|
35
|
+
controller.send('_do'.intern, 'put', subcall)
|
36
|
+
when 'PATCH'
|
37
|
+
controller.send('_do'.intern, 'patch', subcall)
|
38
|
+
when 'HEAD'
|
39
|
+
controller.send('_do'.intern, 'head', subcall)
|
40
|
+
when 'DELETE'
|
41
|
+
controller.send('_do'.intern, 'delete', subcall)
|
34
42
|
end
|
35
43
|
|
36
44
|
controller.run_after_filters
|
@@ -40,11 +48,11 @@ class Sandbox
|
|
40
48
|
end
|
41
49
|
|
42
50
|
# == Cuca Application
|
43
|
-
#
|
44
|
-
# A Cuca::App object will be created directly by the dispatcher - which again is the
|
51
|
+
#
|
52
|
+
# A Cuca::App object will be created directly by the dispatcher - which again is the
|
45
53
|
# direct cgi or fastcgi script that get run by the webserver.
|
46
|
-
# Normally you just create a Cuca::App object and run the cgicall method with optional with
|
47
|
-
# a cgi object as paramenter.
|
54
|
+
# Normally you just create a Cuca::App object and run the cgicall method with optional with
|
55
|
+
# a cgi object as paramenter.
|
48
56
|
# Before doing that you must set $cuca_path to the root of your application directory structure.
|
49
57
|
class App
|
50
58
|
|
@@ -72,7 +80,7 @@ class App
|
|
72
80
|
@public_path.freeze
|
73
81
|
@log_path.freeze
|
74
82
|
@logger = Logger.new("#{@log_path}/messages")
|
75
|
-
@logger.level = App
|
83
|
+
@logger.level = App.config['log_level'] || Logger::WARN
|
76
84
|
end
|
77
85
|
|
78
86
|
|
@@ -82,7 +90,7 @@ class App
|
|
82
90
|
private
|
83
91
|
def init_call(path_info)
|
84
92
|
require 'cuca/urlmap'
|
85
|
-
|
93
|
+
|
86
94
|
begin
|
87
95
|
@urlmap = URLMap.new(@app_path, path_info)
|
88
96
|
|
@@ -91,7 +99,7 @@ class App
|
|
91
99
|
return
|
92
100
|
end
|
93
101
|
end
|
94
|
-
|
102
|
+
|
95
103
|
# will do a 'require' on all .rb files in path
|
96
104
|
private
|
97
105
|
def include_files(path)
|
@@ -131,13 +139,13 @@ class App
|
|
131
139
|
def all_support_directories(path_tree)
|
132
140
|
path_tree.each do |t|
|
133
141
|
(App::config['include_directories'] || []).each do |id|
|
134
|
-
if id.instance_of?(Hash) then
|
142
|
+
if id.instance_of?(Hash) then
|
135
143
|
yield "#{t}/#{id[:dir]}", id[:class_naming]
|
136
|
-
else
|
144
|
+
else
|
137
145
|
yield "#{t}/#{id}", nil
|
138
146
|
end
|
139
147
|
end
|
140
|
-
end
|
148
|
+
end
|
141
149
|
end
|
142
150
|
|
143
151
|
public
|
@@ -147,7 +155,7 @@ class App
|
|
147
155
|
autoload_files(dir, proc)
|
148
156
|
else
|
149
157
|
include_files(dir)
|
150
|
-
end
|
158
|
+
end
|
151
159
|
end
|
152
160
|
end
|
153
161
|
|
@@ -176,7 +184,7 @@ class App
|
|
176
184
|
public
|
177
185
|
def cgicall(cgi = nil)
|
178
186
|
@cgi = cgi || CGI.new
|
179
|
-
|
187
|
+
|
180
188
|
#
|
181
189
|
# 1st priority: Serve a file if it exists in the 'public' folder
|
182
190
|
#
|
@@ -224,8 +232,12 @@ class App
|
|
224
232
|
load_support_files(@urlmap)
|
225
233
|
|
226
234
|
# 4th: Now let's run the actual page script code
|
227
|
-
|
228
|
-
|
235
|
+
if Cuca::App.config['controller_naming'] then
|
236
|
+
controller_class_name = Cuca::App.config['controller_naming'].call(@urlmap.action)
|
237
|
+
else
|
238
|
+
controller_class_name = @urlmap.action.capitalize+"Controller"
|
239
|
+
end
|
240
|
+
|
229
241
|
# Clear all hints
|
230
242
|
Widget::clear_hints()
|
231
243
|
|
@@ -237,13 +249,13 @@ class App
|
|
237
249
|
begin
|
238
250
|
# load controller
|
239
251
|
begin
|
240
|
-
controller_module.module_eval(File.
|
252
|
+
controller_module.module_eval(File.read(script), script) unless \
|
241
253
|
controller_module.const_defined?(controller_class_name.intern)
|
242
|
-
rescue SyntaxError => e
|
243
|
-
err = get_error("
|
254
|
+
rescue SyntaxError,LoadError => e
|
255
|
+
err = get_error("Can not load script", e,
|
244
256
|
Cuca::App.config['display_errors'], Cuca::App.config['http_500'])
|
245
257
|
@cgi.out('status' => 'SERVER_ERROR') { err }
|
246
|
-
return
|
258
|
+
return
|
247
259
|
end
|
248
260
|
|
249
261
|
# Catch a common user error
|
@@ -252,12 +264,13 @@ class App
|
|
252
264
|
|
253
265
|
|
254
266
|
# run controller
|
255
|
-
(status, mime, content, headers) = Sandbox.run(controller_class_name,
|
256
|
-
@urlmap.action_module, @urlmap.assigns,
|
267
|
+
(status, mime, content, headers) = Sandbox.run(controller_class_name,
|
268
|
+
@urlmap.action_module, @urlmap.assigns,
|
257
269
|
@cgi.request_method, @urlmap.subcall)
|
258
270
|
|
259
271
|
logger.debug "CGICall OK: #{status}/#{mime}"
|
260
|
-
|
272
|
+
|
273
|
+
|
261
274
|
@cgi.out(headers.merge( { 'type' => mime, 'status' => status} )) {content}
|
262
275
|
|
263
276
|
rescue SyntaxError => e
|
@@ -267,7 +280,7 @@ class App
|
|
267
280
|
|
268
281
|
logger.info "CGICall Syntax Error"
|
269
282
|
return
|
270
|
-
|
283
|
+
|
271
284
|
|
272
285
|
rescue Cuca::ApplicationException => e
|
273
286
|
err = get_error("Application Error", e,
|
@@ -278,13 +291,13 @@ class App
|
|
278
291
|
return
|
279
292
|
|
280
293
|
rescue => e
|
281
|
-
err = get_error("System Error", e,
|
294
|
+
err = get_error("System Error", e,
|
282
295
|
Cuca::App.config['display_errors'], Cuca::App.config['http_500'])
|
283
296
|
@cgi.out('status' => 'SERVER_ERROR') { err }
|
284
297
|
|
285
298
|
logger.info "CGICall System Error"
|
286
|
-
return
|
287
|
-
|
299
|
+
return
|
300
|
+
|
288
301
|
end
|
289
302
|
end
|
290
303
|
|