nitro 0.27.0 → 0.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/CHANGELOG +276 -0
  2. data/ProjectInfo +4 -4
  3. data/README +9 -1
  4. data/Rakefile +1 -1
  5. data/doc/AUTHORS +30 -17
  6. data/doc/RELEASES +110 -23
  7. data/lib/glue/sweeper.rb +1 -1
  8. data/lib/glue/webfile.rb +1 -1
  9. data/lib/nitro.rb +1 -1
  10. data/lib/nitro/adapter/acgi.rb +5 -1
  11. data/lib/nitro/adapter/cgi.rb +4 -0
  12. data/lib/nitro/adapter/fastcgi.rb +12 -1
  13. data/lib/nitro/adapter/mongrel.rb +219 -0
  14. data/lib/nitro/adapter/scgi.rb +62 -69
  15. data/lib/nitro/caching.rb +6 -5
  16. data/lib/nitro/caching/actions.rb +14 -8
  17. data/lib/nitro/caching/fragments.rb +32 -17
  18. data/lib/nitro/caching/output.rb +10 -2
  19. data/lib/nitro/cgi.rb +7 -3
  20. data/lib/nitro/cgi/stream.rb +1 -3
  21. data/lib/nitro/compiler.rb +5 -4
  22. data/lib/nitro/compiler/errors.rb +1 -1
  23. data/lib/nitro/compiler/morphing.rb +2 -2
  24. data/lib/nitro/compiler/script.rb +1 -1
  25. data/lib/nitro/context.rb +8 -2
  26. data/lib/nitro/controller.rb +1 -1
  27. data/lib/nitro/dispatcher.rb +0 -2
  28. data/lib/nitro/element.rb +5 -5
  29. data/lib/nitro/flash.rb +1 -1
  30. data/lib/nitro/helper.rb +2 -2
  31. data/lib/nitro/helper/form.rb +1 -1
  32. data/lib/nitro/helper/form/controls.rb +2 -1
  33. data/lib/nitro/helper/javascript.rb +1 -1
  34. data/lib/nitro/helper/javascript/morphing.rb +1 -1
  35. data/lib/nitro/helper/layout.rb +1 -1
  36. data/lib/nitro/helper/pager.rb +7 -3
  37. data/lib/nitro/helper/rss.rb +1 -1
  38. data/lib/nitro/render.rb +1 -1
  39. data/lib/nitro/scaffolding.rb +26 -4
  40. data/lib/nitro/server/drb.rb +106 -0
  41. data/lib/nitro/server/runner.rb +23 -2
  42. data/lib/nitro/session.rb +33 -16
  43. data/lib/nitro/session/drb.rb +6 -20
  44. data/lib/nitro/session/file.rb +4 -49
  45. data/lib/nitro/session/memory.rb +16 -0
  46. data/lib/nitro/session/og.rb +4 -46
  47. data/src/part/admin/controller.rb +2 -3
  48. data/src/part/admin/template/index.xhtml +1 -1
  49. data/test/nitro/tc_cgi.rb +72 -3
  50. data/test/nitro/tc_render.rb +1 -1
  51. data/test/nitro/tc_session.rb +16 -15
  52. metadata +12 -14
  53. data/lib/nitro/caching/invalidation.rb +0 -25
  54. data/lib/nitro/caching/stores.rb +0 -94
  55. data/lib/nitro/helper/form/test.xhtml +0 -0
  56. data/lib/nitro/session/drbserver.rb +0 -84
data/CHANGELOG CHANGED
@@ -1,3 +1,279 @@
1
+ Mon Feb 6 17:27:36 EET 2006 George Moschovitis <gm@navel.gr>
2
+ * Fixed paramix/is problem.
3
+
4
+ Mon Feb 6 17:06:53 EET 2006 George Moschovitis <gm@navel.gr>
5
+ * Fixes for the new 1.0.1 gem
6
+
7
+ Mon Feb 6 14:23:12 EET 2006 George Moschovitis <gm@navel.gr>
8
+ * Updated docs.
9
+
10
+ Mon Feb 6 14:21:27 EET 2006 George Moschovitis <gm@navel.gr>
11
+ * Added a tempora fix for paramix in glue. Will use the facets version of paramix in the next version.
12
+
13
+ Mon Feb 6 13:55:42 EET 2006 George Moschovitis <gm@navel.gr>
14
+ * Many small fixes to make the tests pass again.
15
+
16
+ Sat Feb 4 20:34:52 EET 2006 bryan.a.soto@gmail.com
17
+ * refix_test_suite
18
+ Removes some calls to Og.setup in test cases and uses $og1 set up in CONFIG.rb,
19
+ moves class definitions to namespace of test case to ensure unique tables are
20
+ created, removes some $DBG=true assigns to make sure things are quiet if the
21
+ tester wants them to be and moves a property definition to the beginning of
22
+ a class definition to ensure methods are defined later.
23
+
24
+ Mon Feb 6 11:14:42 EET 2006 George Moschovitis <gm@navel.gr>
25
+ * Small fix.
26
+
27
+ Sun Feb 5 21:07:32 EET 2006 George Moschovitis <gm@navel.gr>
28
+ * Some fixes to make the Blog example run, scaffolding options improved.
29
+
30
+ Sun Feb 5 19:28:29 EET 2006 George Moschovitis <gm@navel.gr>
31
+ * Og.find handles block of EZ (ruby query lang) options, find_one improved like find.
32
+
33
+ Sun Feb 5 19:14:08 EET 2006 George Moschovitis <gm@navel.gr>
34
+ * Docs update, fix in Taggable.
35
+
36
+ Sun Feb 5 14:07:39 EET 2006 George Moschovitis <gm@navel.gr>
37
+ * Small fix in pager helper.
38
+
39
+ Sat Feb 4 20:31:56 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
40
+ * bugfix: wait Context#close to clean up Flash
41
+ Useful if you call differents controller's methods in the same request and want to keep flash during that request.
42
+
43
+ Sat Feb 4 20:30:58 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
44
+ * adjusted log level of SCGI adapter for some actions
45
+
46
+ Sat Feb 4 20:28:42 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
47
+ * Glue::OgCache and Glue::FileCache implemented. Nitro sessions stores use them.
48
+
49
+ Wed Feb 1 17:58:39 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
50
+ * security bugfix: good escaping in taggable.rb
51
+
52
+ Wed Feb 1 17:58:11 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
53
+ * bugfix in orderable.rb
54
+
55
+ Sat Feb 4 21:08:38 EET 2006 George Moschovitis <gm@navel.gr>
56
+ * Updated AUTHORS.
57
+
58
+ Sat Feb 4 20:48:21 EET 2006 George Moschovitis <gm@navel.gr>
59
+ * Fixed admin/manageable_classes bug.
60
+
61
+ Sat Feb 4 20:04:21 EET 2006 George Moschovitis <gm@navel.gr>
62
+ * Bumped version numbers.
63
+
64
+ Sat Feb 4 11:54:55 EET 2006 George Moschovitis <gm@navel.gr>
65
+ * Small fixes.
66
+
67
+ Sat Feb 4 03:59:14 EET 2006 George Moschovitis <gm@navel.gr>
68
+ * Added the Sqlite2 adapter provided by Mitchell Foral. [mforal]
69
+
70
+ Sat Feb 4 03:58:31 EET 2006 George Moschovitis <gm@navel.gr>
71
+ * Updated docs.
72
+
73
+ Thu Feb 2 22:46:01 EET 2006 Jonas Pfenniger <zimba.tm@gmail.com>
74
+ * System configuration is now sorted in part/admin
75
+
76
+ Thu Feb 2 15:55:16 EET 2006 George Moschovitis <gm@navel.gr>
77
+ * Added experimental support for Caboose/EZ for using ruby as an Og query language, more to come.
78
+
79
+ Wed Feb 1 17:38:46 EET 2006 George Moschovitis <gm@navel.gr>
80
+ * More intellient resolve of find options in Og queries, handles String or Array instead of options hash (ex: User.find "name LIKE 'g%'") and better support for prepared statement like queries (ex: [ "name LIKE ? AND age > ?", 'g%', 15 ])
81
+
82
+ Wed Feb 1 13:12:28 EET 2006 George Moschovitis <gm@navel.gr>
83
+ * Minor coding convention fixes in entity.
84
+
85
+ Fri Jan 27 16:35:13 EET 2006 rob@motionpath.com
86
+ * Entity copying methods
87
+
88
+ Mon Jan 2 08:38:48 EET 2006 rainhead@gmail.com
89
+ * Fix RELEASES so it doesn't break rdoc
90
+ rdoc generation was failing because some part of the code examples in the Version 11 release announcement was breaking it. I indented the code examples to make it clear that rdoc shouldn't look at 'em too closely, and now the docs generate again.
91
+
92
+ Tue Jan 31 15:58:18 EET 2006 George Moschovitis <gm@navel.gr>
93
+ * Small fix in runner.
94
+
95
+ Sat Jan 14 02:03:32 EET 2006 aleksi.niemela@helsinki.fi
96
+ * Guillaume's SCGI support improvement patch.
97
+
98
+ Tue Jan 31 14:56:27 EET 2006 George Moschovitis <gm@navel.gr>
99
+ * Added Joshua's mongrel adapter, and bugfixed it a little. [joshua]
100
+
101
+ Tue Jan 31 06:12:15 EET 2006 George Moschovitis <gm@navel.gr>
102
+ * Clean up nitro caching implementation, reuses glue cache system, added more RDoc comments.
103
+
104
+ Tue Jan 31 05:37:08 EET 2006 George Moschovitis <gm@navel.gr>
105
+ * Further cleanup of the session code, better integration with the glue cache system.
106
+
107
+ Mon Jan 30 20:51:05 EET 2006 George Moschovitis <gm@navel.gr>
108
+ * Really minor.
109
+
110
+ Sat Jan 28 12:31:02 EET 2006 George Moschovitis <gm@navel.gr>
111
+ * Added temp fix for facets/paramix.rb Replace the gem version if you need to run the current Glycerin version (remember, you need facets 1.0.1).
112
+
113
+ Sat Jan 28 12:23:39 EET 2006 George Moschovitis <gm@navel.gr>
114
+ * Introduced Cache/Drb, Session uses the new generalized caching system, Added drb server helper script to keep all distributed caches/variables in one easy to manage server.
115
+
116
+ Mon Jan 23 20:21:29 EET 2006 rob@motionpath.com
117
+ * Fix to autoreloader to stop it missing files
118
+
119
+ Fri Jan 27 16:17:14 EET 2006 George Moschovitis <gm@navel.gr>
120
+ * Massive: converted to facets 1.0.1, there may be some problems lurking in the code...
121
+
122
+ Fri Jan 27 11:18:31 EET 2006 George Moschovitis <gm@navel.gr>
123
+ * Fixed Spoark WikiPage::Revision problems. [fang sun]
124
+
125
+ Wed Jan 25 11:41:40 EET 2006 chrisfarms@gmail.com
126
+ * Speed optimization for HasManyControl
127
+
128
+ Wed Jan 25 00:21:07 EET 2006 bryan.a.soto@gmail.com
129
+ * rakefile_fix
130
+ Fixes include directories in test task.
131
+
132
+ Wed Jan 25 01:26:45 EET 2006 bryan.a.soto@gmail.com
133
+ * og_test_suite_fix
134
+ Changes the test suite to use global store configs $og1 and $og2 set up in CONFIG.rb. All test suites just call manage classes, which ignore's its arguments for some reason.
135
+
136
+ Moves all class definitions to within the TestCase subclass definition to ensure that all managed classes have their own table.
137
+
138
+ Various test case fixes, including:
139
+ Changing module names from Og to Glue.
140
+ tc_hierarchical
141
+ tc_optimistic_locking
142
+ tc_orderable
143
+ Fixed some asserts to actually pass.
144
+ tc_taggable
145
+ tc_multi_validations
146
+ Added a file
147
+ multi_validations_model
148
+ Commented out some tests that just don't work.
149
+ tc_kirby
150
+ tc_filesys
151
+
152
+ Wed Jan 25 01:22:44 EET 2006 bryan.a.soto@gmail.com
153
+ * og_test_config_fix
154
+ Makes config responsible for setting up stores. Changes logger if debug is false so that logger doesn't dump to stdout.
155
+
156
+ Wed Jan 25 00:23:41 EET 2006 bryan.a.soto@gmail.com
157
+ * og_manager_fix
158
+ Adds checks so that Og managers don't try to enchant an already enchanted class.
159
+
160
+ Wed Jan 25 00:22:15 EET 2006 bryan.a.soto@gmail.com
161
+ * legacy_fix
162
+ Ensures the find_[all|by]_* methods work for legacy databases by retrieving the field name from the classes properties.
163
+
164
+ Wed Jan 25 01:16:16 EET 2006 bryan.a.soto@gmail.com
165
+ * glue_taggable_fix
166
+ Fixes taggable to account for modules when adding a tag.
167
+
168
+ Wed Jan 25 02:26:10 EET 2006 bryan.a.soto@gmail.com
169
+ * og_store_kirby_fix
170
+ Adds a couple of missing lines to eval_og_insert.
171
+
172
+ Tue Jan 24 13:52:27 EET 2006 George Moschovitis <gm@navel.gr>
173
+ * Added missing cacheable files.
174
+
175
+ Tue Jan 24 13:51:23 EET 2006 George Moschovitis <gm@navel.gr>
176
+ * Introduced Og Cacheable mixin.
177
+
178
+ Tue Jan 24 13:49:46 EET 2006 George Moschovitis <gm@navel.gr>
179
+ * Introduced the new generalized caching system in Glue. Initial implementation of MemoryStore. The new system will be used for fragment caching, og entity (model) caching, session store, application scoped variables and more.
180
+
181
+ Tue Jan 24 01:18:57 EET 2006 bryan.a.soto@gmail.com
182
+ * bugfix_kirby_store
183
+ Repairs Kirby store goof I made.
184
+
185
+ Mon Jan 23 17:49:40 EET 2006 George Moschovitis <gm@navel.gr>
186
+ * NOT LIKE to be mysql compatible.
187
+
188
+ Mon Jan 23 17:49:18 EET 2006 George Moschovitis <gm@navel.gr>
189
+ * Set Og.thread_safe = false in FCGI, CGI, ACGI.
190
+
191
+ Mon Jan 23 16:56:56 EET 2006 Jonas Pfenniger <zimba.tm@gmail.com>
192
+ * Corrected spark's &lt; &gt; in <code>
193
+
194
+ Mon Jan 23 16:02:55 EET 2006 George Moschovitis <gm@navel.gr>
195
+ * Small fixes.
196
+
197
+ Mon Jan 23 16:01:27 EET 2006 George Moschovitis <gm@navel.gr>
198
+ * Small fix.
199
+
200
+ Mon Jan 23 14:42:29 EET 2006 George Moschovitis <gm@navel.gr>
201
+ * Small fixes.
202
+
203
+ Mon Jan 23 14:30:19 EET 2006 George Moschovitis <gm@navel.gr>
204
+ * Added some useful comments.
205
+
206
+ Mon Jan 23 11:28:59 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
207
+ * security bugfix: permissions on session's files
208
+
209
+ Mon Jan 23 12:52:08 EET 2006 George Moschovitis <gm@navel.gr>
210
+ * Fixed nasty compiler bug introduced by a previous patch.
211
+
212
+ Fri Jan 20 11:22:42 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
213
+ * bugfix: avoid mixin of nice urls and hash-type parameters
214
+
215
+ Thu Jan 19 16:55:14 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
216
+ * bugfix: paginate will return an empty array for items
217
+
218
+ Thu Jan 19 01:15:36 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
219
+ * template compilation bugfix
220
+
221
+ Fri Jan 20 11:59:00 EET 2006 rob@motionpath.com
222
+ * parse_multipart test case for tc_cgi.rb
223
+
224
+ Fri Jan 20 13:18:35 EET 2006 George Moschovitis <gm@navel.gr>
225
+ * Manually applied guill's condition.dup patch.
226
+
227
+ Fri Jan 20 11:51:42 EET 2006 George Moschovitis <gm@navel.gr>
228
+ * Fixed has_many bug. [aidan]
229
+
230
+ Thu Jan 19 15:03:27 EET 2006 George Moschovitis <gm@navel.gr>
231
+ * Added after_enchant Og callback, to be used in Cacheable.
232
+
233
+ Mon Jan 16 15:34:28 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
234
+ * handling of arguments in options[:condition] in a Ruby/DBI's style
235
+ auto escaping of arguments by passing an Array to options[:condition].
236
+
237
+ Example:
238
+
239
+ User.find(:condition => [name = ? and create_time > ?", "toto", Time.now])
240
+
241
+ Fri Jan 13 16:58:36 EET 2006 Guillaume Pierronnet <guillaume.pierronnet@gmail.com>
242
+ * some streaming support fixes
243
+
244
+ Wed Jan 18 02:35:05 EET 2006 bryan.a.soto@gmail.com
245
+ * sqlite_schema_evolution
246
+ Adds schema evolution support to Sqlite3 store.
247
+
248
+ Wed Jan 18 17:11:52 EET 2006 George Moschovitis <gm@navel.gr>
249
+ * Integrated the latest version of the pure rub mysql adapter.
250
+
251
+ Wed Jan 18 17:11:16 EET 2006 George Moschovitis <gm@navel.gr>
252
+ * Small fixes in the blog example.
253
+
254
+ --- 0.27.0 ---
255
+
256
+ Mon Jan 16 13:42:31 EET 2006 George Moschovitis <gm@navel.gr>
257
+ * Small fixes.
258
+
259
+ Mon Jan 16 13:14:37 EET 2006 George Moschovitis <gm@navel.gr>
260
+ * Cleanup
261
+
262
+ Mon Jan 16 13:11:07 EET 2006 George Moschovitis <gm@navel.gr>
263
+ * Updated changelog.
264
+
265
+ Wed Jan 18 17:11:16 EET 2006 George Moschovitis <gm@navel.gr>
266
+ * Small fixes in the blog example.
267
+
268
+ Mon Jan 16 13:42:31 EET 2006 George Moschovitis <gm@navel.gr>
269
+ * Small fixes.
270
+
271
+ Mon Jan 16 13:14:37 EET 2006 George Moschovitis <gm@navel.gr>
272
+ * Cleanup
273
+
274
+ Mon Jan 16 13:11:07 EET 2006 George Moschovitis <gm@navel.gr>
275
+ * Updated changelog.
276
+
1
277
  Mon Jan 16 13:08:15 EET 2006 George Moschovitis <gm@navel.gr>
2
278
  * Updated RELEASES.
3
279
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  TITLE : &title Nitro
4
4
  NAME : &pkg nitro
5
- VERSION : '0.27.0'
5
+ VERSION : '0.28.0'
6
6
  STATUS : beta
7
7
 
8
8
  AUTHOR : George Moschovitis
@@ -22,9 +22,9 @@ DESCRIPTION: >
22
22
  staying standards compliant.
23
23
 
24
24
  DEPENDENCIES:
25
- - [ og, '= 0.27.0' ]
26
- - [ gen, '= 0.27.0' ]
27
- - [ glue, '= 0.27.0' ]
25
+ - [ og, '= 0.28.0' ]
26
+ - [ gen, '= 0.28.0' ]
27
+ - [ glue, '= 0.28.0' ]
28
28
  - [ RedCloth, '= 3.0.3' ]
29
29
  - [ ruby-breakpoint, '= 0.5' ]
30
30
  - [ daemons, '= 0.4.2' ]
data/README CHANGED
@@ -1,4 +1,4 @@
1
- = Nitro 0.27.0 README
1
+ = Nitro 0.28.0 README
2
2
 
3
3
  Nitro provides everything you need to develop professional Web
4
4
  applications using Ruby and Javascript.
@@ -339,6 +339,14 @@ documentation bits. Also, have a look at the test cases in
339
339
  the test directory for examples of usage.
340
340
 
341
341
 
342
+ == Videos / Screencasts
343
+
344
+ A number of videos that demonstrate Nitro in practical usage
345
+ are available here:
346
+
347
+ http://www.nitrohq.com/view/Videos
348
+
349
+
342
350
  == Requirements
343
351
 
344
352
  Nitro requires the following applications or libraries:
data/Rakefile CHANGED
@@ -32,7 +32,7 @@ $NITRO_NO_ENVIRONMENT = true
32
32
  # Run the tests.
33
33
 
34
34
  Rake::TestTask.new do |t|
35
- cwd = File.expand_path(File.join(File.dirname(__FILE__) + '.'))
35
+ cwd = File.expand_path(File.join(File.dirname(__FILE__), '..'))
36
36
  t.libs << 'test'
37
37
  %w[glue nitro og].each do |dir|
38
38
  t.libs << File.join(cwd, dir, 'lib')
@@ -1,39 +1,46 @@
1
1
  MAIN DEVELOPER:
2
2
 
3
- * George Moschovitis <gm@navel.gr>
3
+ * George K. Moschovitis <gm@navel.gr>
4
4
  Project leader, architecture and design, main coder,
5
- documentation, maintainer.
5
+ documentation, maintainer (http://www.gmosx.com).
6
6
 
7
7
 
8
- IDEAS, ADDITIONAL CODING, SUPPORT:
8
+ CORE DEVELOPMENT TEAM:
9
9
 
10
10
  * Guillaume Pierronnet <guillaume.pierronnet@laposte.net>
11
- Patches, bug reports.
11
+ Patches, new features, bug fixes.
12
12
 
13
13
  * Chris Farmiloe <chris.farmiloe@farmiloe.com>
14
+ Patches, new features, bug fixes.
15
+
16
+ * Rob Pitt <rob@motionpath.co.uk>
14
17
  Bug fixes, Scaffolding improvements, patches.
18
+
19
+ * Bryan Soto <bryan.a.soto@gmail.com>
20
+ Patches, bug fixes, docs, quality assurance, community
21
+ management.
22
+
23
+
24
+ IDEAS, ADDITIONAL CODING, SUPPORT:
25
+
26
+ * Jonas Pfenniger <zimba.tm@gmail.com>
27
+ Patches, bug reports.
15
28
 
16
29
  * James Britt <james_b@neurogami.com>
17
30
  Additional code, documentation, design, bug reports.
18
31
 
19
- * Dan Yoder <dan@zeraweb.com>
20
- Original 'Elements' implementation, bug reports.
21
-
22
32
  * Aleksi Niemela <Aleksi.Niemela@cs.helsinki.fi>
23
33
  Bug fixes, patches, documentation.
24
34
 
25
- * Rob Pitt <rob@motionpath.co.uk>
26
- Bug fixes, Scaffolding improvements, patches.
27
-
28
- * Bryan Soto <bryan.a.soto@gmail.com>
29
- Small bug fixes, patches.
30
-
31
35
  * Brian Bugh <brian@xsi-design.com>
32
36
  Fixes, Patches.
33
37
 
34
38
  * Zed A. Shaw <zedshaw@zedshaw.com>
35
39
  SCGI adapter.
36
-
40
+
41
+ * Aidan Rogers <aidan@infurious.com>
42
+ Bug reports, patches.
43
+
37
44
  * Peter Abrahamsen <rainhead@gmail.com>
38
45
  Documentation, small patches.
39
46
 
@@ -43,6 +50,12 @@ IDEAS, ADDITIONAL CODING, SUPPORT:
43
50
  * TRANS <transfire@gmail.com>
44
51
  Small bug fixes, patches.
45
52
 
53
+ * Dan Yoder <dan@zeraweb.com>
54
+ Original 'Elements' implementation, bug reports.
55
+
56
+ * Joshua Hoke
57
+ Patches.
58
+
46
59
  * Kostas Nasis <kostas@nasis.com>
47
60
  Ideas and bug reports.
48
61
 
@@ -51,7 +64,7 @@ INTEGRATED LIBRARIES:
51
64
 
52
65
  Nitro integrates several open source libraries:
53
66
 
54
- * Facets (Nano/Mega): The best collection of
67
+ * Facets: The best collection of
55
68
  Ruby extensions/utilities.
56
69
  Tomas Sawyer, http://nano.rubyforge.org, http://mega.rubyforge.org
57
70
 
@@ -68,8 +81,8 @@ CODE FROM OTHER PROJECTS:
68
81
 
69
82
  Occasionaly, Nitro may include code from other open source
70
83
  projects. Such code is often temporary and typically
71
- reimplemented at a later day. Nitro integrates code snippets
72
- from:
84
+ reimplemented at a later day. Nitro integrates *minor* code
85
+ snippets from:
73
86
 
74
87
  * Ruby On Rails,
75
88
  David Hanson, http://www.rubyonrails.com
@@ -1,3 +1,90 @@
1
+ == Version 0.28.0
2
+
3
+ A snapshot of the latest developments. As always, cool new
4
+ features were added, the code is refactored, the security increased
5
+ and reported bugs fixed.
6
+
7
+ Most notable changes:
8
+
9
+ * New generalized caching system. The caching code is refactored
10
+ in a new Glue system. At the moment, caches in memory, DRb,
11
+ filesystem and Og are provided. A memcache version will be available
12
+ in the near future. The new caching system is used to implement
13
+ Session stores, Og caching, Fragment caching, and Application scoped
14
+ parameters. A useful DRb cache management script is provided to
15
+ manage multiple DRb caches.
16
+
17
+ * Introduced a new Og Cacheable mixin. By including this mixin
18
+ in your classes you make them eligible to Og caching. Here comes
19
+ an example:
20
+
21
+ class User
22
+ is Cachable
23
+ property :name, String
24
+ property :age, Fixnum
25
+ end
26
+
27
+ Cacheable reuses the new generalized caching system to provide
28
+ various options for distributed caching. At the moment entities
29
+ (instances of managed classes) are cached by their primary key.
30
+
31
+ * Og now advanced quering using Ruby as the data query language
32
+ to complement the usage of Ruby as a data definition language
33
+ and provide an end-to-end Ruby solution. At the moment only
34
+ supported for the SQL based adapters. Here comes an example:
35
+
36
+ users = User.find do |user|
37
+ user.age > 10
38
+ user.any {
39
+ name == 'George'
40
+ name == 'Stella'
41
+ }
42
+ end
43
+
44
+ # => SELECT * FROM oguser WHERE (oguser.age > 10 AND (oguser.name = 'George' OR oguser.name = 'Stella'))
45
+
46
+ This feature uses the Caboose/EZ code by Ezra. Pure magic!
47
+
48
+ * Og find now supports prepared statement like syntax:
49
+
50
+ User.find :condition => ['name LIKE ? and create_time > ?', 'g%', Time.now]
51
+
52
+ The interpolated values are automatically escaped to avoid
53
+ SQL injection attacks.
54
+
55
+ Some additional forms of find are supported:
56
+
57
+ User.find [['name = ? and create_time > ?', 'gmosx', Time.now]
58
+ User.find "name = 'gmosx'"
59
+
60
+ and more.
61
+
62
+ * Added experimental support for deep copying (cloning) of Og
63
+ managed objects. This mechanism handles properties (annotated
64
+ attributes) and some relation types.
65
+
66
+ * Integration of Facets 1.0.1. The new library features a better
67
+ API and better implementation of various features.
68
+
69
+ * Introduced experimental Mongrel adapter, just use:
70
+
71
+ ruby myapp.rb --mongrel
72
+
73
+ * Fixes in the SCGI/FCGI adapters.
74
+
75
+ * Added schema evolution support to the SQLite adapter. All major
76
+ Og adapter support automatic schema evolution, ie Og detects common
77
+ types of changes in your Ruby code to automatically alter the
78
+ underlying schema for you.
79
+
80
+ * Introduced Og SQLite2 (legacy SQLite) adapter.
81
+
82
+ * Added more test cases, and improved RDoc comments throughout
83
+ the code.
84
+
85
+ * Many, many bug fixes.
86
+
87
+
1
88
  == Version 0.27.0
2
89
 
3
90
  Once again we have a great mix of cool new features, along
@@ -1923,43 +2010,43 @@ Most notable additions:
1923
2010
 
1924
2011
  * Integrated builders with the programmatic render. For example:
1925
2012
 
1926
- <div class="mytable">
1927
- #{o.build_table(:id => 'my_tab', :headers => headers, :values => values)
1928
- </div>
2013
+ <div class="mytable">
2014
+ #{o.build_table(:id => 'my_tab', :headers => headers, :values => values)
2015
+ </div>
1929
2016
 
1930
2017
  or
1931
-
1932
- <p>
1933
- <b>Object Form</b>
1934
- #{o.build_form(obj)}
1935
- </p>
2018
+
2019
+ <p>
2020
+ <b>Object Form</b>
2021
+ #{o.build_form(obj)}
2022
+ </p>
1936
2023
 
1937
2024
  * Og Oracle adapter.
1938
2025
 
1939
2026
  * Og provides advanced metadata for the managed objects
1940
2027
 
1941
- class Article
1942
- property :title, String
1943
- property :body, String
1944
- has_many :comments, Comment
1945
- end
2028
+ class Article
2029
+ property :title, String
2030
+ property :body, String
2031
+ has_many :comments, Comment
2032
+ end
1946
2033
 
1947
- par = Article.properties_and_relations
1948
- => [Property(:title), Property(:body), Og::HasMany(:comments)]
2034
+ par = Article.properties_and_relations
2035
+ => [Property(:title), Property(:body), Og::HasMany(:comments)]
1949
2036
 
1950
- par[2].klass
1951
- => Comment
2037
+ par[2].klass
2038
+ => Comment
1952
2039
 
1953
- par[2].meta[:linkback]
1954
- => :article_oid
2040
+ par[2].meta[:linkback]
2041
+ => :article_oid
1955
2042
 
1956
2043
  * Og Typemacros, here is an example:
1957
2044
 
1958
- def VarChar(size)
1959
- return String, :sql => "NOT NULL VARCHAR(#{size})"
1960
- end
2045
+ def VarChar(size)
2046
+ return String, :sql => "NOT NULL VARCHAR(#{size})"
2047
+ end
1961
2048
 
1962
- property :title, VarChar(30)
2049
+ property :title, VarChar(30)
1963
2050
 
1964
2051
  * Option for faster startup, skip schema check.
1965
2052