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.
Files changed (198) hide show
  1. data/AUTHORS +3 -4
  2. data/ChangeLog +418 -0
  3. data/LICENSE +1 -1
  4. data/README +157 -89
  5. data/RELEASES +50 -0
  6. data/Rakefile +5 -7
  7. data/benchmark/nitro/bench.rb +5 -0
  8. data/benchmark/nitro/simple-webrick-n-200.txt +44 -0
  9. data/benchmark/nitro/static-webrick-n-200.txt +43 -0
  10. data/benchmark/nitro/tiny-lhttpd-n-200-c-5.txt +43 -0
  11. data/benchmark/nitro/tiny-webrick-n-200-c-5.txt +44 -0
  12. data/benchmark/nitro/tiny-webrick-n-200.txt +44 -0
  13. data/benchmark/nitro/tiny2-webrick-n-200.txt +44 -0
  14. data/{lib/nitro/server/cluster.rb → bin/cluster} +26 -30
  15. data/bin/proto/README +2 -2
  16. data/bin/proto/{apache.conf → conf/apache.conf} +0 -0
  17. data/bin/proto/conf/app.conf.rb +22 -0
  18. data/bin/proto/conf/lhttpd.conf +236 -0
  19. data/bin/proto/ctl +4 -0
  20. data/bin/proto/lib/README +5 -0
  21. data/bin/proto/log/README +3 -0
  22. data/bin/proto/root/fcgi.rb +6 -0
  23. data/bin/proto/root/index.xhtml +65 -7
  24. data/bin/proto/root/m/nitro.png +0 -0
  25. data/examples/blog/README +7 -5
  26. data/examples/blog/{apache.conf → conf/apache.conf} +0 -0
  27. data/examples/blog/conf/app.conf.rb +56 -0
  28. data/examples/blog/conf/lhttpd.conf +236 -0
  29. data/examples/blog/ctl +4 -0
  30. data/examples/blog/lib/blog.rb +11 -136
  31. data/examples/blog/lib/blog/controller.rb +99 -0
  32. data/examples/blog/lib/blog/model.rb +39 -0
  33. data/examples/blog/log/README +3 -0
  34. data/examples/blog/root/comments.xhtml +2 -2
  35. data/examples/blog/root/fcgi.rb +6 -0
  36. data/examples/blog/root/index.xhtml +4 -5
  37. data/examples/blog/root/login.xhtml +2 -2
  38. data/examples/blog/root/style.xsl +9 -9
  39. data/examples/blog/root/view_entry.xhtml +2 -2
  40. data/examples/flash/conf/app.conf.rb +23 -0
  41. data/examples/flash/ctl +4 -0
  42. data/examples/flash/log/README +3 -0
  43. data/examples/flash/root/index.xhtml +0 -9
  44. data/examples/flash/root/show_inline_text.xhtml +10 -5
  45. data/examples/no_xsl_blog/README +12 -0
  46. data/examples/no_xsl_blog/conf/apache.conf +0 -0
  47. data/examples/no_xsl_blog/conf/app.conf.rb +57 -0
  48. data/examples/no_xsl_blog/conf/lhttpd.conf +236 -0
  49. data/examples/no_xsl_blog/ctl +4 -0
  50. data/examples/no_xsl_blog/lib/blog.rb +20 -0
  51. data/examples/no_xsl_blog/lib/blog/controller.rb +102 -0
  52. data/examples/no_xsl_blog/lib/blog/model.rb +39 -0
  53. data/examples/no_xsl_blog/lib/blog/template.rb +134 -0
  54. data/examples/no_xsl_blog/log/README +3 -0
  55. data/examples/no_xsl_blog/root/comments.xhtml +41 -0
  56. data/examples/no_xsl_blog/root/entry_form.xhtml +22 -0
  57. data/examples/no_xsl_blog/root/fcgi.rb +6 -0
  58. data/examples/no_xsl_blog/root/index.xhtml +39 -0
  59. data/examples/no_xsl_blog/root/login.xhtml +21 -0
  60. data/examples/no_xsl_blog/root/m/bubbles.gif +0 -0
  61. data/examples/no_xsl_blog/root/m/comments_curve.gif +0 -0
  62. data/examples/no_xsl_blog/root/m/down.gif +0 -0
  63. data/examples/no_xsl_blog/root/m/footer_bg.gif +0 -0
  64. data/examples/no_xsl_blog/root/m/garrow.gif +0 -0
  65. data/examples/no_xsl_blog/root/m/gbull.gif +0 -0
  66. data/examples/no_xsl_blog/root/m/grbull.gif +0 -0
  67. data/examples/no_xsl_blog/root/m/h1_bg.gif +0 -0
  68. data/examples/no_xsl_blog/root/m/header_bg.gif +0 -0
  69. data/examples/no_xsl_blog/root/m/nitro.gif +0 -0
  70. data/examples/no_xsl_blog/root/m/obull.gif +0 -0
  71. data/examples/no_xsl_blog/root/m/page_bg.gif +0 -0
  72. data/examples/no_xsl_blog/root/m/rss.gif +0 -0
  73. data/examples/no_xsl_blog/root/m/side_title_bg.gif +0 -0
  74. data/examples/no_xsl_blog/root/m/sidebar_bg.gif +0 -0
  75. data/examples/no_xsl_blog/root/recent_posts.xhtml +14 -0
  76. data/examples/no_xsl_blog/root/style.css +301 -0
  77. data/examples/no_xsl_blog/root/view_entry.xhtml +25 -0
  78. data/examples/no_xsl_blog/root/view_entry.xml +12 -0
  79. data/examples/og/run.rb +2 -2
  80. data/examples/tiny/README +2 -2
  81. data/examples/tiny/conf/apache.conf +5 -0
  82. data/examples/tiny/conf/app.conf.rb +21 -0
  83. data/examples/tiny/conf/lhttpd.conf +236 -0
  84. data/examples/tiny/ctl +4 -0
  85. data/examples/tiny/log/README +3 -0
  86. data/examples/tiny/root/fcgi.rb +6 -0
  87. data/examples/tiny/root/index.xhtml +7 -4
  88. data/examples/tiny/root/nitro.png +0 -0
  89. data/lib/glue.rb +13 -9
  90. data/lib/glue/array.rb +1 -1
  91. data/lib/glue/cache.rb +1 -1
  92. data/lib/glue/flexob.rb +12 -0
  93. data/lib/glue/hash.rb +1 -1
  94. data/lib/glue/inflector.rb +2 -2
  95. data/lib/glue/logger.rb +4 -8
  96. data/lib/glue/misc.rb +14 -0
  97. data/lib/glue/number.rb +1 -1
  98. data/lib/glue/object.rb +26 -0
  99. data/lib/glue/pool.rb +1 -1
  100. data/lib/glue/property.rb +84 -91
  101. data/lib/glue/string.rb +1 -1
  102. data/lib/glue/time.rb +1 -1
  103. data/lib/glue/validation.rb +1 -1
  104. data/lib/nitro.rb +18 -6
  105. data/lib/nitro/adaptors/cgi.rb +291 -0
  106. data/lib/nitro/adaptors/fastcgi.rb +42 -0
  107. data/lib/nitro/adaptors/runner.rb +123 -0
  108. data/lib/nitro/adaptors/webrick.rb +110 -0
  109. data/lib/nitro/buffering.rb +43 -0
  110. data/lib/nitro/builders/form.rb +1 -1
  111. data/lib/nitro/builders/rss.rb +1 -1
  112. data/{bin → lib/nitro}/cluster.rb +26 -30
  113. data/lib/nitro/context.rb +82 -0
  114. data/lib/nitro/controller.rb +50 -0
  115. data/lib/nitro/cookie.rb +46 -0
  116. data/lib/nitro/dispatcher.rb +105 -0
  117. data/lib/nitro/filters.rb +9 -10
  118. data/lib/nitro/localization.rb +42 -0
  119. data/lib/nitro/mail.rb +11 -14
  120. data/lib/nitro/render.rb +275 -0
  121. data/lib/nitro/request.rb +128 -0
  122. data/lib/nitro/response.rb +38 -0
  123. data/lib/nitro/scaffold.rb +11 -11
  124. data/lib/nitro/session.rb +84 -0
  125. data/lib/nitro/{server/shaders.rb → shaders.rb} +56 -36
  126. data/lib/nitro/ui/pager.rb +23 -26
  127. data/lib/nitro/{sitemap.rb → ui/sitemap.rb} +4 -12
  128. data/lib/nitro/uri.rb +1 -1
  129. data/lib/nitro/version.rb +10 -8
  130. data/lib/og.rb +66 -65
  131. data/lib/og/backend.rb +1 -1
  132. data/lib/og/backends/mysql.rb +48 -52
  133. data/lib/og/backends/psql.rb +34 -37
  134. data/lib/og/connection.rb +15 -15
  135. data/lib/og/enchant.rb +16 -9
  136. data/lib/og/meta.rb +127 -54
  137. data/lib/og/mock.rb +18 -18
  138. data/lib/og/version.rb +6 -4
  139. data/lib/parts/content.rb +4 -8
  140. data/test/glue/tc_logger.rb +3 -0
  141. data/test/glue/tc_property.rb +19 -3
  142. data/test/nitro/adaptors/tc_cgi.rb +63 -0
  143. data/test/nitro/adaptors/tc_webrick.rb +15 -0
  144. data/test/nitro/builders/tc_xml.rb +2 -2
  145. data/test/nitro/tc_context.rb +13 -0
  146. data/test/nitro/tc_controller.rb +47 -0
  147. data/test/nitro/tc_dispatcher.rb +64 -0
  148. data/test/nitro/tc_session.rb +20 -0
  149. data/test/nitro/{tc_sitemap.rb → ui/tc_sitemap.rb} +1 -1
  150. data/test/root/blog/list.xhtml +6 -0
  151. data/test/tc_og.rb +41 -4
  152. metadata +115 -59
  153. data/bin/proto/app.rb +0 -20
  154. data/bin/proto/config.rb +0 -77
  155. data/examples/blog/app.rb +0 -21
  156. data/examples/blog/config.rb +0 -95
  157. data/examples/blog/env.rb +0 -22
  158. data/examples/flash/README +0 -34
  159. data/examples/flash/app.rb +0 -20
  160. data/examples/flash/config.rb +0 -38
  161. data/examples/flash/lib/flash.rb +0 -40
  162. data/examples/flash/tmp.swf +0 -0
  163. data/examples/tiny/app.rb +0 -19
  164. data/examples/tiny/config.rb +0 -29
  165. data/examples/tiny/root/nitro-small.png +0 -0
  166. data/lib/nitro/application.rb +0 -217
  167. data/lib/nitro/config.rb +0 -128
  168. data/lib/nitro/events.rb +0 -122
  169. data/lib/nitro/html.rb +0 -151
  170. data/lib/nitro/http.rb +0 -102
  171. data/lib/nitro/l10n.rb +0 -30
  172. data/lib/nitro/server.rb +0 -59
  173. data/lib/nitro/server/appserver.rb +0 -67
  174. data/lib/nitro/server/cookie.rb +0 -87
  175. data/lib/nitro/server/dispatcher.rb +0 -62
  176. data/lib/nitro/server/filters.rb +0 -75
  177. data/lib/nitro/server/filters/autologin.rb +0 -51
  178. data/lib/nitro/server/fragment.rb +0 -70
  179. data/lib/nitro/server/handlers.rb +0 -127
  180. data/lib/nitro/server/render.rb +0 -426
  181. data/lib/nitro/server/request.rb +0 -658
  182. data/lib/nitro/server/requestpart.rb +0 -54
  183. data/lib/nitro/server/script.rb +0 -387
  184. data/lib/nitro/server/server.rb +0 -57
  185. data/lib/nitro/server/session.rb +0 -220
  186. data/lib/nitro/server/user.rb +0 -46
  187. data/lib/nitro/server/webrick.rb +0 -180
  188. data/lib/nitro/service.rb +0 -26
  189. data/lib/xsl/ui.xsl +0 -51
  190. data/lib/xsl/xforms.xsl +0 -28
  191. data/test/nitro/server/tc_cookie.rb +0 -34
  192. data/test/nitro/server/tc_filters.rb +0 -38
  193. data/test/nitro/server/tc_request.rb +0 -70
  194. data/test/nitro/server/tc_requestpart.rb +0 -28
  195. data/test/nitro/server/tc_session.rb +0 -34
  196. data/test/nitro/tc_events.rb +0 -44
  197. data/test/nitro/tc_html.rb +0 -79
  198. data/test/nitro/tc_http.rb +0 -18
@@ -4,7 +4,7 @@ Here comes the README file for your application.
4
4
 
5
5
  == Configuration
6
6
 
7
- Edit the file conf/webapp.rb as needed.
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
- ruby app.rb --start
17
+ ./ctl
18
18
 
19
19
  then point your browser to:
20
20
 
@@ -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"
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
4
+ require 'nitro/adaptors/runner'
@@ -0,0 +1,5 @@
1
+ = Library
2
+
3
+ Your ruby implementation files come here (components,
4
+ controllers, models, utils etc).
5
+
@@ -0,0 +1,3 @@
1
+ = Logs
2
+
3
+ Various logs come here.
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.join(File.dirname(__FILE__), '..', 'conf', 'app.conf.rb')
4
+ require 'nitro/adaptors/fastcgi'
5
+
6
+ N::FastCGI.start($conf)
@@ -1,11 +1,69 @@
1
1
  <?xml version="1.0"?>
2
2
 
3
- <x:page xmlns:x="http://www.navel.gr/xml/shader.xsd">
3
+ <html>
4
+ <head>
5
+ <title>Feel the magic!</title>
6
+ <style>
7
+ body { margin: 10px; background-color: #fff; color: #333; }
4
8
 
5
- <x:cell id="main">
6
- Your application comes here!<br />
7
- Happy Hacking :-)
8
- </x:cell>
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>
@@ -4,11 +4,13 @@ A simple blog.
4
4
 
5
5
  == Configuration
6
6
 
7
- Edit the file conf/webapp.rb as needed. Dont forget to set your name
8
- and the password:
7
+ Edit the configuration files in conf/* as needed.
9
8
 
10
- $blog_username = 'your name'
11
- $blog_password = 'your password'
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 app.rb --start
23
+ ruby ctl
22
24
 
23
25
  then point your browser to:
24
26
 
@@ -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)