nitro 0.8.0 → 0.9.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.
- data/AUTHORS +3 -4
- data/ChangeLog +418 -0
- data/LICENSE +1 -1
- data/README +157 -89
- data/RELEASES +50 -0
- data/Rakefile +5 -7
- data/benchmark/nitro/bench.rb +5 -0
- data/benchmark/nitro/simple-webrick-n-200.txt +44 -0
- data/benchmark/nitro/static-webrick-n-200.txt +43 -0
- data/benchmark/nitro/tiny-lhttpd-n-200-c-5.txt +43 -0
- data/benchmark/nitro/tiny-webrick-n-200-c-5.txt +44 -0
- data/benchmark/nitro/tiny-webrick-n-200.txt +44 -0
- data/benchmark/nitro/tiny2-webrick-n-200.txt +44 -0
- data/{lib/nitro/server/cluster.rb → bin/cluster} +26 -30
- data/bin/proto/README +2 -2
- data/bin/proto/{apache.conf → conf/apache.conf} +0 -0
- data/bin/proto/conf/app.conf.rb +22 -0
- data/bin/proto/conf/lhttpd.conf +236 -0
- data/bin/proto/ctl +4 -0
- data/bin/proto/lib/README +5 -0
- data/bin/proto/log/README +3 -0
- data/bin/proto/root/fcgi.rb +6 -0
- data/bin/proto/root/index.xhtml +65 -7
- data/bin/proto/root/m/nitro.png +0 -0
- data/examples/blog/README +7 -5
- data/examples/blog/{apache.conf → conf/apache.conf} +0 -0
- data/examples/blog/conf/app.conf.rb +56 -0
- data/examples/blog/conf/lhttpd.conf +236 -0
- data/examples/blog/ctl +4 -0
- data/examples/blog/lib/blog.rb +11 -136
- data/examples/blog/lib/blog/controller.rb +99 -0
- data/examples/blog/lib/blog/model.rb +39 -0
- data/examples/blog/log/README +3 -0
- data/examples/blog/root/comments.xhtml +2 -2
- data/examples/blog/root/fcgi.rb +6 -0
- data/examples/blog/root/index.xhtml +4 -5
- data/examples/blog/root/login.xhtml +2 -2
- data/examples/blog/root/style.xsl +9 -9
- data/examples/blog/root/view_entry.xhtml +2 -2
- data/examples/flash/conf/app.conf.rb +23 -0
- data/examples/flash/ctl +4 -0
- data/examples/flash/log/README +3 -0
- data/examples/flash/root/index.xhtml +0 -9
- data/examples/flash/root/show_inline_text.xhtml +10 -5
- data/examples/no_xsl_blog/README +12 -0
- data/examples/no_xsl_blog/conf/apache.conf +0 -0
- data/examples/no_xsl_blog/conf/app.conf.rb +57 -0
- data/examples/no_xsl_blog/conf/lhttpd.conf +236 -0
- data/examples/no_xsl_blog/ctl +4 -0
- data/examples/no_xsl_blog/lib/blog.rb +20 -0
- data/examples/no_xsl_blog/lib/blog/controller.rb +102 -0
- data/examples/no_xsl_blog/lib/blog/model.rb +39 -0
- data/examples/no_xsl_blog/lib/blog/template.rb +134 -0
- data/examples/no_xsl_blog/log/README +3 -0
- data/examples/no_xsl_blog/root/comments.xhtml +41 -0
- data/examples/no_xsl_blog/root/entry_form.xhtml +22 -0
- data/examples/no_xsl_blog/root/fcgi.rb +6 -0
- data/examples/no_xsl_blog/root/index.xhtml +39 -0
- data/examples/no_xsl_blog/root/login.xhtml +21 -0
- data/examples/no_xsl_blog/root/m/bubbles.gif +0 -0
- data/examples/no_xsl_blog/root/m/comments_curve.gif +0 -0
- data/examples/no_xsl_blog/root/m/down.gif +0 -0
- data/examples/no_xsl_blog/root/m/footer_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/garrow.gif +0 -0
- data/examples/no_xsl_blog/root/m/gbull.gif +0 -0
- data/examples/no_xsl_blog/root/m/grbull.gif +0 -0
- data/examples/no_xsl_blog/root/m/h1_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/header_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/nitro.gif +0 -0
- data/examples/no_xsl_blog/root/m/obull.gif +0 -0
- data/examples/no_xsl_blog/root/m/page_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/rss.gif +0 -0
- data/examples/no_xsl_blog/root/m/side_title_bg.gif +0 -0
- data/examples/no_xsl_blog/root/m/sidebar_bg.gif +0 -0
- data/examples/no_xsl_blog/root/recent_posts.xhtml +14 -0
- data/examples/no_xsl_blog/root/style.css +301 -0
- data/examples/no_xsl_blog/root/view_entry.xhtml +25 -0
- data/examples/no_xsl_blog/root/view_entry.xml +12 -0
- data/examples/og/run.rb +2 -2
- data/examples/tiny/README +2 -2
- data/examples/tiny/conf/apache.conf +5 -0
- data/examples/tiny/conf/app.conf.rb +21 -0
- data/examples/tiny/conf/lhttpd.conf +236 -0
- data/examples/tiny/ctl +4 -0
- data/examples/tiny/log/README +3 -0
- data/examples/tiny/root/fcgi.rb +6 -0
- data/examples/tiny/root/index.xhtml +7 -4
- data/examples/tiny/root/nitro.png +0 -0
- data/lib/glue.rb +13 -9
- data/lib/glue/array.rb +1 -1
- data/lib/glue/cache.rb +1 -1
- data/lib/glue/flexob.rb +12 -0
- data/lib/glue/hash.rb +1 -1
- data/lib/glue/inflector.rb +2 -2
- data/lib/glue/logger.rb +4 -8
- data/lib/glue/misc.rb +14 -0
- data/lib/glue/number.rb +1 -1
- data/lib/glue/object.rb +26 -0
- data/lib/glue/pool.rb +1 -1
- data/lib/glue/property.rb +84 -91
- data/lib/glue/string.rb +1 -1
- data/lib/glue/time.rb +1 -1
- data/lib/glue/validation.rb +1 -1
- data/lib/nitro.rb +18 -6
- data/lib/nitro/adaptors/cgi.rb +291 -0
- data/lib/nitro/adaptors/fastcgi.rb +42 -0
- data/lib/nitro/adaptors/runner.rb +123 -0
- data/lib/nitro/adaptors/webrick.rb +110 -0
- data/lib/nitro/buffering.rb +43 -0
- data/lib/nitro/builders/form.rb +1 -1
- data/lib/nitro/builders/rss.rb +1 -1
- data/{bin → lib/nitro}/cluster.rb +26 -30
- data/lib/nitro/context.rb +82 -0
- data/lib/nitro/controller.rb +50 -0
- data/lib/nitro/cookie.rb +46 -0
- data/lib/nitro/dispatcher.rb +105 -0
- data/lib/nitro/filters.rb +9 -10
- data/lib/nitro/localization.rb +42 -0
- data/lib/nitro/mail.rb +11 -14
- data/lib/nitro/render.rb +275 -0
- data/lib/nitro/request.rb +128 -0
- data/lib/nitro/response.rb +38 -0
- data/lib/nitro/scaffold.rb +11 -11
- data/lib/nitro/session.rb +84 -0
- data/lib/nitro/{server/shaders.rb → shaders.rb} +56 -36
- data/lib/nitro/ui/pager.rb +23 -26
- data/lib/nitro/{sitemap.rb → ui/sitemap.rb} +4 -12
- data/lib/nitro/uri.rb +1 -1
- data/lib/nitro/version.rb +10 -8
- data/lib/og.rb +66 -65
- data/lib/og/backend.rb +1 -1
- data/lib/og/backends/mysql.rb +48 -52
- data/lib/og/backends/psql.rb +34 -37
- data/lib/og/connection.rb +15 -15
- data/lib/og/enchant.rb +16 -9
- data/lib/og/meta.rb +127 -54
- data/lib/og/mock.rb +18 -18
- data/lib/og/version.rb +6 -4
- data/lib/parts/content.rb +4 -8
- data/test/glue/tc_logger.rb +3 -0
- data/test/glue/tc_property.rb +19 -3
- data/test/nitro/adaptors/tc_cgi.rb +63 -0
- data/test/nitro/adaptors/tc_webrick.rb +15 -0
- data/test/nitro/builders/tc_xml.rb +2 -2
- data/test/nitro/tc_context.rb +13 -0
- data/test/nitro/tc_controller.rb +47 -0
- data/test/nitro/tc_dispatcher.rb +64 -0
- data/test/nitro/tc_session.rb +20 -0
- data/test/nitro/{tc_sitemap.rb → ui/tc_sitemap.rb} +1 -1
- data/test/root/blog/list.xhtml +6 -0
- data/test/tc_og.rb +41 -4
- metadata +115 -59
- data/bin/proto/app.rb +0 -20
- data/bin/proto/config.rb +0 -77
- data/examples/blog/app.rb +0 -21
- data/examples/blog/config.rb +0 -95
- data/examples/blog/env.rb +0 -22
- data/examples/flash/README +0 -34
- data/examples/flash/app.rb +0 -20
- data/examples/flash/config.rb +0 -38
- data/examples/flash/lib/flash.rb +0 -40
- data/examples/flash/tmp.swf +0 -0
- data/examples/tiny/app.rb +0 -19
- data/examples/tiny/config.rb +0 -29
- data/examples/tiny/root/nitro-small.png +0 -0
- data/lib/nitro/application.rb +0 -217
- data/lib/nitro/config.rb +0 -128
- data/lib/nitro/events.rb +0 -122
- data/lib/nitro/html.rb +0 -151
- data/lib/nitro/http.rb +0 -102
- data/lib/nitro/l10n.rb +0 -30
- data/lib/nitro/server.rb +0 -59
- data/lib/nitro/server/appserver.rb +0 -67
- data/lib/nitro/server/cookie.rb +0 -87
- data/lib/nitro/server/dispatcher.rb +0 -62
- data/lib/nitro/server/filters.rb +0 -75
- data/lib/nitro/server/filters/autologin.rb +0 -51
- data/lib/nitro/server/fragment.rb +0 -70
- data/lib/nitro/server/handlers.rb +0 -127
- data/lib/nitro/server/render.rb +0 -426
- data/lib/nitro/server/request.rb +0 -658
- data/lib/nitro/server/requestpart.rb +0 -54
- data/lib/nitro/server/script.rb +0 -387
- data/lib/nitro/server/server.rb +0 -57
- data/lib/nitro/server/session.rb +0 -220
- data/lib/nitro/server/user.rb +0 -46
- data/lib/nitro/server/webrick.rb +0 -180
- data/lib/nitro/service.rb +0 -26
- data/lib/xsl/ui.xsl +0 -51
- data/lib/xsl/xforms.xsl +0 -28
- data/test/nitro/server/tc_cookie.rb +0 -34
- data/test/nitro/server/tc_filters.rb +0 -38
- data/test/nitro/server/tc_request.rb +0 -70
- data/test/nitro/server/tc_requestpart.rb +0 -28
- data/test/nitro/server/tc_session.rb +0 -34
- data/test/nitro/tc_events.rb +0 -44
- data/test/nitro/tc_html.rb +0 -79
- data/test/nitro/tc_http.rb +0 -18
data/bin/proto/README
CHANGED
|
@@ -4,7 +4,7 @@ Here comes the README file for your application.
|
|
|
4
4
|
|
|
5
5
|
== Configuration
|
|
6
6
|
|
|
7
|
-
Edit the file conf/
|
|
7
|
+
Edit the file conf/app.conf.rb as needed.
|
|
8
8
|
|
|
9
9
|
By default this skeleton app uses the PostgreSQL backend.
|
|
10
10
|
If you want to use a different backend dont forget to
|
|
@@ -14,7 +14,7 @@ change it for the DEBUG and LIVE configurations.
|
|
|
14
14
|
|
|
15
15
|
Exec the following command:
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
./ctl
|
|
18
18
|
|
|
19
19
|
then point your browser to:
|
|
20
20
|
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# * George Moschovitis <gm@navel.gr>
|
|
2
|
+
# (c) 2004-2005 Navel, all rights reserved.
|
|
3
|
+
# $Id: app.rb 197 2004-12-21 13:50:17Z gmosx $
|
|
4
|
+
|
|
5
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')
|
|
6
|
+
|
|
7
|
+
# $DBG = true
|
|
8
|
+
|
|
9
|
+
require 'nitro'
|
|
10
|
+
require 'nitro/session'
|
|
11
|
+
|
|
12
|
+
# gmosx, FIXME: make this default!
|
|
13
|
+
|
|
14
|
+
require 'ostruct'
|
|
15
|
+
|
|
16
|
+
conf = {
|
|
17
|
+
:host => 'localhost',
|
|
18
|
+
:port => 8080,
|
|
19
|
+
:dispatcher => N::Dispatcher.new
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
$conf = OpenStruct.new(conf)
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# lighttpd configuration file
|
|
2
|
+
# $Id$
|
|
3
|
+
|
|
4
|
+
############ Options you really have to take care of ####################
|
|
5
|
+
|
|
6
|
+
## modules to load
|
|
7
|
+
# at least mod_access and mod_accesslog should be loaded
|
|
8
|
+
# all other module should only be loaded if really neccesary
|
|
9
|
+
# - saves some time
|
|
10
|
+
# - saves memory
|
|
11
|
+
|
|
12
|
+
server.modules = (
|
|
13
|
+
"mod_rewrite",
|
|
14
|
+
# "mod_redirect",
|
|
15
|
+
"mod_access",
|
|
16
|
+
# "mod_auth",
|
|
17
|
+
# "mod_status",
|
|
18
|
+
"mod_fastcgi",
|
|
19
|
+
# "mod_simple_vhost",
|
|
20
|
+
# "mod_evhost",
|
|
21
|
+
# "mod_cgi",
|
|
22
|
+
# "mod_compress",
|
|
23
|
+
# "mod_ssi",
|
|
24
|
+
# "mod_usertrack",
|
|
25
|
+
# "mod_rrdtool",
|
|
26
|
+
"mod_accesslog"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
## a static document-root, for virtual-hosting take look at the
|
|
30
|
+
## server.virtual-* options
|
|
31
|
+
server.document-root = "/home/gmosx/navel/nitro/examples/tiny/root/"
|
|
32
|
+
|
|
33
|
+
## where to send error-messages to
|
|
34
|
+
server.errorlog = "/home/gmosx/navel/nitro/examples/tiny/log/lighttpd.error.log"
|
|
35
|
+
|
|
36
|
+
# files to check for if .../ is requested
|
|
37
|
+
server.indexfiles = ( "index.html" )
|
|
38
|
+
|
|
39
|
+
# mimetype mapping
|
|
40
|
+
mimetype.assign = (
|
|
41
|
+
".pdf" => "application/pdf",
|
|
42
|
+
".sig" => "application/pgp-signature",
|
|
43
|
+
".spl" => "application/futuresplash",
|
|
44
|
+
".class" => "application/octet-stream",
|
|
45
|
+
".ps" => "application/postscript",
|
|
46
|
+
".torrent" => "application/x-bittorrent",
|
|
47
|
+
".dvi" => "application/x-dvi",
|
|
48
|
+
".gz" => "application/x-gzip",
|
|
49
|
+
".pac" => "application/x-ns-proxy-autoconfig",
|
|
50
|
+
".swf" => "application/x-shockwave-flash",
|
|
51
|
+
".tar.gz" => "application/x-tgz",
|
|
52
|
+
".tgz" => "application/x-tgz",
|
|
53
|
+
".tar" => "application/x-tar",
|
|
54
|
+
".zip" => "application/zip",
|
|
55
|
+
".mp3" => "audio/mpeg",
|
|
56
|
+
".m3u" => "audio/x-mpegurl",
|
|
57
|
+
".wma" => "audio/x-ms-wma",
|
|
58
|
+
".wax" => "audio/x-ms-wax",
|
|
59
|
+
".ogg" => "audio/x-wav",
|
|
60
|
+
".wav" => "audio/x-wav",
|
|
61
|
+
".gif" => "image/gif",
|
|
62
|
+
".jpg" => "image/jpeg",
|
|
63
|
+
".jpeg" => "image/jpeg",
|
|
64
|
+
".png" => "image/png",
|
|
65
|
+
".xbm" => "image/x-xbitmap",
|
|
66
|
+
".xpm" => "image/x-xpixmap",
|
|
67
|
+
".xwd" => "image/x-xwindowdump",
|
|
68
|
+
".css" => "text/css",
|
|
69
|
+
".html" => "text/html",
|
|
70
|
+
".htm" => "text/html",
|
|
71
|
+
".js" => "text/javascript",
|
|
72
|
+
".asc" => "text/plain",
|
|
73
|
+
".c" => "text/plain",
|
|
74
|
+
".conf" => "text/plain",
|
|
75
|
+
".text" => "text/plain",
|
|
76
|
+
".txt" => "text/plain",
|
|
77
|
+
".dtd" => "text/xml",
|
|
78
|
+
".xml" => "text/xml",
|
|
79
|
+
".mpeg" => "video/mpeg",
|
|
80
|
+
".mpg" => "video/mpeg",
|
|
81
|
+
".mov" => "video/quicktime",
|
|
82
|
+
".qt" => "video/quicktime",
|
|
83
|
+
".avi" => "video/x-msvideo",
|
|
84
|
+
".asf" => "video/x-ms-asf",
|
|
85
|
+
".asx" => "video/x-ms-asf",
|
|
86
|
+
".wmv" => "video/x-ms-wmv"
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
# Use the "Content-Type" extended attribute to obtain mime type if possible
|
|
90
|
+
# mimetypes.use-xattr = "enable"
|
|
91
|
+
|
|
92
|
+
#### accesslog module
|
|
93
|
+
accesslog.filename = "/home/gmosx/navel/nitro/examples/tiny/log/access.log"
|
|
94
|
+
|
|
95
|
+
## deny access the file-extensions
|
|
96
|
+
#
|
|
97
|
+
# ~ is for backupfiles from vi, emacs, joe, ...
|
|
98
|
+
# .inc is often used for code includes which should in general not be part
|
|
99
|
+
# of the document-root
|
|
100
|
+
url.access-deny = ( "~", ".inc" )
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
######### Options that are good to be but not neccesary to be changed #######
|
|
105
|
+
|
|
106
|
+
## bind to port (default: 80)
|
|
107
|
+
server.port = 8080
|
|
108
|
+
|
|
109
|
+
## bind to localhost (default: all interfaces)
|
|
110
|
+
#server.bind = "grisu.home.kneschke.de"
|
|
111
|
+
|
|
112
|
+
## error-handler for status 404
|
|
113
|
+
#server.error-handler-404 = "/error-handler.html"
|
|
114
|
+
#server.error-handler-404 = "/error-handler.php"
|
|
115
|
+
|
|
116
|
+
## to help the rc.scripts
|
|
117
|
+
# server.pid-file = "/var/run/lighttpd.pid"
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
###### virtual hosts
|
|
121
|
+
##
|
|
122
|
+
## If you want name-based virtual hosting add the next three settings and load
|
|
123
|
+
## mod_simple_vhost
|
|
124
|
+
##
|
|
125
|
+
## document-root =
|
|
126
|
+
## virtual-server-root + virtual-server-default-host + virtual-server-docroot or
|
|
127
|
+
## virtual-server-root + http-host + virtual-server-docroot
|
|
128
|
+
##
|
|
129
|
+
#simple-vhost.server-root = "/home/weigon/wwwroot/servers/"
|
|
130
|
+
#simple-vhost.default-host = "grisu.home.kneschke.de"
|
|
131
|
+
#simple-vhost.document-root = "/pages/"
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
##
|
|
135
|
+
## Format: <errorfile-prefix><status>.html
|
|
136
|
+
## -> ..../status-404.html for 'File not found'
|
|
137
|
+
#server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-"
|
|
138
|
+
|
|
139
|
+
## virtual directory listings
|
|
140
|
+
#server.dir-listing = "enable"
|
|
141
|
+
|
|
142
|
+
## send unhandled HTTP-header headers to error-log
|
|
143
|
+
#debug.dump-unknown-headers = "enable"
|
|
144
|
+
|
|
145
|
+
### only root can use these options
|
|
146
|
+
#
|
|
147
|
+
# chroot() to directory (default: no chroot() )
|
|
148
|
+
#server.chroot = "/"
|
|
149
|
+
|
|
150
|
+
## change uid to <uid> (default: don't care)
|
|
151
|
+
#server.username = "wwwrun"
|
|
152
|
+
|
|
153
|
+
## change uid to <uid> (default: don't care)
|
|
154
|
+
#server.groupname = "wwwrun"
|
|
155
|
+
|
|
156
|
+
#### compress module
|
|
157
|
+
#compress.cache-dir = "/tmp/lighttpd/cache/compress/"
|
|
158
|
+
#compress.filetype = ("text/plain", "text/html")
|
|
159
|
+
|
|
160
|
+
#### fastcgi module
|
|
161
|
+
## read fastcgi.txt for more info
|
|
162
|
+
fastcgi.server = ( ".rb" =>
|
|
163
|
+
( "localhost" =>
|
|
164
|
+
(
|
|
165
|
+
"socket" => "/tmp/nitro-fcgi.socket",
|
|
166
|
+
"bin-path" => "/home/gmosx/navel/nitro/examples/tiny/root/fcgi.rb"
|
|
167
|
+
)
|
|
168
|
+
)
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
#### CGI module
|
|
172
|
+
#cgi.assign = ( ".pl" => "/usr/bin/perl",
|
|
173
|
+
# ".cgi" => "/usr/bin/perl" )
|
|
174
|
+
#
|
|
175
|
+
|
|
176
|
+
#### SSL engine
|
|
177
|
+
#ssl.engine = "enable"
|
|
178
|
+
#ssl.pemfile = "server.pem"
|
|
179
|
+
|
|
180
|
+
#### status module
|
|
181
|
+
# status.status-url = "/server-status"
|
|
182
|
+
# status.config-url = "/server-config"
|
|
183
|
+
|
|
184
|
+
#### auth module
|
|
185
|
+
## read authentification.txt for more info
|
|
186
|
+
# auth.backend = "plain"
|
|
187
|
+
# auth.backend.plain.userfile = "lighttpd.user"
|
|
188
|
+
# auth.backend.plain.groupfile = "lighttpd.group"
|
|
189
|
+
|
|
190
|
+
# auth.backend.ldap.hostname = "localhost"
|
|
191
|
+
# auth.backend.ldap.base-dn = "dc=my-domain,dc=com"
|
|
192
|
+
# auth.backend.ldap.filter = "(uid=$)"
|
|
193
|
+
|
|
194
|
+
# auth.require = ( "/server-status" =>
|
|
195
|
+
# (
|
|
196
|
+
# "method" => "digest",
|
|
197
|
+
# "realm" => "download archiv",
|
|
198
|
+
# "require" => "group=www|user=jan|host=192.168.2.10"
|
|
199
|
+
# ),
|
|
200
|
+
# "/server-info" =>
|
|
201
|
+
# (
|
|
202
|
+
# "method" => "digest",
|
|
203
|
+
# "realm" => "download archiv",
|
|
204
|
+
# "require" => "group=www|user=jan|host=192.168.2.10"
|
|
205
|
+
# )
|
|
206
|
+
# )
|
|
207
|
+
|
|
208
|
+
#### url handling modules (rewrite, redirect, access)
|
|
209
|
+
|
|
210
|
+
url.rewrite = (
|
|
211
|
+
"^/([\/\-_a-zA-Z0-9]+)?$" => "/fcgi.rb",
|
|
212
|
+
"^/([\/\-_a-zA-Z0-9]+)?\?([\-_a-zA-Z0-9=;&%]*)$" => "/fcgi.rb?$2"
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
# url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
|
|
216
|
+
|
|
217
|
+
#
|
|
218
|
+
# define a pattern for the host url finding
|
|
219
|
+
# %% => % sign
|
|
220
|
+
# %0 => domain name + tld
|
|
221
|
+
# %1 => tld
|
|
222
|
+
# %2 => domain name without tld
|
|
223
|
+
# %3 => subdomain 1 name
|
|
224
|
+
# %4 => subdomain 2 name
|
|
225
|
+
#
|
|
226
|
+
# evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/"
|
|
227
|
+
|
|
228
|
+
#### expire module
|
|
229
|
+
# expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
|
|
230
|
+
|
|
231
|
+
#### ssi
|
|
232
|
+
# ssi.extension = ( ".shtml" )
|
|
233
|
+
|
|
234
|
+
#### rrdtool
|
|
235
|
+
# rrdtool.binary = "/usr/bin/rrdtool"
|
|
236
|
+
# rrdtool.db-name = "/var/www/lighttpd.rrd"
|
data/bin/proto/ctl
ADDED
data/bin/proto/root/index.xhtml
CHANGED
|
@@ -1,11 +1,69 @@
|
|
|
1
1
|
<?xml version="1.0"?>
|
|
2
2
|
|
|
3
|
-
<
|
|
3
|
+
<html>
|
|
4
|
+
<head>
|
|
5
|
+
<title>Feel the magic!</title>
|
|
6
|
+
<style>
|
|
7
|
+
body { margin: 10px; background-color: #fff; color: #333; }
|
|
4
8
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
</x:page>
|
|
9
|
+
body, p, ol, ul, td {
|
|
10
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
|
11
|
+
font-size: 12px;
|
|
12
|
+
line-height: 18px;
|
|
13
|
+
}
|
|
11
14
|
|
|
15
|
+
h1 { margin-top: 15px; margin-bottom: 45px; }
|
|
16
|
+
|
|
17
|
+
li {
|
|
18
|
+
margin-bottom: 7px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
pre {
|
|
22
|
+
background-color: #eee;
|
|
23
|
+
padding: 10px;
|
|
24
|
+
font-size: 11px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
a { color: #000; }
|
|
28
|
+
a:visited { color: #666; }
|
|
29
|
+
a:hover { color: #fff; background-color:#000; }
|
|
30
|
+
|
|
31
|
+
img { border: none; }
|
|
32
|
+
</style>
|
|
33
|
+
</head>
|
|
34
|
+
<body>
|
|
35
|
+
|
|
36
|
+
<a href="http://www.rubyforge.com/projects/nitro" target="_blank"><img src="m/nitro.png" /></a>
|
|
37
|
+
|
|
38
|
+
<h1>Feel the magic of Nitro!</h1>
|
|
39
|
+
|
|
40
|
+
<p><b>Before you move on</b>, verify that the following conditions have been met:</p>
|
|
41
|
+
|
|
42
|
+
<ol>
|
|
43
|
+
<li>The log directory and the empty log files must be writable to the web server (<code>chmod -R 666 log/*</code>).
|
|
44
|
+
<li>
|
|
45
|
+
The shebang line in the ctl file must reference your Ruby installation. <br/>
|
|
46
|
+
You might need to change it to <code>#!/usr/bin/env ruby</code> or point directly at the installation.
|
|
47
|
+
</li>
|
|
48
|
+
</ol>
|
|
49
|
+
|
|
50
|
+
<p>Here is <b>what do next</b>:</p>
|
|
51
|
+
|
|
52
|
+
<ol>
|
|
53
|
+
<li>Add your xhtml files in the public 'root' directory. Those files are
|
|
54
|
+
automagically converted to controller actions by Nitro
|
|
55
|
+
</li>
|
|
56
|
+
<li>Place additonal media files, css, or xsl files in the public directory.</li>
|
|
57
|
+
<li>Place your models and controllers in the lib directory.</li>
|
|
58
|
+
<li>Develop your application utilizing Nitro's powerful features.</li>
|
|
59
|
+
</ol>
|
|
60
|
+
|
|
61
|
+
<p>
|
|
62
|
+
<b>Having problems getting up and running?</b>
|
|
63
|
+
First try debugging it yourself by looking at the log files. <br/>
|
|
64
|
+
If you get stuck, post your problem to the <a href="http://rubyforge.org/mailman/listinfo/nitro-general">Nitro Mailing
|
|
65
|
+
List</a> at <a href="http://www.rubyforge.com">Rubyforge</a>.
|
|
66
|
+
</p>
|
|
67
|
+
|
|
68
|
+
</body>
|
|
69
|
+
</html>
|
|
Binary file
|
data/examples/blog/README
CHANGED
|
@@ -4,11 +4,13 @@ A simple blog.
|
|
|
4
4
|
|
|
5
5
|
== Configuration
|
|
6
6
|
|
|
7
|
-
Edit the
|
|
8
|
-
and the password:
|
|
7
|
+
Edit the configuration files in conf/* as needed.
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
Dont forget to set your name and the password in the
|
|
10
|
+
lib/blog.rb file:
|
|
11
|
+
|
|
12
|
+
Blog.username = 'your name'
|
|
13
|
+
Blog.password = 'your password'
|
|
12
14
|
|
|
13
15
|
By default this example uses the MySQL backend. If you want to
|
|
14
16
|
use a different backend dont forget to change it for the DEBUG
|
|
@@ -18,7 +20,7 @@ and LIVE configurations.
|
|
|
18
20
|
|
|
19
21
|
Exec the following command:
|
|
20
22
|
|
|
21
|
-
ruby
|
|
23
|
+
ruby ctl
|
|
22
24
|
|
|
23
25
|
then point your browser to:
|
|
24
26
|
|
|
File without changes
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# * George Moschovitis <gm@navel.gr>
|
|
2
|
+
# (c) 2004-2005 Navel, all rights reserved.
|
|
3
|
+
# $Id$
|
|
4
|
+
|
|
5
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
|
6
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')
|
|
7
|
+
|
|
8
|
+
$DBG = true
|
|
9
|
+
|
|
10
|
+
require 'ostruct'
|
|
11
|
+
|
|
12
|
+
require 'nitro'
|
|
13
|
+
require 'glue/validation'
|
|
14
|
+
require 'og'
|
|
15
|
+
|
|
16
|
+
require 'blog'
|
|
17
|
+
|
|
18
|
+
include N
|
|
19
|
+
|
|
20
|
+
og = Og::Database.new(
|
|
21
|
+
:address => 'localhost',
|
|
22
|
+
# :backend => 'mysql',
|
|
23
|
+
:backend => 'psql',
|
|
24
|
+
:database => 'blog',
|
|
25
|
+
:user => 'postgres',
|
|
26
|
+
:password => 'navelrulez',
|
|
27
|
+
:connection_count => 3
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
controllers = {
|
|
31
|
+
:index => BlogController
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
apis = {
|
|
35
|
+
:xml => 'text/xml'
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
dispatcher = Dispatcher.new(controllers, apis)
|
|
39
|
+
|
|
40
|
+
Rendering.shader = N::XSLTShader.new("#{dispatcher.root}/style.xsl",
|
|
41
|
+
N::RubyShader.new(
|
|
42
|
+
N::CompressShader.new
|
|
43
|
+
)
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
Rendering.reload = :partial
|
|
47
|
+
|
|
48
|
+
conf = {
|
|
49
|
+
:name => 'Nitro Blog',
|
|
50
|
+
:host => 'localhost',
|
|
51
|
+
:port => 8080,
|
|
52
|
+
:dispatcher => dispatcher,
|
|
53
|
+
:og => og
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
$conf = OpenStruct.new(conf)
|