ramaze 2010.01 → 2010.03

Sign up to get free protection for your applications and to get access to all the features.
data/MANIFEST CHANGED
@@ -126,6 +126,7 @@ examples/app/wikore/src/model.rb
126
126
  examples/app/wikore/start.rb
127
127
  examples/app/wikore/view/index.xhtml
128
128
  examples/app/wiktacular/README
129
+ examples/app/wiktacular/layout/application.xhtml
129
130
  examples/app/wiktacular/mkd/link/2007-07-20_19-45-51.mkd
130
131
  examples/app/wiktacular/mkd/link/current.mkd
131
132
  examples/app/wiktacular/mkd/main/2007-07-20_16-31-33.mkd
@@ -147,10 +148,9 @@ examples/app/wiktacular/spec/wiktacular.rb
147
148
  examples/app/wiktacular/src/controller.rb
148
149
  examples/app/wiktacular/src/model.rb
149
150
  examples/app/wiktacular/start.rb
150
- examples/app/wiktacular/template/edit.xhtml
151
- examples/app/wiktacular/template/html_layout.xhtml
152
- examples/app/wiktacular/template/index.xhtml
153
- examples/app/wiktacular/template/new.xhtml
151
+ examples/app/wiktacular/view/edit.xhtml
152
+ examples/app/wiktacular/view/index.xhtml
153
+ examples/app/wiktacular/view/new.xhtml
154
154
  examples/basic/element.rb
155
155
  examples/basic/gestalt.rb
156
156
  examples/basic/hello.rb
data/Rakefile CHANGED
@@ -14,29 +14,26 @@ PROJECT_SPECS = FileList[
14
14
  PROJECT_MODULE = 'Ramaze'
15
15
  PROJECT_JQUERY_FILE = 'lib/proto/public/js/jquery.js'
16
16
  PROJECT_README = 'README.md'
17
- PROJECT_VERSION = ENV['VERSION'] || Date.today.strftime('%Y.%m.%d')
17
+ PROJECT_VERSION = ENV['VERSION'].dup || Date.today.strftime('%Y.%m.%d')
18
18
  PROJECT_COPYRIGHT = [
19
19
  "# Copyright (c) #{Time.now.year} Michael Fellinger m.fellinger@gmail.com",
20
20
  "# All files in this distribution are subject to the terms of the Ruby license."
21
21
  ]
22
22
 
23
23
  DEPENDENCIES = {
24
- 'innate' => {:version => '= 2010.01'},
24
+ 'innate' => {:version => '= 2010.03'},
25
25
  }
26
26
 
27
27
  DEVELOPMENT_DEPENDENCIES = {
28
- "RedCloth" => {:version => "4.2.2"},
29
- "Remarkably" => {:version => "0.5.2", :lib => 'remarkably'},
30
- "abstract" => {:version => "1.0.0"},
31
- "activesupport" => {:version => "2.3.5"},
28
+ "abstract" => {:version => "1.0.0"},
32
29
  "addressable" => {:version => "2.1.1"},
33
30
  "bacon" => {:version => "1.1.0"},
34
31
  "builder" => {:version => "2.1.2"},
35
32
  "erector" => {:version => "0.7.2"},
36
33
  "erubis" => {:version => "2.6.5"},
37
34
  "ezamar" => {:version => "2009.06"},
38
- "gemcutter" => {:version => "0.3.0"},
39
- "haml" => {:version => "2.2.16"},
35
+ "gemcutter" => {:version => "0.5.0"},
36
+ "haml" => {:version => "2.2.20"},
40
37
  "hpricot" => {:version => "0.8.2"},
41
38
  "json" => {:version => "1.2.0"},
42
39
  "less" => {:version => "1.1.13"},
@@ -45,20 +42,24 @@ DEVELOPMENT_DEPENDENCIES = {
45
42
  "localmemcache" => {:version => "0.4.4"},
46
43
  "lokar" => {:version => "0.1.0"},
47
44
  "maruku" => {:version => "0.6.0"},
48
- "memcache-client" => {:version => "1.7.7", :lib => 'memcache'},
49
- "mustache" => {:version => "0.5.1"},
50
- "mutter" => {:version => "0.5.2"},
45
+ "memcache-client" => {:version => "1.8.0", :lib => 'memcache'},
46
+ "mustache" => {:version => "0.6.0"},
47
+ "mutter" => {:version => "0.5.3"},
51
48
  "nagoro" => {:version => "2009.05"},
52
- "polyglot" => {:version => "0.2.9"},
53
- "rack" => {:version => "1.1.0"},
49
+ "polyglot" => {:version => "0.3.0"},
54
50
  "rack-contrib" => {:version => "0.9.2", :lib => 'rack/contrib'},
55
51
  "rack-test" => {:version => "0.5.3", :lib => 'rack/test'},
56
- "sequel" => {:version => "3.8.0"},
57
- "slippers" => {:version => "0.0.13"},
52
+ "ramaze" => {:version => "2010.03.02"},
53
+ "RedCloth" => {:version => "4.2.3"},
54
+ "Remarkably" => {:version => "0.5.2", :lib => 'remarkably'},
55
+ "RubyInline" => {:version => "3.8.4"},
56
+ "sequel" => {:version => "3.9.0"},
57
+ "slippers" => {:version => "0.0.14"},
58
58
  "sqlite3-ruby" => {:version => "1.2.5", :lib => 'sqlite3'},
59
59
  "tagz" => {:version => "7.2.3"},
60
60
  "tenjin" => {:version => "0.6.1"},
61
- "treetop" => {:version => "1.4.3"},
61
+ "treetop" => {:version => "1.4.4"},
62
+ "ZenTest" => {:version => "4.2.1"},
62
63
  }
63
64
 
64
65
  GEMSPEC = Gem::Specification.new{|s|
@@ -76,7 +77,7 @@ GEMSPEC = Gem::Specification.new{|s|
76
77
  s.bindir = "bin"
77
78
  s.executables = ["ramaze"]
78
79
  s.rubyforge_project = "ramaze"
79
- s.required_rubygems_version = '>= 1.3.1'
80
+ s.required_rubygems_version = '>= 1.3.5'
80
81
 
81
82
  s.post_install_message = <<MESSAGE.strip
82
83
  ============================================================
data/doc/AUTHORS CHANGED
@@ -1,7 +1,7 @@
1
1
  Following persons have contributed to ramaze.
2
2
  (Sorted by number of submitted patches, then alphabetically)
3
3
 
4
- 2668 Michael Fellinger <m.fellinger@gmail.com>
4
+ 2682 Michael Fellinger <m.fellinger@gmail.com>
5
5
  216 Aman Gupta <aman@ramaze.net>
6
6
  89 Jonathan Buch <jonathan.buch@gmail.com>
7
7
  77 Pistos <gitsomegrace.5.pistos@geoshell.com>
@@ -16,6 +16,7 @@ Following persons have contributed to ramaze.
16
16
  6 Antti Tuomi <antti.tuomi@tkk.fi>
17
17
  6 Sam Carr <samcarr@gmail.com>
18
18
  5 Dmitry Gorbik <socket.h@gmail.com>
19
+ 5 mwlang <mwlang@cybrains.net>
19
20
  4 Andreas Karlsson <andreas@proxel.se>
20
21
  4 James Tucker <jftucker@gmail.com>
21
22
  4 mig <mig@mypeplum.com>
@@ -24,6 +25,7 @@ Following persons have contributed to ramaze.
24
25
  3 Riku Raisaenen <riku@helloit.fi>
25
26
  3 starapor <me@sarahtaraporewalla.com>
26
27
  2 Andrew Farmer <xichekolas@gmail.com>
28
+ 2 jShaf <joshua.shaffner@gmail.com>
27
29
  2 Lars Olsson <lasso@lassoweb.se>
28
30
  2 Masahiro Nakagawa <repeatedly@gmail.com>
29
31
  2 Yutaka HARA <yutaka.hara+github@gmail.com>
@@ -38,6 +40,7 @@ Following persons have contributed to ramaze.
38
40
  1 Gavin Kistner <gavin@phrogz.net>
39
41
  1 Jean-Francois Chevrette <jfchevrette@iweb.ca>
40
42
  1 Jeremy Evans <code@jeremyevans.net>
43
+ 1 kez <kdobson@gmail.com>
41
44
  1 Martin Hilbig <blueonyx@dev-area.net>
42
45
  1 Matt Rubens <mrubens@goldencookie.localdomain>
43
46
  1 Rob Lievaart <rob@rebeltechnologies.nl>
data/doc/CHANGELOG CHANGED
@@ -1,3 +1,97 @@
1
+ [43a38b8 | Mon Mar 08 13:55:07 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
2
+
3
+ * Version 2010.03
4
+
5
+ [8629332 | Tue Mar 02 05:36:52 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
6
+
7
+ * Gracefully handle empty commit title
8
+
9
+ [04e7ac5 | Tue Mar 02 05:31:21 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
10
+
11
+ * Remove polyglot dependency, it's indirect
12
+
13
+ [cc60569 | Thu Feb 25 18:31:39 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
14
+
15
+ * Fix upload example
16
+
17
+ [957bbee | Sun Feb 14 14:01:33 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
18
+
19
+ * Update todolist.html
20
+
21
+ [9c39d64 | Sat Feb 13 21:55:29 UTC 2010] jShaf <joshua.shaffner@gmail.com>
22
+
23
+ *
24
+
25
+ [2b917ff | Sat Feb 13 21:48:10 UTC 2010] jShaf <joshua.shaffner@gmail.com>
26
+
27
+ *
28
+
29
+ [5c93ded | Tue Feb 02 08:26:17 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
30
+
31
+ * Revert "Made Haml cache more efficient"
32
+
33
+ This reverts commit 45db6fe0696dfac7deeebba42c62c6bcca8bab10.
34
+
35
+ [87a2562 | Tue Feb 02 08:26:02 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
36
+
37
+ * Revert "Fixed small bug in haml view"
38
+
39
+ This reverts commit a226b402518e17d1715b1632981732a5d43b56f9.
40
+
41
+ [a85a6b5 | Tue Feb 02 08:25:41 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
42
+
43
+ * Revert "Little refactoring"
44
+
45
+ This reverts commit 4e6d6a17e46d8d26c012781ef7b5140fba50237c.
46
+
47
+ [ba832e9 | Tue Feb 02 08:23:30 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
48
+
49
+ * Document the failure around Haml caching as a spec
50
+
51
+ [d931221 | Wed Jan 20 11:52:08 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
52
+
53
+ * Fix old reference to BASEDIR
54
+
55
+ [0b4d33d | Wed Jan 20 11:34:46 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
56
+
57
+ * Update the HTML todolist tutorial to match TXT version
58
+
59
+ [a1ca6a1 | Wed Jan 13 04:32:00 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
60
+
61
+ * Fix wiktacular
62
+
63
+ [d23dd7b | Wed Jan 13 01:34:58 UTC 2010] mwlang <mwlang@cybrains.net>
64
+
65
+ * minor tweaks
66
+
67
+ [645e221 | Wed Jan 13 00:22:01 UTC 2010] mwlang <mwlang@cybrains.net>
68
+
69
+ * fixed anchor in new.xhtml
70
+
71
+ [1b3192d | Wed Jan 13 00:11:03 UTC 2010] mwlang <mwlang@cybrains.net>
72
+
73
+ * fixed the specs for wiktacular
74
+
75
+ [037dfd9 | Tue Jan 12 23:10:41 UTC 2010] mwlang <mwlang@cybrains.net>
76
+
77
+ * updated to work with Ramaze 2010.01
78
+
79
+ [4ea45ca | Tue Jan 12 23:05:23 UTC 2010] mwlang <mwlang@cybrains.net>
80
+
81
+ * changing directory names to current conventions
82
+
83
+ [519e76f | Tue Jan 12 00:56:30 UTC 2010] kez <kdobson@gmail.com>
84
+
85
+ * Fixed a bug with the auto_link regexp
86
+
87
+ [fb08f7c | Thu Jan 07 04:48:32 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
88
+
89
+ * Next release is going to need rubygems 1.3.5
90
+
91
+ [017a759 | Thu Jan 07 04:48:19 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
92
+
93
+ * Remove some dev dependencies we don't need
94
+
1
95
  [1e88bb6 | Wed Jan 06 15:58:30 UTC 2010] Michael Fellinger <m.fellinger@gmail.com>
2
96
 
3
97
  * Version 2010.01
@@ -3,7 +3,7 @@
3
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4
4
  <head>
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
- <meta name="generator" content="AsciiDoc 8.4.2" />
6
+ <meta name="generator" content="AsciiDoc 8.5.3" />
7
7
  <title>The official Ramaze Todo-list tutorial</title>
8
8
  <style type="text/css">
9
9
  /* Debug borders */
@@ -91,7 +91,7 @@ span#author {
91
91
  }
92
92
  span#email {
93
93
  }
94
- span#revision {
94
+ span#revnumber, span#revdate, span#revremark {
95
95
  font-family: sans-serif;
96
96
  }
97
97
 
@@ -118,12 +118,14 @@ div#preamble {
118
118
  div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
119
119
  div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
120
120
  div.admonitionblock {
121
- margin-top: 1.5em;
121
+ margin-top: 1.0em;
122
122
  margin-bottom: 1.5em;
123
123
  }
124
124
  div.admonitionblock {
125
- margin-top: 2.5em;
126
- margin-bottom: 2.5em;
125
+ margin-top: 2.0em;
126
+ margin-bottom: 2.0em;
127
+ margin-right: 10%;
128
+ color: #606060;
127
129
  }
128
130
 
129
131
  div.content { /* Block element content. */
@@ -165,21 +167,21 @@ div.listingblock > div.content {
165
167
  padding: 0.5em;
166
168
  }
167
169
 
168
- div.quoteblock {
169
- padding-left: 2.0em;
170
+ div.quoteblock, div.verseblock {
171
+ padding-left: 1.0em;
172
+ margin-left: 1.0em;
170
173
  margin-right: 10%;
174
+ border-left: 5px solid #dddddd;
175
+ color: #777777;
171
176
  }
177
+
172
178
  div.quoteblock > div.attribution {
173
179
  padding-top: 0.5em;
174
180
  text-align: right;
175
181
  }
176
182
 
177
- div.verseblock {
178
- padding-left: 2.0em;
179
- margin-right: 10%;
180
- }
181
- div.verseblock > div.content {
182
- white-space: pre;
183
+ div.verseblock > pre.content {
184
+ font-family: inherit;
183
185
  }
184
186
  div.verseblock > div.attribution {
185
187
  padding-top: 0.75em;
@@ -200,17 +202,17 @@ div.admonitionblock .icon {
200
202
  }
201
203
  div.admonitionblock td.content {
202
204
  padding-left: 0.5em;
203
- border-left: 2px solid silver;
205
+ border-left: 3px solid #dddddd;
204
206
  }
205
207
 
206
208
  div.exampleblock > div.content {
207
- border-left: 2px solid silver;
208
- padding: 0.5em;
209
+ border-left: 3px solid #dddddd;
210
+ padding-left: 0.5em;
209
211
  }
210
212
 
211
213
  div.imageblock div.content { padding-left: 0; }
212
- div.imageblock img { border: 1px solid silver; }
213
214
  span.image img { border-style: none; }
215
+ a.image:visited { color: white; }
214
216
 
215
217
  dl {
216
218
  margin-top: 0.8em;
@@ -255,7 +257,7 @@ div.compact div, div.compact div {
255
257
  div.tableblock > table {
256
258
  border: 3px solid #527bbd;
257
259
  }
258
- thead {
260
+ thead, p.table.header {
259
261
  font-family: sans-serif;
260
262
  font-weight: bold;
261
263
  }
@@ -310,10 +312,42 @@ div.hdlist.compact tr {
310
312
  background: yellow;
311
313
  }
312
314
 
315
+ .footnote, .footnoteref {
316
+ font-size: 0.8em;
317
+ }
318
+
319
+ span.footnote, span.footnoteref {
320
+ vertical-align: super;
321
+ }
322
+
323
+ #footnotes {
324
+ margin: 20px 0 20px 0;
325
+ padding: 7px 0 0 0;
326
+ }
327
+
328
+ #footnotes div.footnote {
329
+ margin: 0 0 5px 0;
330
+ }
331
+
332
+ #footnotes hr {
333
+ border: none;
334
+ border-top: 1px solid silver;
335
+ height: 1px;
336
+ text-align: left;
337
+ margin-left: 0;
338
+ width: 20%;
339
+ min-width: 100px;
340
+ }
341
+
342
+
313
343
  @media print {
314
344
  div#footer-badges { display: none; }
315
345
  }
316
346
 
347
+ div#toc {
348
+ margin-bottom: 2.5em;
349
+ }
350
+
317
351
  div#toctitle {
318
352
  color: #527bbd;
319
353
  font-family: sans-serif;
@@ -339,10 +373,57 @@ div.toclevel4 {
339
373
  margin-left: 6em;
340
374
  font-size: 0.9em;
341
375
  }
376
+ /* Workarounds for IE6's broken and incomplete CSS2. */
377
+
378
+ div.sidebar-content {
379
+ background: #ffffee;
380
+ border: 1px solid silver;
381
+ padding: 0.5em;
382
+ }
383
+ div.sidebar-title, div.image-title {
384
+ color: #527bbd;
385
+ font-family: sans-serif;
386
+ font-weight: bold;
387
+ margin-top: 0.0em;
388
+ margin-bottom: 0.5em;
389
+ }
390
+
391
+ div.listingblock div.content {
392
+ border: 1px solid silver;
393
+ background: #f4f4f4;
394
+ padding: 0.5em;
395
+ }
396
+
397
+ div.quoteblock-attribution {
398
+ padding-top: 0.5em;
399
+ text-align: right;
400
+ }
401
+
402
+ pre.verseblock-content {
403
+ font-family: inherit;
404
+ }
405
+ div.verseblock-attribution {
406
+ padding-top: 0.75em;
407
+ text-align: left;
408
+ }
409
+
410
+ div.exampleblock-content {
411
+ border-left: 3px solid #dddddd;
412
+ padding-left: 0.5em;
413
+ }
414
+
415
+ /* IE6 sets dynamically generated links as visited. */
416
+ div#toc a:visited { color: blue; }
342
417
  </style>
343
418
  <script type="text/javascript">
344
419
  /*<![CDATA[*/
345
- window.onload = function(){generateToc(2)}
420
+ window.onload = function(){asciidoc.footnotes();}
421
+ var asciidoc = { // Namespace.
422
+
423
+ /////////////////////////////////////////////////////////////////////
424
+ // Table Of Contents generator
425
+ /////////////////////////////////////////////////////////////////////
426
+
346
427
  /* Author: Mihai Bazon, September 2002
347
428
  * http://students.infoiasi.ro/~mishoo
348
429
  *
@@ -354,53 +435,55 @@ window.onload = function(){generateToc(2)}
354
435
  */
355
436
 
356
437
  /* modified by Troy D. Hanson, September 2006. License: GPL */
357
- /* modified by Stuart Rackham, October 2006. License: GPL */
358
-
359
- function getText(el) {
360
- var text = "";
361
- for (var i = el.firstChild; i != null; i = i.nextSibling) {
362
- if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
363
- text += i.data;
364
- else if (i.firstChild != null)
365
- text += getText(i);
366
- }
367
- return text;
368
- }
438
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */
369
439
 
370
- function TocEntry(el, text, toclevel) {
371
- this.element = el;
372
- this.text = text;
373
- this.toclevel = toclevel;
374
- }
440
+ // toclevels = 1..4.
441
+ toc: function (toclevels) {
375
442
 
376
- function tocEntries(el, toclevels) {
377
- var result = new Array;
378
- var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
379
- // Function that scans the DOM tree for header elements (the DOM2
380
- // nodeIterator API would be a better technique but not supported by all
381
- // browsers).
382
- var iterate = function (el) {
443
+ function getText(el) {
444
+ var text = "";
383
445
  for (var i = el.firstChild; i != null; i = i.nextSibling) {
384
- if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
385
- var mo = re.exec(i.tagName)
386
- if (mo)
387
- result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
388
- iterate(i);
446
+ if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
447
+ text += i.data;
448
+ else if (i.firstChild != null)
449
+ text += getText(i);
450
+ }
451
+ return text;
452
+ }
453
+
454
+ function TocEntry(el, text, toclevel) {
455
+ this.element = el;
456
+ this.text = text;
457
+ this.toclevel = toclevel;
458
+ }
459
+
460
+ function tocEntries(el, toclevels) {
461
+ var result = new Array;
462
+ var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
463
+ // Function that scans the DOM tree for header elements (the DOM2
464
+ // nodeIterator API would be a better technique but not supported by all
465
+ // browsers).
466
+ var iterate = function (el) {
467
+ for (var i = el.firstChild; i != null; i = i.nextSibling) {
468
+ if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
469
+ var mo = re.exec(i.tagName);
470
+ if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
471
+ result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
472
+ }
473
+ iterate(i);
474
+ }
389
475
  }
390
476
  }
477
+ iterate(el);
478
+ return result;
391
479
  }
392
- iterate(el);
393
- return result;
394
- }
395
480
 
396
- // This function does the work. toclevels = 1..4.
397
- function generateToc(toclevels) {
398
481
  var toc = document.getElementById("toc");
399
- var entries = tocEntries(document.getElementsByTagName("body")[0], toclevels);
482
+ var entries = tocEntries(document.getElementById("content"), toclevels);
400
483
  for (var i = 0; i < entries.length; ++i) {
401
484
  var entry = entries[i];
402
485
  if (entry.element.id == "")
403
- entry.element.id = "toc" + i;
486
+ entry.element.id = "_toc_" + i;
404
487
  var a = document.createElement("a");
405
488
  a.href = "#" + entry.element.id;
406
489
  a.appendChild(document.createTextNode(entry.text));
@@ -410,7 +493,58 @@ function generateToc(toclevels) {
410
493
  toc.appendChild(div);
411
494
  }
412
495
  if (entries.length == 0)
413
- document.getElementById("header").removeChild(toc);
496
+ toc.parentNode.removeChild(toc);
497
+ },
498
+
499
+
500
+ /////////////////////////////////////////////////////////////////////
501
+ // Footnotes generator
502
+ /////////////////////////////////////////////////////////////////////
503
+
504
+ /* Based on footnote generation code from:
505
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
506
+ */
507
+
508
+ footnotes: function () {
509
+ var cont = document.getElementById("content");
510
+ var noteholder = document.getElementById("footnotes");
511
+ var spans = cont.getElementsByTagName("span");
512
+ var refs = {};
513
+ var n = 0;
514
+ for (i=0; i<spans.length; i++) {
515
+ if (spans[i].className == "footnote") {
516
+ n++;
517
+ // Use [\s\S] in place of . so multi-line matches work.
518
+ // Because JavaScript has no s (dotall) regex flag.
519
+ note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
520
+ noteholder.innerHTML +=
521
+ "<div class='footnote' id='_footnote_" + n + "'>" +
522
+ "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
523
+ n + "</a>. " + note + "</div>";
524
+ spans[i].innerHTML =
525
+ "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
526
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
527
+ var id =spans[i].getAttribute("id");
528
+ if (id != null) refs["#"+id] = n;
529
+ }
530
+ }
531
+ if (n == 0)
532
+ noteholder.parentNode.removeChild(noteholder);
533
+ else {
534
+ // Process footnoterefs.
535
+ for (i=0; i<spans.length; i++) {
536
+ if (spans[i].className == "footnoteref") {
537
+ var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
538
+ href = href.match(/#.*/)[0]; // Because IE return full URL.
539
+ n = refs[href];
540
+ spans[i].innerHTML =
541
+ "[<a href='#_footnote_" + n +
542
+ "' title='View footnote' class='footnote'>" + n + "</a>]";
543
+ }
544
+ }
545
+ }
546
+ }
547
+
414
548
  }
415
549
  /*]]>*/
416
550
  </script>
@@ -420,13 +554,10 @@ function generateToc(toclevels) {
420
554
  <h1>The official Ramaze Todo-list tutorial</h1>
421
555
  <span id="author">Michael 'manveru' Fellinger</span><br />
422
556
  <span id="email"><tt>&lt;<a href="mailto:m.fellinger@gmail.com">m.fellinger@gmail.com</a>&gt;</tt></span><br />
423
- <span id="revision">version 2.0,</span>
424
- March 2009
425
- <div id="toc">
426
- <div id="toctitle">Table of Contents</div>
427
- <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
428
- </div>
557
+ <span id="revnumber">version 2.0,</span>
558
+ <span id="revdate">March 2009</span>
429
559
  </div>
560
+ <div id="content">
430
561
  <h2 id="_abstract">Abstract</h2>
431
562
  <div class="sectionbody">
432
563
  <div class="paragraph"><p>Welcome to the official tutorial for <a href="http://ramaze.net">Ramaze</a>, the mandatory
@@ -477,7 +608,7 @@ Ramaze distribution.
477
608
  To find out where that is located (as this differs widely between systems), you
478
609
  can follow these steps in <tt>irb</tt>:</p></div>
479
610
  <div class="listingblock">
480
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
611
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
481
612
  by Lorenzo Bettini
482
613
  http://www.lorenzobettini.it
483
614
  http://www.gnu.org/software/src-highlite -->
@@ -485,7 +616,7 @@ http://www.gnu.org/software/src-highlite -->
485
616
  <span style="font-style: italic"><span style="color: #9A1900"># =&gt; true</span></span>
486
617
  <span style="font-weight: bold"><span style="color: #000080">require</span></span> <span style="color: #FF0000">'ramaze'</span>
487
618
  <span style="font-style: italic"><span style="color: #9A1900"># =&gt; true</span></span>
488
- File<span style="color: #990000">.</span>expand_path<span style="color: #990000">(</span>Ramaze<span style="color: #990000">::</span>BASEDIR <span style="color: #990000">+</span> <span style="color: #FF0000">'/../examples/app/todolist'</span><span style="color: #990000">)</span>
619
+ File<span style="color: #990000">.</span>expand_path<span style="color: #990000">(</span>Ramaze<span style="color: #990000">::</span>ROOT <span style="color: #990000">+</span> <span style="color: #FF0000">'/../examples/app/todolist'</span><span style="color: #990000">)</span>
489
620
  <span style="font-style: italic"><span style="color: #9A1900"># =&gt; "/home/manveru/c/ramaze/examples/app/todolist"</span></span></tt></pre></div></div>
490
621
  <div class="paragraph"><p>To start things off, we will create a basic directory structure looking like this:</p></div>
491
622
  <div class="listingblock">
@@ -507,7 +638,7 @@ File<span style="color: #990000">.</span>expand_path<span style="color: #990000"
507
638
  tradition, we create a file at the root of your application directory called
508
639
  <em>start.rb</em> with following content:</p></div>
509
640
  <div class="listingblock">
510
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
641
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
511
642
  by Lorenzo Bettini
512
643
  http://www.lorenzobettini.it
513
644
  http://www.gnu.org/software/src-highlite -->
@@ -562,7 +693,7 @@ provide bindings, in which case I have to refer you to <a href="http://sqlite.or
562
693
  <div class="paragraph"><p>In order to use Sequel we also need a database connection.</p></div>
563
694
  <div class="paragraph"><p>So we create a new file at <em>model/init.rb</em> with following content:</p></div>
564
695
  <div class="listingblock">
565
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
696
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
566
697
  by Lorenzo Bettini
567
698
  http://www.lorenzobettini.it
568
699
  http://www.gnu.org/software/src-highlite -->
@@ -576,7 +707,7 @@ to 2.12 you may remove this line if it gives you any problems.</p></div>
576
707
  <div class="paragraph"><p>Next we edit <em>start.rb</em>, remove the <tt>Hello</tt> class, and add a require for the
577
708
  file, <em>start.rb</em> should look like this now:</p></div>
578
709
  <div class="listingblock">
579
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
710
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
580
711
  by Lorenzo Bettini
581
712
  http://www.lorenzobettini.it
582
713
  http://www.gnu.org/software/src-highlite -->
@@ -590,7 +721,7 @@ Ramaze<span style="color: #990000">.</span>start</tt></pre></div></div>
590
721
  ask how we are going to create our schema.</p></div>
591
722
  <div class="paragraph"><p>So our next step is to create the actual model for our data, for this we create another file at <em>model/task.rb</em>:</p></div>
592
723
  <div class="listingblock">
593
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
724
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
594
725
  by Lorenzo Bettini
595
726
  http://www.lorenzobettini.it
596
727
  http://www.gnu.org/software/src-highlite -->
@@ -614,7 +745,7 @@ very good support for them as well, but seriously, this is a really simple
614
745
  schema that probably won&#8217;t change much over the next few years.</p></div>
615
746
  <div class="paragraph"><p>Finally, add a line to your <em>model/init.rb</em> that requires <em>model/task.rb</em>:</p></div>
616
747
  <div class="listingblock">
617
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
748
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
618
749
  by Lorenzo Bettini
619
750
  http://www.lorenzobettini.it
620
751
  http://www.gnu.org/software/src-highlite -->
@@ -638,7 +769,7 @@ explain that in more detail later when we come to layouts.</p></div>
638
769
  <div class="paragraph"><p>To start we put some contents into <em>view/index.xhtml</em> (xhtml is the default
639
770
  filename-extension for Etanni templates)</p></div>
640
771
  <div class="listingblock">
641
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
772
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
642
773
  by Lorenzo Bettini
643
774
  http://www.lorenzobettini.it
644
775
  http://www.gnu.org/software/src-highlite -->
@@ -668,7 +799,7 @@ yielding a list of task titles and the respective status of the task.</p></div>
668
799
  work, let&#8217;s see how this looks like in a browser, start your application like above with <tt>ruby start.rb</tt> and open <a href="http://localhost:7000/">http://localhost:7000/</a>.</p></div>
669
800
  <div class="paragraph"><p>The template expanded to something like (only showing the interesting part):</p></div>
670
801
  <div class="listingblock">
671
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
802
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
672
803
  by Lorenzo Bettini
673
804
  http://www.lorenzobettini.it
674
805
  http://www.gnu.org/software/src-highlite -->
@@ -695,7 +826,7 @@ Structure of the Model or View independent from each other.</p></div>
695
826
  we will implement marking a task as done.</p></div>
696
827
  <div class="paragraph"><p>Go on and create the file <em>controller/task.rb</em> with following contents:</p></div>
697
828
  <div class="listingblock">
698
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
829
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
699
830
  by Lorenzo Bettini
700
831
  http://www.lorenzobettini.it
701
832
  http://www.gnu.org/software/src-highlite -->
@@ -745,7 +876,7 @@ Redirect the client to where it came from.
745
876
  </ul></div>
746
877
  <div class="paragraph"><p>And we add a require to <em>controller/task.rb</em> to our <em>start.rb</em>:</p></div>
747
878
  <div class="listingblock">
748
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
879
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
749
880
  by Lorenzo Bettini
750
881
  http://www.lorenzobettini.it
751
882
  http://www.gnu.org/software/src-highlite -->
@@ -759,7 +890,7 @@ Ramaze<span style="color: #990000">.</span>start</tt></pre></div></div>
759
890
  <div class="paragraph"><p>Next we will have to modify the <em>view/index.xhtml</em> to contain a link that will
760
891
  change the status of a task:</p></div>
761
892
  <div class="listingblock">
762
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
893
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
763
894
  by Lorenzo Bettini
764
895
  http://www.lorenzobettini.it
765
896
  http://www.gnu.org/software/src-highlite -->
@@ -776,7 +907,7 @@ done.</p></div>
776
907
  <div class="paragraph"><p>An even shorter way of writing that line using default aliases, that you will
777
908
  encounter in other applications, is:</p></div>
778
909
  <div class="listingblock">
779
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
910
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
780
911
  by Lorenzo Bettini
781
912
  http://www.lorenzobettini.it
782
913
  http://www.gnu.org/software/src-highlite -->
@@ -793,7 +924,7 @@ do your laundry and come back for the next episode.</p></div>
793
924
  open them again, so you won&#8217;t be without work tomorrow.</p></div>
794
925
  <div class="paragraph"><p>Let&#8217;s add a method to our Controller that will let us open a closed task:</p></div>
795
926
  <div class="listingblock">
796
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
927
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
797
928
  by Lorenzo Bettini
798
929
  http://www.lorenzobettini.it
799
930
  http://www.gnu.org/software/src-highlite -->
@@ -818,7 +949,7 @@ http://www.gnu.org/software/src-highlite -->
818
949
  <span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
819
950
  <div class="paragraph"><p>And add a link to that action:</p></div>
820
951
  <div class="listingblock">
821
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
952
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
822
953
  by Lorenzo Bettini
823
954
  http://www.lorenzobettini.it
824
955
  http://www.gnu.org/software/src-highlite -->
@@ -839,7 +970,7 @@ that will take care of that for you.</p></div>
839
970
  <div class="paragraph"><p>Time to get rid of that task once and for all. No more dish washing yay!</p></div>
840
971
  <div class="paragraph"><p>A little modification to Controller, using destructive force.</p></div>
841
972
  <div class="listingblock">
842
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
973
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
843
974
  by Lorenzo Bettini
844
975
  http://www.lorenzobettini.it
845
976
  http://www.gnu.org/software/src-highlite -->
@@ -871,7 +1002,7 @@ http://www.gnu.org/software/src-highlite -->
871
1002
  <span style="font-weight: bold"><span style="color: #0000FF">end</span></span></tt></pre></div></div>
872
1003
  <div class="paragraph"><p>And a link to the <tt>delete</tt> action.</p></div>
873
1004
  <div class="listingblock">
874
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1005
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
875
1006
  by Lorenzo Bettini
876
1007
  http://www.lorenzobettini.it
877
1008
  http://www.gnu.org/software/src-highlite -->
@@ -900,7 +1031,7 @@ forgetting about it.</p></div>
900
1031
  a nice little form that we can fill out in the few seconds between proving
901
1032
  people on the internet wrong.</p></div>
902
1033
  <div class="listingblock">
903
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1034
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
904
1035
  by Lorenzo Bettini
905
1036
  http://www.lorenzobettini.it
906
1037
  http://www.gnu.org/software/src-highlite -->
@@ -917,7 +1048,7 @@ yet. Trying to create a task will result in an error.</p></div>
917
1048
  <div class="paragraph"><p>So what we have to do is adding one more method to our Controller that will
918
1049
  take care of actually creating the Task.</p></div>
919
1050
  <div class="listingblock">
920
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1051
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
921
1052
  by Lorenzo Bettini
922
1053
  http://www.lorenzobettini.it
923
1054
  http://www.gnu.org/software/src-highlite -->
@@ -971,7 +1102,7 @@ one with the same title, you will get a nice error:</p></div>
971
1102
  <div class="paragraph"><p>OK, programmers ignore warnings and hide errors, let&#8217;s rescue the exception and
972
1103
  just act as if nothing has happened.</p></div>
973
1104
  <div class="listingblock">
974
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1105
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
975
1106
  by Lorenzo Bettini
976
1107
  http://www.lorenzobettini.it
977
1108
  http://www.gnu.org/software/src-highlite -->
@@ -1004,7 +1135,7 @@ What a waste of our honest effort to create a duplicate task, we all know if we
1004
1135
  try often enough it will eventually have to work, so let&#8217;s save us some typing.</p></div>
1005
1136
  <div class="paragraph"><p>In our <em>view/index.xhtml</em> we modify the form input to have a default value:</p></div>
1006
1137
  <div class="listingblock">
1007
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1138
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1008
1139
  by Lorenzo Bettini
1009
1140
  http://www.lorenzobettini.it
1010
1141
  http://www.gnu.org/software/src-highlite -->
@@ -1020,7 +1151,7 @@ http://www.gnu.org/software/src-highlite -->
1020
1151
  and View.
1021
1152
  We didn&#8217;t set any such variable in the Controller yet, so do it now:</p></div>
1022
1153
  <div class="listingblock">
1023
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1154
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1024
1155
  by Lorenzo Bettini
1025
1156
  http://www.lorenzobettini.it
1026
1157
  http://www.gnu.org/software/src-highlite -->
@@ -1038,7 +1169,7 @@ http://www.gnu.org/software/src-highlite -->
1038
1169
  <div class="paragraph"><p>Turns out we have to revisit the <tt>create</tt> method to give us a hint in form of a
1039
1170
  GET parameter and change <tt>index</tt> to pick it up.</p></div>
1040
1171
  <div class="listingblock">
1041
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1172
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1042
1173
  by Lorenzo Bettini
1043
1174
  http://www.lorenzobettini.it
1044
1175
  http://www.gnu.org/software/src-highlite -->
@@ -1072,7 +1203,7 @@ Not forever, but at least it will not show up anymore on the <tt>index</tt> acti
1072
1203
  <div class="paragraph"><p>So we filter out all tasks that haven&#8217;t been done yet in the
1073
1204
  <em>view/index.xhtml</em>:</p></div>
1074
1205
  <div class="listingblock">
1075
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1206
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1076
1207
  by Lorenzo Bettini
1077
1208
  http://www.lorenzobettini.it
1078
1209
  http://www.gnu.org/software/src-highlite -->
@@ -1082,7 +1213,7 @@ http://www.gnu.org/software/src-highlite -->
1082
1213
  # ...</tt></pre></div></div>
1083
1214
  <div class="paragraph"><p>So off we go and add a new template at <em>view/done.xhtml</em>.</p></div>
1084
1215
  <div class="listingblock">
1085
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1216
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1086
1217
  by Lorenzo Bettini
1087
1218
  http://www.lorenzobettini.it
1088
1219
  http://www.gnu.org/software/src-highlite -->
@@ -1126,7 +1257,7 @@ of tasks, that&#8217;s what we call <em>layout</em>.</p></div>
1126
1257
  <div class="paragraph"><p>Every action can have a layout associated with it, remember that empty <em>layout</em>
1127
1258
  directory in your application? That&#8217;s exactly where we will put it.</p></div>
1128
1259
  <div class="listingblock">
1129
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1260
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1130
1261
  by Lorenzo Bettini
1131
1262
  http://www.lorenzobettini.it
1132
1263
  http://www.gnu.org/software/src-highlite -->
@@ -1152,7 +1283,7 @@ http://www.gnu.org/software/src-highlite -->
1152
1283
  <div class="paragraph"><p>And to tell Ramaze which layout to use for our <tt>Tasks</tt> we&#8217;ll have to add a line
1153
1284
  to the Controller.</p></div>
1154
1285
  <div class="listingblock">
1155
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1286
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1156
1287
  by Lorenzo Bettini
1157
1288
  http://www.lorenzobettini.it
1158
1289
  http://www.gnu.org/software/src-highlite -->
@@ -1164,13 +1295,13 @@ http://www.gnu.org/software/src-highlite -->
1164
1295
  boilerplate we can delete the slack from our templates.</p></div>
1165
1296
  <div class="paragraph"><p><em>view/index.xhtml</em> becomes:</p></div>
1166
1297
  <div class="listingblock">
1167
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1298
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1168
1299
  by Lorenzo Bettini
1169
1300
  http://www.lorenzobettini.it
1170
1301
  http://www.gnu.org/software/src-highlite -->
1171
- <pre><tt><span style="font-weight: bold"><span style="color: #0000FF">&lt;h2&gt;</span></span>Done Tasks<span style="font-weight: bold"><span style="color: #0000FF">&lt;/h2&gt;</span></span>
1302
+ <pre><tt><span style="font-weight: bold"><span style="color: #0000FF">&lt;h2&gt;</span></span>Pending Tasks<span style="font-weight: bold"><span style="color: #0000FF">&lt;/h2&gt;</span></span>
1172
1303
 
1173
- #{ anchor('Pending tasks', 'done') }
1304
+ #{ anchor('Done tasks', 'done') }
1174
1305
 
1175
1306
  <span style="font-weight: bold"><span style="color: #0000FF">&lt;ul&gt;</span></span>
1176
1307
  &lt;?r Task.filter(:done =&gt; false).each do |task| ?&gt;
@@ -1183,13 +1314,13 @@ http://www.gnu.org/software/src-highlite -->
1183
1314
  <span style="font-weight: bold"><span style="color: #0000FF">&lt;/ul&gt;</span></span></tt></pre></div></div>
1184
1315
  <div class="paragraph"><p><em>view/done.xhtml</em> becomes:</p></div>
1185
1316
  <div class="listingblock">
1186
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1317
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1187
1318
  by Lorenzo Bettini
1188
1319
  http://www.lorenzobettini.it
1189
1320
  http://www.gnu.org/software/src-highlite -->
1190
- <pre><tt><span style="font-weight: bold"><span style="color: #0000FF">&lt;h2&gt;</span></span>Pending Tasks<span style="font-weight: bold"><span style="color: #0000FF">&lt;/h2&gt;</span></span>
1321
+ <pre><tt><span style="font-weight: bold"><span style="color: #0000FF">&lt;h2&gt;</span></span>Done Tasks<span style="font-weight: bold"><span style="color: #0000FF">&lt;/h2&gt;</span></span>
1191
1322
 
1192
- #{ anchor('Done tasks', 'done') }
1323
+ #{ anchor('Pending tasks', '') }
1193
1324
 
1194
1325
  <span style="font-weight: bold"><span style="color: #0000FF">&lt;ul&gt;</span></span>
1195
1326
  &lt;?r Task.filter(:done =&gt; true).each do |task| ?&gt;
@@ -1216,7 +1347,7 @@ in the example todo-list.</p></div>
1216
1347
  <div class="paragraph"><p>What we do cover is adding it to your application, or the <tt>&lt;head&gt;</tt> in
1217
1348
  <em>layout/default.xhtml</em> to be exact:</p></div>
1218
1349
  <div class="listingblock">
1219
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1350
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1220
1351
  by Lorenzo Bettini
1221
1352
  http://www.lorenzobettini.it
1222
1353
  http://www.gnu.org/software/src-highlite -->
@@ -1240,7 +1371,7 @@ port, <tt>7000</tt>, which prevents you from starting more than one instance or
1240
1371
  applications.</p></div>
1241
1372
  <div class="paragraph"><p>To change the port, you can, for example:</p></div>
1242
1373
  <div class="listingblock">
1243
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1374
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1244
1375
  by Lorenzo Bettini
1245
1376
  http://www.lorenzobettini.it
1246
1377
  http://www.gnu.org/software/src-highlite -->
@@ -1269,7 +1400,7 @@ gem install mongrel</tt></pre>
1269
1400
  </div></div>
1270
1401
  <div class="paragraph"><p>Now to the configuration:</p></div>
1271
1402
  <div class="listingblock">
1272
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1403
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1273
1404
  by Lorenzo Bettini
1274
1405
  http://www.lorenzobettini.it
1275
1406
  http://www.gnu.org/software/src-highlite -->
@@ -1283,7 +1414,7 @@ Ramaze<span style="color: #990000">.</span>options<span style="color: #990000">.
1283
1414
  Ramaze<span style="color: #990000">.</span>options<span style="color: #990000">.</span>adapter<span style="color: #990000">.</span>adapter <span style="color: #990000">=</span> <span style="color: #990000">:</span>thin</tt></pre></div></div>
1284
1415
  <div class="paragraph"><p>For the full performance, switch Ramaze into <tt>:live</tt> mode:</p></div>
1285
1416
  <div class="listingblock">
1286
- <div class="content"><!-- Generator: GNU source-highlight 2.11.1
1417
+ <div class="content"><!-- Generator: GNU source-highlight 3.1.3
1287
1418
  by Lorenzo Bettini
1288
1419
  http://www.lorenzobettini.it
1289
1420
  http://www.gnu.org/software/src-highlite -->
@@ -1369,10 +1500,12 @@ RSI
1369
1500
  </dd>
1370
1501
  </dl></div>
1371
1502
  </div>
1503
+ </div>
1504
+ <div id="footnotes"><hr /></div>
1372
1505
  <div id="footer">
1373
1506
  <div id="footer-text">
1374
1507
  Version 2.0<br />
1375
- Last updated 2009-05-10 10:37:49 JST
1508
+ Last updated 2010-02-14 23:00:52 JST
1376
1509
  </div>
1377
1510
  </div>
1378
1511
  </body>