nitro 0.8.0 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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
data/README CHANGED
@@ -1,4 +1,4 @@
1
- = Nitro 0.8.0
1
+ = Nitro 0.9.0
2
2
 
3
3
  Nitro is an efficient, yet simple engine for developing professional Web
4
4
  Applications using the Ruby language. Nitro aims to provide a robust
@@ -7,17 +7,51 @@ over a server cluster. However, Nitro can also power simple web
7
7
  applications for deployment on intranets or even personal computers.
8
8
  Nitro integrates the powerful Og Object-Relational mapping library.
9
9
 
10
- Nitro is a multiparadigm application framework and integrates ideas
11
- from Rails, Wee, PHP, JSP and .NET
10
+ Nitro is a multiparadigm application framework and will incorporate ideas
11
+ from Rails, Wee, PHP, JSP and Microsoft.NET.
12
12
 
13
13
 
14
14
  == Features
15
15
 
16
16
  A short summary of the major features:
17
17
 
18
+ * Multiparadigm web appliacations.
19
+
20
+ You can write applications in the ASP/JSP/PHP style, ie by writting
21
+ server pages that are automatically transalted to Ruby code by
22
+ Nitro.
23
+
24
+ Alternatively, you can write Rails style application by utilizing
25
+ the powerfull Controller mechanism.
26
+
27
+ * Advanced Code generation.
28
+
29
+ Nitro in essence writes your Web application for you. The system
30
+ provides a number of domain spefic language extensions (meta-languages)
31
+ to automate generate of common code (OR mapping, validation,
32
+ forms generation, syndication, markup and more).
33
+
34
+ * Object-Relational Mapping
35
+
36
+ Nitro integrates the Og (ObjectGraph) object-relational mapping
37
+ library. Og provides transparent serialization of object graphs to a RDBMS
38
+ backend. Unlike other similar libraries Og maps standard Ruby
39
+ objects to SQL tables and not vice versa. Og provides a meta language
40
+ to describe the relations between objects, a flexible and intuitive api
41
+ for querieng the database, raw access to the SQL language if needed
42
+ (for example to fine tune the automatically generated SQL tables, or
43
+ for custom queries), provides automatic validation, suports deserialization
44
+ to Ruby objects or tuples, automatically generates join tables for
45
+ many_to_many relations and provides a collection of usefull Mixins to
46
+ synthesize common Entities.
47
+
48
+ Og is a combination of the best features of Active Record and the
49
+ former O-R mapping library included in Nitro (NDB). Adapters for
50
+ PostgreSQL and MySQL are included.
51
+
18
52
  * XML server pages (.xhtml)
19
53
 
20
- Nitro uses standard, dully xml compliant xhtml pages with logic
54
+ Nitro uses standard, fully xml compliant xhtml pages with logic
21
55
  code, thus combining the power of embededed Ruby (like erb, eruby)
22
56
  with the xml compliance of Amrita. Even though it is a 'Callback'
23
57
  style templating system it is flexible enough to run as 'Pipeline'
@@ -27,6 +61,7 @@ A short summary of the major features:
27
61
 
28
62
  <!-- example page -->
29
63
  <html>
64
+
30
65
  <?r
31
66
  title = 'Example'
32
67
  version = params['version']
@@ -39,6 +74,32 @@ A short summary of the major features:
39
74
  <?r end ?>
40
75
 
41
76
  </html>
77
+
78
+ * Action / Fragment Synthesis
79
+
80
+ Nitro actions and templates can include other actions or templates
81
+ to allow for component-based development.
82
+
83
+ Here is an example of including an action from a template:
84
+
85
+ <render href="list" />
86
+
87
+ or
88
+
89
+ <inject href="list" />
90
+
91
+ or from an action:
92
+
93
+ list()
94
+
95
+ Nitro server pages can include fragments at 'Compile' time or at
96
+ 'RunTime' time.
97
+
98
+ <!-- compile time include (static include) -->
99
+ <?include href="myfile.inc" />
100
+
101
+ <!-- run time include (dynamic include) -->
102
+ <include href="myfile.inc" />
42
103
 
43
104
  * Shaders, XSLT templates
44
105
 
@@ -52,45 +113,23 @@ A short summary of the major features:
52
113
  precompiles the xsl transformation along with other transformations
53
114
  (for example localization) essentially providing a computationally
54
115
  free transformation step.
55
-
56
- * Multi phase evaluation
57
116
 
58
- Experimental, facilitates efficient HTTP1.1 caching.
117
+ * Multiple Platforms
59
118
 
60
- * Fragment Synthesis
119
+ Runs on Linux and Windows. Has not been tested under MacOSX and
120
+ other Unices.
61
121
 
62
- Nitro server pages can include fragments at 'Compile' time or at
63
- 'RunTime' time.
64
-
65
- <!-- compile time include (static include) -->
66
- <?include href="myfile.si" />
67
-
68
- <!-- run time include (dynamic include) -->
69
- <include href="myfile.si" />
122
+ * Multiple Adaptors
70
123
 
124
+ Nitro supports multiple web server configurations. Out of the box
125
+ it supports WEBrick (pure ruby), Lighttpd (fastcgi), Apache (fastcgi).
126
+ More options will be available in the future.
127
+
71
128
  * Minimum configuration
72
129
 
73
130
  Configuration files are kept to the absolute minimum. The target
74
131
  is to have no configuration files at all.
75
132
 
76
- * Object-Relational Mapping
77
-
78
- Nitro integrates the Og (ObjectGraph) object-relational mapping
79
- library. Og provides transparent serialization of object graphs to a RDBMS
80
- backend. Unlike other similar libraries Og maps standard Ruby
81
- objects to SQL tables and not vice versa. Og provides a meta language
82
- to describe the relations between objects, a flexible and intuitive api
83
- for querieng the database, raw access to the SQL language if needed
84
- (for example to fine tune the automatically generated SQL tables, or
85
- for custom queries), provides automatic validation, suports deserialization
86
- to Ruby objects or tuples, automatically generates join tables for
87
- many_to_many relations and provides a collection of usefull Mixins to
88
- synthesize common Entities.
89
-
90
- Og is a combination of the best features of Active Record and the
91
- former O-R mapping library included in Nitro (NDB). Adapters for
92
- PostgreSQL and MySQL are included.
93
-
94
133
  * Distributed State
95
134
 
96
135
  Nitro provides a powerfull distributed state mechanism that utilizes
@@ -108,6 +147,15 @@ A short summary of the major features:
108
147
  Moreover, Nitro provides the fine-grained filtering method pioneered
109
148
  by Rails where you can attach single methods, blocks, objects or
110
149
  modules, before, after or arrounf actions.
150
+
151
+ * Parts
152
+
153
+ Parts are organized modules of web services. A Web Framework that
154
+ integrates a large collection of parts (User management, Blog,
155
+ Fora, CMS, Personalization, ..) will be released by Navel.
156
+
157
+ Other libraries of parts are expected from the Ruby community when
158
+ the Part API is finalized.
111
159
 
112
160
  * Hierarchical Caching
113
161
 
@@ -122,6 +170,10 @@ A short summary of the major features:
122
170
  The engine calculates intra-page dependencies automatically. A variety
123
171
  of invalidation strategies can be implemented.
124
172
 
173
+ * Multi phase evaluation
174
+
175
+ Experimental, facilitates efficient HTTP1.1 caching.
176
+
125
177
  * Programmatic xhtml rendering.
126
178
 
127
179
  options = ['Male', 'Female']
@@ -154,13 +206,9 @@ A short summary of the major features:
154
206
 
155
207
  Experimental.
156
208
 
157
- * Simple events manager.
158
-
159
- Experimental.
160
-
161
209
  * Advanced debuging features
162
210
 
163
- * When running in debug mode, all exceptions raise are logged
211
+ * When running in debug mode, all exceptions raised are logged
164
212
  to a special debug panel in the current page. Find out the offending
165
213
  file and line from the exception dump, fix the bug, refresh the page.
166
214
 
@@ -173,15 +221,6 @@ A short summary of the major features:
173
221
  state, diagnose bugs all via IRB by simply setting breakpoints in
174
222
  your applications by the call of a method.
175
223
 
176
- * Parts
177
-
178
- Parts are organized modules of web services. A Web Framework that
179
- integrates a large collection of parts (User management, Blog,
180
- Fora, CMS, Personalization, ..) will be released by Navel.
181
-
182
- Other libraries of parts are expected from the Ruby community when
183
- the Part API is finalized.
184
-
185
224
  * UI Components
186
225
 
187
226
  Nitro is distributed with a collection of usefull UI components
@@ -212,29 +251,48 @@ Documentation for Nitro can be found at
212
251
 
213
252
  Nitro requires the following applications or libraries:
214
253
 
215
- * Ruby 1.8.1 and greater (http://www.ruby-lang.org)
216
- Version 1.8.2.preview2 is recomended
254
+ * Ruby 1.8.1 and greater
255
+ http://www.ruby-lang.org
256
+ Version 1.8.2 is recomended
217
257
 
218
- * Apache 2.0 (http://www.apache.org)
219
- Will be optional in a future version.
258
+ The following applications or libraries are OPTIONAL:
220
259
 
221
- The following applications or libraries are optional:
222
-
223
- * PostgreSQL (http://www.postgres.org)
260
+ * PostgreSQL
261
+ http://www.postgres.org
224
262
  Used for Database driven web applications.
225
263
 
226
- * MySQL (http://www.mysql.org)
264
+ * MySQL
265
+ http://www.mysql.org
227
266
  Used for Database driven web applications.
228
267
 
229
- * Ruby-psql (http://www.postgresql.jp/interfaces/ruby/archive/ruby-postgres-0.7.1.tar.gz)
268
+ * Ruby-psql
269
+ http://www.postgresql.jp/interfaces/ruby/archive/ruby-postgres-0.7.1.tar.gz
230
270
  Ruby interface to the PostgreSQL RDBMS.
231
271
 
232
- * Ruby-mysql (http://tmtm.org/ja/ruby/mysql/README_en.html)
272
+ * Ruby-mysql
273
+ http://tmtm.org/ja/ruby/mysql/README_en.html
233
274
  Ruby interface to the MySQL RDBMS.
234
275
 
235
- * Ruby-XSLT (http://gregoire.lejeune.free.fr/ruby-xslt_0.4.0.tar.gz)
276
+ * Ruby-XSLT
277
+ http://gregoire.lejeune.free.fr/ruby-xslt_0.4.0.tar.gz
236
278
  Used for XSLT based templates.
237
279
 
280
+ * Apache 2.0
281
+ http://www.apache.org
282
+ Used to host application in production environments.
283
+
284
+ * Lighttpd
285
+ http://www.lighttpd.net/
286
+ A lean and efficient web server. A perfect companion to Nitro.
287
+
288
+ * Ruby-fcgi
289
+ http://www.moonwolf.com/ruby/archive/ruby-fcgi-0.8.5.tar.gz
290
+ Used for FCGI based applications.
291
+
292
+ * FastCGI development kit
293
+ http://www.fastcgi.com/dist/fcgi.tar.gz
294
+ Needed to compile the C-version of the ruby fcgi library.
295
+
238
296
  Please install the required applications and libraries before continuing
239
297
  with the installation of Nitro.
240
298
 
@@ -248,7 +306,7 @@ gem install nitro
248
306
 
249
307
  Then try to run the examples/tiny Example application.
250
308
 
251
- A tar.gz distribution is also available on http://www.navel.gr/nitro
309
+ A tar.gz distribution is also available on http://www.rubyforge.com/projects/nitro
252
310
 
253
311
 
254
312
  == Running the example applications
@@ -263,7 +321,15 @@ $ vi conf/apache.conf
263
321
 
264
322
  edit user, group,DocumentRoot root as needed.
265
323
 
266
- $ ./ctl start
324
+ or
325
+
326
+ $vi conf/lhttpd.conf
327
+
328
+ edit as needed, or
329
+
330
+ $ vi conf/app.conf.rb
331
+
332
+ $ ruby ctl
267
333
 
268
334
  this script starts the distributed session cluster, apache and the
269
335
  application server.
@@ -274,17 +340,19 @@ to stop the application execute:
274
340
 
275
341
  $ ./ctl stop
276
342
 
277
- * examples/simple
343
+ * examples/blog
278
344
 
279
- A simple application to demonstrate xsl skins, entities, postback.
345
+ A simple Blog application to demonstrate xsl skins, Og models,
346
+ xml dispatchers and more.
280
347
 
281
- $ cd nitro/examples/simple
348
+ $ cd nitro/examples/blog
282
349
 
283
350
  $ vi conf/apache.conf
351
+ $ vi conf/lhttpd.conf
284
352
 
285
- edit user, group,DocumentRoot root as needed.
353
+ edit the configuration as needed.
286
354
 
287
- $ vi conf/config.rb
355
+ $ vi conf/app.conf.rb
288
356
 
289
357
  edit the postgresql user and password
290
358
 
@@ -299,33 +367,20 @@ edit the configuration file to include
299
367
 
300
368
  instead.
301
369
 
302
- run the following script to initialize the postgresql database used by
303
- the example
370
+ there is no need to initialize the database, Og automatically
371
+ takes cate of this.
304
372
 
305
- $ ruby install.rb
373
+ $ ruby ctl
306
374
 
307
- $ ./ctl start
308
-
309
- this script starts the distributed session cluster, apache and the
310
- application server.
375
+ this script starts the the blog application using the WEBrick
376
+ adapter.
311
377
 
312
378
  browse http://127.0.0.1:8080
313
379
 
314
- to attach an irb console to the running server, execute from
315
- another shell:
316
-
317
- $ cd /examples/simple
318
-
319
- $ irb -r env.rb
320
-
321
- to stop the application execute:
322
-
323
- $ ./ctl stop
324
-
325
380
 
326
381
  == Debuging Nitro applications
327
382
 
328
- Have "tail -f" commands running on logs/app.log in your application
383
+ Have "tail -f" commands running on log/app.log in your application
329
384
  directory. Nitro will automatically display debugging and runtime
330
385
  information to these files. Debugging info will also be shown in the
331
386
  browser when running in debug mode.
@@ -337,9 +392,11 @@ bin
337
392
  Commands and wizards.
338
393
 
339
394
  examples/
340
- Various examples. 'tiny' is a minimal example, 'blog' is a fully working and
341
- nice looking Blog implementation, 'og' contains some Og examples and 'flash'
342
- is an example for generating binary content for a Nitro response.
395
+ Various examples. 'tiny' is a minimal example, 'blog' is a
396
+ fully working and nice looking Blog implementation, 'no_xsl_blog'
397
+ is the same example without using XSLT, 'og' contains some Og
398
+ examples and 'flash' is an example for generating binary content
399
+ for a Nitro response.
343
400
 
344
401
  lib/nitro
345
402
  Nitro library source files.
@@ -350,9 +407,13 @@ lib/og
350
407
  lib/glue
351
408
  Common source files.
352
409
 
410
+ lib/parts
411
+ Nitro Web Framework parts. A part is a module of functionality
412
+
353
413
  test
354
414
  Unit and functional tests.
355
415
 
416
+
356
417
  == Running Tests
357
418
 
358
419
  The easiest way to run the included unit tests is through Rake:
@@ -367,16 +428,23 @@ runs all tests except the database tests.
367
428
 
368
429
  Rake can be found at http://rake.rubyforge.org
369
430
 
431
+
370
432
  == Support
371
433
 
372
434
  For any questions regarding Nitro, feel free to ask on the ruby-talk
373
435
  mailing list (which is mirrored to comp.lang.ruby) or contact
374
436
  mailto:gm@navel.gr.
375
437
 
438
+ A Nitro specific mailing list is also available. Please subscribe
439
+ to nitro-general@rubyforge.com. The homepage for this list
440
+ is available here:
441
+
442
+ http://rubyforge.org/mailman/listinfo/nitro-general
443
+
376
444
 
377
445
  == Licence
378
446
 
379
- Copyright (c) 2004 Navel Ltd (http://www.navel.gr)
447
+ Copyright (c) 2004-2005 Navel Ltd (http://www.navel.gr)
380
448
 
381
449
  Nitro (http://www.navel.gr/nitro) is copyrighted free software
382
450
  created and maintained by George Moschovitis (mailto:gm@navel.gr)
data/RELEASES CHANGED
@@ -1,3 +1,53 @@
1
+ == Version 0.9.3 was released on 01/02/2005.
2
+
3
+ A *very* important release. A new abstract rendering
4
+ pipeline is introduced. This pipeline allows for multiple
5
+ adaptors (WEBrick, fastcgi are included).
6
+
7
+ Many classes have be rewritten using *clean* code,
8
+ and the directory structure has improved again. All
9
+ unused and obsolete files have been removed. A new
10
+ version of the Blog example was included. This version
11
+ does not use XSLT and runs on Windows.
12
+
13
+ If you havent seen Nitro or you had problems with an
14
+ earlier version, this is the time to revisit this
15
+ project!
16
+
17
+ Most notable additions:
18
+
19
+ * Drastically improved source code readability.
20
+
21
+ * New abstract rendering pipeline. Benefits:
22
+
23
+ * multiple adaptors.
24
+ * better unit tests.
25
+ * optimized memory allocation.
26
+ * more modular desing.
27
+
28
+ * FastCGI support (tested with Lighttpd).
29
+
30
+ * no_xsl_blog example.
31
+
32
+ This new example is easier to setup, even on Windows.
33
+ This also demonstrates that Nitro does NOT force
34
+ the use of XSLT.
35
+
36
+ * No global variables used for nitro configuration.
37
+
38
+ * Updated the docs to better reflect the rappidly
39
+ evolving codebase.
40
+
41
+ * Og metalanguage relations insert metadata into
42
+ the target class, useful for advanced scaffolders.
43
+
44
+ * Og refer_to meta-language command.
45
+
46
+ * Many bug fixes and small optimizations.
47
+
48
+ The next version will stabilize the Nitro api.
49
+
50
+
1
51
  == Version 0.8 was released on 12/01/2005.
2
52
 
3
53
  A snapshot of the latest code. Cool new features,