nitro 0.19.0 → 0.20.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +187 -0
- data/INSTALL +5 -0
- data/README +11 -5
- data/doc/AUTHORS +11 -1
- data/doc/RELEASES +217 -0
- data/doc/tutorial.txt +1 -2
- data/lib/nitro.rb +9 -6
- data/lib/nitro/adapter/webrick.rb +13 -2
- data/lib/nitro/builder/form.rb +11 -9
- data/lib/nitro/builder/rss.rb +2 -2
- data/lib/nitro/builder/xhtml.rb +15 -0
- data/lib/nitro/caching.rb +15 -10
- data/lib/nitro/conf.rb +0 -5
- data/lib/nitro/controller.rb +118 -81
- data/lib/nitro/cookie.rb +6 -6
- data/lib/nitro/dispatcher.rb +62 -18
- data/lib/nitro/element.rb +4 -1
- data/lib/nitro/element/java_script.rb +15 -0
- data/lib/nitro/localization.rb +3 -4
- data/lib/nitro/markup.rb +4 -4
- data/lib/nitro/mixin/debug.rb +30 -0
- data/lib/nitro/mixin/helper.rb +14 -0
- data/lib/nitro/mixin/javascript.rb +137 -0
- data/lib/nitro/{ui → mixin}/pager.rb +110 -82
- data/lib/nitro/render.rb +20 -8
- data/lib/nitro/request.rb +6 -0
- data/lib/nitro/routing.rb +6 -5
- data/lib/nitro/runner.rb +21 -9
- data/lib/nitro/server.rb +95 -0
- data/lib/nitro/service.rb +0 -1
- data/lib/nitro/session.rb +4 -5
- data/lib/nitro/shaders.rb +2 -2
- data/lib/nitro/template.rb +1 -1
- data/lib/nitro/testing/assertions.rb +2 -4
- data/lib/nitro/testing/context.rb +4 -6
- data/proto/public/js/behaviour.js +254 -0
- data/proto/public/js/controls.js +446 -0
- data/proto/public/js/dragdrop.js +537 -0
- data/proto/public/js/effects.js +612 -0
- data/proto/public/js/prototype.js +644 -370
- data/proto/public/settings.xhtml +64 -0
- data/test/nitro/adapter/tc_cgi.rb +2 -2
- data/test/nitro/builder/tc_rss.rb +1 -1
- data/test/nitro/mixin/tc_pager.rb +35 -0
- data/test/nitro/tc_controller.rb +1 -1
- data/test/nitro/tc_cookie.rb +14 -0
- data/test/nitro/tc_dispatcher.rb +11 -6
- data/test/nitro/tc_server.rb +35 -0
- metadata +20 -15
- data/lib/nitro/builder/atom.rb +0 -74
- data/lib/nitro/part.rb +0 -22
- data/lib/nitro/simple.rb +0 -11
- data/lib/nitro/ui/popup.rb +0 -41
- data/lib/nitro/ui/tabs.rb +0 -25
- data/lib/nitro/uri.rb +0 -193
- data/test/nitro/builder/tc_atom.rb +0 -24
- data/test/nitro/tc_uri.rb +0 -97
- data/test/nitro/ui/tc_pager.rb +0 -49
data/CHANGELOG
CHANGED
@@ -1,5 +1,192 @@
|
|
1
|
+
12-07-2005 George Moschovitis <gm@navel.gr>
|
2
|
+
|
3
|
+
* doc/RELEASES: updated.
|
4
|
+
|
5
|
+
* test/nitro/mixin/tc_pager.rb: added.
|
6
|
+
|
7
|
+
* lib/nitro/mixin/pager.rb: copied old code,
|
8
|
+
added support for in-memory pagination,
|
9
|
+
small fixes: it WORKS!
|
10
|
+
|
11
|
+
* lib/nitro/uri.rb: moved to glue.
|
12
|
+
|
13
|
+
* lib/nitro/helper/*: moved to mixin/*
|
14
|
+
|
15
|
+
* lib/nitro/builder/atom.rb: removed.
|
16
|
+
|
17
|
+
11-07-2005 George Moschovitis <gm@navel.gr>
|
18
|
+
|
19
|
+
* lib/nitro/mixin/pager.rb: introduced,
|
20
|
+
(Pager): introduced,
|
21
|
+
(PagerMixin): introduced,
|
22
|
+
(#paginate): implemented.
|
23
|
+
|
24
|
+
* lib/nitro/mixin: introduced.
|
25
|
+
|
26
|
+
* test/nitro/tc_dispatcher.rb: removed deprecated multiapi
|
27
|
+
tests.
|
28
|
+
|
29
|
+
* test/*: many changes and fixes to pass again.
|
30
|
+
|
31
|
+
* lib/nitro/adapter/webrick.rb (XhtmlFileAdapter): implemented,
|
32
|
+
don't return xhtml source [james_b].
|
33
|
+
|
34
|
+
* doc/RELEASES: updated.
|
35
|
+
|
36
|
+
09-07-2005 George Moschovitis <gm@navel.gr>
|
37
|
+
|
38
|
+
* doc/RELEASES: updated.
|
39
|
+
|
40
|
+
* lib/nitro/helper/javascript.rb (#live_request): implemented,
|
41
|
+
get the href from the actual element.
|
42
|
+
(#autocomplete): implemented.
|
43
|
+
added effects.js to the default js libraries.
|
44
|
+
set autocomplete="off" with a behaviour.
|
45
|
+
|
46
|
+
08-07-2005 George Moschovitis <gm@navel.gr>
|
47
|
+
|
48
|
+
* lib/nitro/helper/javascript.rb: introduced.
|
49
|
+
(#dragable): implemented,
|
50
|
+
yeah drag and drop works!
|
51
|
+
(#escape_javascript): added.
|
52
|
+
(#behaviour): ULTRA COOL added.
|
53
|
+
|
54
|
+
07-07-2005 George Moschovitis <gm@navel.gr>
|
55
|
+
|
56
|
+
* proto/public/js/behaviour.js: introduced.
|
57
|
+
|
58
|
+
* proto/public/js/controls.js: introduced.
|
59
|
+
|
60
|
+
* proto/public/js/dragdrop.js: upgraded to latest version.
|
61
|
+
|
62
|
+
* proto/public/js/effects.js: upgraded to latest version.
|
63
|
+
|
64
|
+
* proto/public/js/effects2.js: deprecated.
|
65
|
+
|
66
|
+
* proto/public/js/prototype.js: upgrated to latest version.
|
67
|
+
|
68
|
+
* README: updated.
|
69
|
+
|
70
|
+
06-07-2005 George Moschovitis <gm@navel.gr>
|
71
|
+
|
72
|
+
* test/nitro/tc_cookie.rb: added.
|
73
|
+
|
74
|
+
* lib/nitro/cookie.rb: set path = '/' by default, fixes NASTY
|
75
|
+
session bug [mneumann].
|
76
|
+
|
77
|
+
04-07-2005 George Moschovitis <gm@navel.gr>
|
78
|
+
|
79
|
+
* lib/nitro/builder/rss.rb: small fixes.
|
80
|
+
|
81
|
+
03-07-2005 George Moschovitis <gm@navel.gr>
|
82
|
+
|
83
|
+
* lib/nitro/controller.rb (#alias_action): added, experimental.
|
84
|
+
|
85
|
+
* added more const_defined? checks.
|
86
|
+
|
87
|
+
01-07-2005 George Moschovitis <gm@navel.gr>
|
88
|
+
|
89
|
+
* lib/nitro/request.rb (#fetch): implemented as shorthand [drak].
|
90
|
+
|
91
|
+
* lib/nitro/render.rb: added controller_name [mneumann].
|
92
|
+
|
93
|
+
30-06-2005 George Moschovitis <gm@navel.gr>
|
94
|
+
|
95
|
+
* test/nitro/tc_server.rb: introduced and implemented.
|
96
|
+
|
97
|
+
* lib/nitro/server.rb: don't use as singleton,
|
98
|
+
(Mounter): implements really cool CherryPy style publishing!
|
99
|
+
|
100
|
+
* lib/nitro/controller.rb: added default action.
|
101
|
+
|
102
|
+
29-06-2005 George Moschovitis <gm@navel.gr>
|
103
|
+
|
104
|
+
* lib/nitro/dispatcher.rb (#update_routes): fixed.
|
105
|
+
|
106
|
+
* lib/nitro/simple.rb: removed.
|
107
|
+
|
108
|
+
* lib/nitro/part.rb: removed.
|
109
|
+
|
110
|
+
28-06-2005 George Moschovitis <gm@navel.gr>
|
111
|
+
|
112
|
+
* lib/nitro.rb (##start): implemented.
|
113
|
+
|
114
|
+
* yeah, the new hello world example passes.
|
115
|
+
|
116
|
+
* lib/nitro/controller.rb: moved SimpleController here,
|
117
|
+
removed the dangerous (and no longer needed) #inherited override,
|
118
|
+
SimpleController in Nitro namespace,
|
119
|
+
(ControllerMixin): started implementing,
|
120
|
+
renamed to Publishable.
|
121
|
+
|
122
|
+
* started using the unless const_defined? trick.
|
123
|
+
|
124
|
+
* lib/nitro/dispatcher.rb: simplified (no context passed),
|
125
|
+
(#dispatch): more natural mount points, no :root.
|
126
|
+
publish alias for add_controller.
|
127
|
+
|
128
|
+
27-06-2005 George Moschovitis <gm@navel.gr>
|
129
|
+
|
130
|
+
* lib/nitro/server.rb: introduced.
|
131
|
+
|
132
|
+
27-06-2005 George Moschovitis <gm@navel.gr>
|
133
|
+
|
134
|
+
* lib/nitro/element.rb: fixed bugs.
|
135
|
+
|
136
|
+
* lib/nitro/builder/form.rb: fixed bugs.
|
137
|
+
|
138
|
+
25-06-2005 George Moschovitis <gm@navel.gr>
|
139
|
+
|
140
|
+
* lib/nitro/helper/debug.rb: implemented.
|
141
|
+
|
142
|
+
* lib/nitro/controller.rb: include HelperSupport.
|
143
|
+
|
144
|
+
* test/nitro/tc_helper.rb: introduced.
|
145
|
+
|
146
|
+
* lib/nitro/helper.rb: introduced,
|
147
|
+
helper macro to make the helpers methods private,
|
148
|
+
(#include_auto_helpers): implemented.
|
149
|
+
(Helper): include debug helper by default.
|
150
|
+
|
151
|
+
24-06-2005 George Moschovitis <gm@navel.gr>
|
152
|
+
|
153
|
+
* lib/nitro/*: beutified/updated/commented many files.
|
154
|
+
|
155
|
+
* lib/nitro/element/java_script.rb: implemented.
|
156
|
+
|
157
|
+
* doc/AUTHORS: updated.
|
158
|
+
|
159
|
+
* proto/public/js/*: added scriptacoulous libraries.
|
160
|
+
|
161
|
+
* proto/public/settings.xhtml: cooler, shows all configuration
|
162
|
+
variables. [epiperak]
|
163
|
+
|
164
|
+
* lib/nitro/*: started adding settings keywords everywhere.
|
165
|
+
|
166
|
+
* lib/nitro/runner.rb: include configuration.
|
167
|
+
|
168
|
+
23-06-2005 George Moschovitis <gm@navel.gr>
|
169
|
+
|
170
|
+
* lib/nitro/markup.rb (MarkupShader): call expand_html.
|
171
|
+
|
172
|
+
21-06-2005 George Moschovitis <gm@navel.gr>
|
173
|
+
|
174
|
+
* lib/nitro/caching.rb: temporarily dissabled per controller
|
175
|
+
caching.
|
176
|
+
|
177
|
+
20-06-2005 George Moschovitis <gm@navel.gr>
|
178
|
+
|
179
|
+
* README: facet/redcloth pointers. [bcandler]
|
180
|
+
|
181
|
+
* INSTALL: facet/redcloth pointers. [bcandler]
|
182
|
+
|
1
183
|
17-06-2005 George Moschovitis <gm@navel.gr>
|
2
184
|
|
185
|
+
* lib/nitro/caching.rb (##caching_enabled): added singleton
|
186
|
+
method too!
|
187
|
+
|
188
|
+
* --- VERSION 0.19.0 ---
|
189
|
+
|
3
190
|
* README: updated.
|
4
191
|
|
5
192
|
* doc/RELEASES: updated.
|
data/INSTALL
CHANGED
@@ -69,6 +69,11 @@ or, at windows
|
|
69
69
|
|
70
70
|
> set RUBYOPT=Ic:\dev\nitro\lib;c:\dev\og\lib;c:\dev\glue\lib
|
71
71
|
|
72
|
+
You also have to manualy install the following libraries:
|
73
|
+
|
74
|
+
* Facets
|
75
|
+
* RedCloth
|
76
|
+
|
72
77
|
= Additional libraries
|
73
78
|
|
74
79
|
Nitro uses a number of additional libraries. RubyGems
|
data/README
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
= Nitro 0.
|
1
|
+
= Nitro 0.20.0 README
|
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
|
@@ -253,13 +253,13 @@ doc/RELEASES
|
|
253
253
|
|
254
254
|
The latest version of Nitro can be found at
|
255
255
|
|
256
|
-
* http://
|
256
|
+
* http://www.nitrohq.com
|
257
257
|
|
258
258
|
== Documentation
|
259
259
|
|
260
260
|
Documentation for Nitro can be found at
|
261
261
|
|
262
|
-
* http://
|
262
|
+
* http://www.nitrohq.com
|
263
263
|
|
264
264
|
Don't forget to read the file doc/RELEASES for usefull
|
265
265
|
documentation bits. Also, have a look at the test cases in
|
@@ -274,6 +274,9 @@ Nitro requires the following applications or libraries:
|
|
274
274
|
http://www.ruby-lang.org
|
275
275
|
Version 1.8.2 is recomended
|
276
276
|
|
277
|
+
* Facets
|
278
|
+
http://rubyforge.org/frs/?group_id=483
|
279
|
+
|
277
280
|
The following applications or libraries are OPTIONAL:
|
278
281
|
|
279
282
|
* PostgreSQL
|
@@ -312,6 +315,9 @@ The following applications or libraries are OPTIONAL:
|
|
312
315
|
http://www.fastcgi.com/dist/fcgi.tar.gz
|
313
316
|
Needed to compile the C-version of the ruby fcgi library.
|
314
317
|
|
318
|
+
* RedCloth
|
319
|
+
http://rubyforge.org/projects/redcloth/
|
320
|
+
|
315
321
|
Please install the required applications and libraries before continuing
|
316
322
|
with the installation of Nitro.
|
317
323
|
|
@@ -461,7 +467,7 @@ http://rubyforge.org/mailman/listinfo/nitro-general
|
|
461
467
|
Copyright (c) 2004-2005, George 'tml' Moschovitis.
|
462
468
|
Copyright (c) 2004-2005, Navel Ltd (http://www.navel.gr)
|
463
469
|
|
464
|
-
Nitro (http://www.
|
465
|
-
|
470
|
+
Nitro (http://www.nitrohq.com) is copyrighted free software
|
471
|
+
created and maintained by George Moschovitis (mailto:gm@navel.gr)
|
466
472
|
and released under the standard BSD Licence. For details consult
|
467
473
|
the file LICENCE.
|
data/doc/AUTHORS
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
MAIN DEVELOPER:
|
2
2
|
|
3
|
-
* George Moschovitis
|
3
|
+
* George Moschovitis <gm@navel.gr>
|
4
4
|
Project leader, architecture and design, main coder,
|
5
5
|
documentation, maintainer.
|
6
6
|
|
@@ -17,3 +17,13 @@ IDEAS, ADDITIONAL CODING, SUPPORT:
|
|
17
17
|
|
18
18
|
* Kostas Nasis <kostas@nasis.com>
|
19
19
|
Ideas and bug reports.
|
20
|
+
|
21
|
+
INTEGRATED LIBRARIES:
|
22
|
+
|
23
|
+
Nitro integrates several open source libraries:
|
24
|
+
|
25
|
+
* Prototype: Object Oriented Javascript library
|
26
|
+
Sam Stepherson, http://www.conio.net
|
27
|
+
|
28
|
+
* Srciptacolous: Special FX Javascript library
|
29
|
+
Thomas Fuchs, http://script.aculo.us
|
data/doc/RELEASES
CHANGED
@@ -1,3 +1,220 @@
|
|
1
|
+
== Version 0.20.0
|
2
|
+
|
3
|
+
Another superb release! State of the art AJAX/Javascript support,
|
4
|
+
Wee components / programmatic renderer integration, a beginners
|
5
|
+
tutorial, self documenting configuration and many important bug
|
6
|
+
fixes. Don't forget to check out our new community site at
|
7
|
+
http://www.nitrohq.com
|
8
|
+
|
9
|
+
Some notable changes:
|
10
|
+
|
11
|
+
* Ajax is THE buzzword at the moment, and Nitro provides the
|
12
|
+
best support you can find. Nitro fully separates the behaviour
|
13
|
+
from the template using the behaviour.js library and allowing
|
14
|
+
for dynamic injection of ajax functionality. The generated code
|
15
|
+
contains clean html and all the javascript organized in a
|
16
|
+
single <script> block. Here is an example:
|
17
|
+
|
18
|
+
in the Controller:
|
19
|
+
|
20
|
+
def index
|
21
|
+
# Inject functionality to the DOM elements of the template.
|
22
|
+
|
23
|
+
behaviour '#alert', %{
|
24
|
+
el.onclick = function() {
|
25
|
+
alert('Hello world');
|
26
|
+
}
|
27
|
+
}
|
28
|
+
auto_complete :country # convert to autocomplete field
|
29
|
+
live :live # convert to async link!
|
30
|
+
draggable :dragger, :revert => false
|
31
|
+
end
|
32
|
+
|
33
|
+
def a_simple_action
|
34
|
+
puts 'LIVE!'
|
35
|
+
end
|
36
|
+
|
37
|
+
def country_auto_complete # data for auto complete.
|
38
|
+
%{
|
39
|
+
<ul>
|
40
|
+
<li>Greece</li>
|
41
|
+
<li>England</li>
|
42
|
+
...
|
43
|
+
</ul>
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
in the Template:
|
48
|
+
|
49
|
+
<label>Enter a country:</label>
|
50
|
+
<input type="text" id="country" />
|
51
|
+
<div id="country_auto_complete" class="auto_complete"> </div>
|
52
|
+
|
53
|
+
Behaviour example:<br />
|
54
|
+
<button id="alert">Click to alert</button>
|
55
|
+
|
56
|
+
Drag and Drop example:<br />
|
57
|
+
<div id="dragger">DRAG ME</div>
|
58
|
+
|
59
|
+
Live/Asynchonous request (AJAX) example:<br />
|
60
|
+
Here comes a <a id="live" href="a_simple_action">live link</a>.<br />
|
61
|
+
(Check out the log to see the action called in the background!)
|
62
|
+
|
63
|
+
All you have to do is define id's for your DOM elements. Here
|
64
|
+
comes the generated code:
|
65
|
+
|
66
|
+
<label>Enter a country:</label>
|
67
|
+
...
|
68
|
+
(Check out the log to see the action called in the background!)
|
69
|
+
|
70
|
+
<script type="text/javascript">
|
71
|
+
var _behaviours = {
|
72
|
+
'#alert': function(el) {
|
73
|
+
el.onclick = function() {
|
74
|
+
alert('Hello world');
|
75
|
+
}
|
76
|
+
},'#country': function(el) {
|
77
|
+
el.autocomplete = 'off';
|
78
|
+
|
79
|
+
},'#live': function(el) {
|
80
|
+
el.onclick = function() {
|
81
|
+
new Ajax.Request(el.href, {});
|
82
|
+
return false;
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
86
|
+
Behaviour.register(_behaviours);
|
87
|
+
|
88
|
+
new Ajax.Autocompleter('country', 'country_auto_complete', 'country_auto_complete');
|
89
|
+
new Draggable('dragger', {revert:false});
|
90
|
+
</script>
|
91
|
+
|
92
|
+
See how a normal <a> tag is converted transparently to an Ajax request.
|
93
|
+
The prototype, scriptacoulous and behaviour js libraries are used.
|
94
|
+
|
95
|
+
The ajax support in this release is a PREVIEW. Stay tuned for
|
96
|
+
major improvements (and some surprises) in the next version.
|
97
|
+
|
98
|
+
* Wee Components integration. Nitro now transparently integrates
|
99
|
+
Wee components. This is truly a win-win situation. Wee applications
|
100
|
+
can use Nitro's infrastructure. Nitro applications can use
|
101
|
+
extremely reusable, stateful Components. For a demonstration
|
102
|
+
check out the new Wee example in the examples distribution!
|
103
|
+
Wee 0.9.0 is needed!
|
104
|
+
|
105
|
+
Even better interoperability with Wee is coming soon. Nitro
|
106
|
+
plays well with the others, and always provides more options.
|
107
|
+
|
108
|
+
* Mixins are modules of functionality that can be mixed into
|
109
|
+
Controllers. The developer can explicitly include Mixins or
|
110
|
+
use Nitro conventions to have helper Mixins automatically
|
111
|
+
included:
|
112
|
+
|
113
|
+
class MyController
|
114
|
+
..
|
115
|
+
end
|
116
|
+
|
117
|
+
module MyControlllerMixin
|
118
|
+
# gets automatically mixed in
|
119
|
+
end
|
120
|
+
|
121
|
+
This works just like Og Mixins.
|
122
|
+
|
123
|
+
* Brand new, self-documenting configuration system. There is a new
|
124
|
+
keyword for defining configuration settings:
|
125
|
+
|
126
|
+
Here is an example:
|
127
|
+
|
128
|
+
class Render
|
129
|
+
setting :template_extension, :default => 'xhtml', :doc => 'The default template extension'
|
130
|
+
end
|
131
|
+
|
132
|
+
class Session
|
133
|
+
setting :store, :default => 'memory', :doc => 'The session store'
|
134
|
+
end
|
135
|
+
|
136
|
+
You can configure the Application using ruby code or yaml files:
|
137
|
+
|
138
|
+
Render.template_extension = 'xhtml'
|
139
|
+
Session.store = 'drb'
|
140
|
+
|
141
|
+
or
|
142
|
+
|
143
|
+
Render:
|
144
|
+
template_extension: xhtml
|
145
|
+
Session:
|
146
|
+
store: drb
|
147
|
+
|
148
|
+
You can access all defined settings:
|
149
|
+
|
150
|
+
Configuration.settings.each { |s| ... }
|
151
|
+
|
152
|
+
You can view the settings of the application along with documentation
|
153
|
+
on the following url:
|
154
|
+
|
155
|
+
www.myapp.com/settings
|
156
|
+
|
157
|
+
This feature is also a PREVIEW. Will be used a lot more in the
|
158
|
+
next release.
|
159
|
+
|
160
|
+
* CherryPy style published objects. Nitro allows you to publish
|
161
|
+
any Ruby object. Here is the new hello world example:
|
162
|
+
|
163
|
+
class HelloWorld
|
164
|
+
def index
|
165
|
+
print 'Hello World'
|
166
|
+
end
|
167
|
+
|
168
|
+
def add(val)
|
169
|
+
print "added: #{val + 2}"
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
App.start(HelloWorld)
|
174
|
+
|
175
|
+
Now, point your browser to localhost:/ or localhost/add?val=2
|
176
|
+
|
177
|
+
If you need the advanced controller functionality just extend
|
178
|
+
your published object from the Controller base class. The normal
|
179
|
+
heuristics to decide which method is safe to publish are aplied.
|
180
|
+
|
181
|
+
* CherryPy-style dispatcher configuration, provides another way
|
182
|
+
to define mounting points for Controllers and published objects.
|
183
|
+
Here is an example:
|
184
|
+
|
185
|
+
server = Server.new
|
186
|
+
server.root = MainController # /
|
187
|
+
server.root.fora = ForaController # /fora
|
188
|
+
server.root.wiki = WikiController # /wiki
|
189
|
+
server.root.really.deep = DeepController # /really/deap
|
190
|
+
|
191
|
+
* Improved pager interface. Thanks to the new PagerMixin, presenting
|
192
|
+
paged lists is easier (and as efficient) than ever:
|
193
|
+
|
194
|
+
items, pager = paginate(Article, :per_page => 5, :order => 'date DESC')
|
195
|
+
|
196
|
+
* Added better sql injection protection in Og sql stores.
|
197
|
+
|
198
|
+
* Fixed Mysql store reconnect bug.
|
199
|
+
|
200
|
+
* Og falls back to pure ruby adapters for Mysql and Postgres, to
|
201
|
+
make it easier to run out of the box. Please, don't forget to
|
202
|
+
switch to the natively compiled adapters for production sites.
|
203
|
+
|
204
|
+
* This is surely the most request feature: Nitro Step by Step
|
205
|
+
by James Britt, a beginers guide to Nitro. Available in the
|
206
|
+
brand-new, Nitro-powered, www.nitrohq.com Community wiki.
|
207
|
+
|
208
|
+
* New examples: The totaly recoded and ultra cool ajax example,
|
209
|
+
a Wee/Nitro example and the new Hello world example.
|
210
|
+
|
211
|
+
* Cleaned up a lot of source files.
|
212
|
+
|
213
|
+
* Many, many, many bug fixes and small improvements. This release
|
214
|
+
fixes all reported bugs in the spirit of out zero-bug tolerance
|
215
|
+
philosophy.
|
216
|
+
|
217
|
+
|
1
218
|
== Version 0.19.0
|
2
219
|
|
3
220
|
Og reloaded part 2: Another superb release introducing a balanced
|