merb 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/README +68 -58
  2. data/Rakefile +7 -6
  3. data/TODO +18 -0
  4. data/bin/merb +2 -2
  5. data/doc/rdoc/classes/Hash.html +148 -0
  6. data/doc/rdoc/classes/Merb/Config.html +161 -0
  7. data/doc/rdoc/classes/Merb/Controller.html +488 -0
  8. data/doc/rdoc/classes/Merb/RouteMatcher.html +354 -0
  9. data/doc/rdoc/classes/Merb/Server.html +288 -0
  10. data/doc/rdoc/classes/Merb.html +143 -0
  11. data/doc/rdoc/classes/MerbHandler.html +404 -0
  12. data/doc/rdoc/classes/MerbHash.html +457 -0
  13. data/doc/rdoc/classes/Noroutefound.html +172 -0
  14. data/doc/rdoc/classes/Object.html +149 -0
  15. data/doc/rdoc/classes/String.html +200 -0
  16. data/doc/rdoc/classes/Symbol.html +172 -0
  17. data/doc/rdoc/created.rid +1 -0
  18. data/doc/rdoc/files/LICENSE.html +129 -0
  19. data/doc/rdoc/files/README.html +330 -0
  20. data/doc/rdoc/files/TODO.html +154 -0
  21. data/doc/rdoc/files/lib/merb/merb_controller_rb.html +101 -0
  22. data/doc/rdoc/files/lib/merb/merb_daemon_rb.html +113 -0
  23. data/doc/rdoc/files/lib/merb/merb_handler_rb.html +108 -0
  24. data/doc/rdoc/files/lib/merb/merb_router_rb.html +101 -0
  25. data/doc/rdoc/files/lib/merb/merb_utils_rb.html +101 -0
  26. data/doc/rdoc/files/lib/merb/noroutefound_rb.html +101 -0
  27. data/doc/rdoc/files/lib/merb_config_rb.html +101 -0
  28. data/doc/rdoc/files/lib/merb_rb.html +112 -0
  29. data/doc/rdoc/fr_class_index.html +38 -0
  30. data/doc/rdoc/fr_file_index.html +38 -0
  31. data/doc/rdoc/fr_method_index.html +78 -0
  32. data/doc/rdoc/index.html +24 -0
  33. data/doc/rdoc/rdoc-style.css +208 -0
  34. data/examples/sample_app/{app → dist/app}/controllers/posts.rb +8 -8
  35. data/examples/sample_app/{app → dist/app}/controllers/test.rb +8 -5
  36. data/examples/sample_app/{app → dist/app}/controllers/upload.rb +13 -5
  37. data/examples/sample_app/dist/app/models/post.rb +13 -0
  38. data/examples/sample_app/dist/app/views/layout/application.rhtml +6 -0
  39. data/examples/sample_app/dist/app/views/layout/foo.rhtml +6 -0
  40. data/examples/sample_app/dist/app/views/layout/posts.rhtml +6 -0
  41. data/examples/sample_app/{app → dist/app}/views/posts/list.rhtml +1 -7
  42. data/examples/sample_app/{app → dist/app}/views/posts/new.rhtml +1 -7
  43. data/examples/sample_app/{app → dist/app}/views/posts/show.rhtml +1 -8
  44. data/examples/sample_app/dist/app/views/test/foo.rhtml +2 -0
  45. data/examples/sample_app/{app → dist/app}/views/test/hello.rhtml +1 -8
  46. data/examples/sample_app/{app → dist/app}/views/upload/start.rhtml +0 -8
  47. data/examples/sample_app/{app → dist/app}/views/upload/upload.rhtml +0 -0
  48. data/examples/sample_app/{conf → dist/conf}/merb_init.rb +5 -2
  49. data/examples/sample_app/{conf → dist/conf}/router.rb +6 -8
  50. data/examples/sample_app/test/test_helper.rb +1 -0
  51. data/examples/skeleton/dist/conf/merb_init.rb +21 -0
  52. data/examples/skeleton/dist/conf/router.rb +23 -0
  53. data/examples/skeleton/test/test_helper.rb +1 -0
  54. data/lib/merb/merb_controller.rb +54 -15
  55. data/lib/merb/merb_daemon.rb +35 -20
  56. data/lib/merb/merb_handler.rb +49 -38
  57. data/lib/merb/merb_router.rb +25 -28
  58. data/lib/merb/merb_utils.rb +98 -9
  59. data/{examples/sample_app/app/controllers → lib/merb}/noroutefound.rb +1 -1
  60. data/lib/merb.rb +4 -4
  61. data/lib/merb_config.rb +1 -1
  62. data/test/unit/route_matcher_test.rb +12 -31
  63. metadata +109 -28
  64. data/examples/sample_app/app/models/post.rb +0 -2
  65. data/examples/sample_app/app/views/test/foo.rhtml +0 -6
@@ -0,0 +1,330 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: README</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>README</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>README
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Thu Oct 26 18:01:00 -0700 2006</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <p>
73
+ Copyright (c) 2006 Ezra Zygmuntowicz
74
+ </p>
75
+ <p>
76
+ <a href="../classes/Merb.html">Merb</a>. Mongrel+Erb
77
+ </p>
78
+ <p>
79
+ Little bitty lightweight ruby app server. For when you really need
80
+ performance for simple dynamic pages.
81
+ </p>
82
+ <p>
83
+ **Sample APP included**
84
+ </p>
85
+ <p>
86
+ Unpack the gem and grab the sample app
87
+ </p>
88
+ <p>
89
+ $ gem unpack merb
90
+ </p>
91
+ <p>
92
+ cd merb* cd examples/sample_app
93
+ </p>
94
+ <p>
95
+ $ merb
96
+ </p>
97
+ <p>
98
+ then the sample app will be running on port 4000 in the foreground. you can
99
+ go to a few urls:
100
+ </p>
101
+ <p>
102
+ <a
103
+ href="http://localhost:4000/upload/start">localhost:4000/upload/start</a>
104
+ </p>
105
+ <p>
106
+ <a
107
+ href="http://localhost:4000/foo/123/baz/12234345">localhost:4000/foo/123/baz/12234345</a>
108
+ </p>
109
+ <p>
110
+ *<b>FEATURES</b>* 1. Mongrel handler built in that parses incoming requests
111
+ including multipart uploads and post as well as ?query=strings. Puts the
112
+ params into params and the cookies into cookies when it instantiates your
113
+ controller class.
114
+ </p>
115
+ <ol>
116
+ <li>New RouteMatcher and route compiler. Reads your route definition and
117
+ compiles
118
+
119
+ </li>
120
+ </ol>
121
+ <p>
122
+ a method on the fly that will match the request path against each route and
123
+ do the right thing. So the following routes:
124
+ </p>
125
+ <p>
126
+ Merb::RouteMatcher.prepare do |r|
127
+ </p>
128
+ <pre>
129
+ r.add '/foo/:bar/baz/:id', :controller =&gt; 'Test', :action =&gt; 'foo'
130
+ r.add '/:controller/:action/:id'
131
+ r.add '/bar/:*rest', :controller =&gt; 'Test', :action =&gt; 'glob'
132
+ </pre>
133
+ <p>
134
+ end
135
+ </p>
136
+ <p>
137
+ Will be compiled and defined as a method with this lambda as the body:
138
+ </p>
139
+ <p>
140
+ lambda{|path|
141
+ </p>
142
+ <pre>
143
+ case path
144
+ when Regexp.new('/foo/([^/;.,?]+)/baz/([^/;.,?]+)')
145
+ @sections[:bar] = $1
146
+ @sections[:id] = $2
147
+ return {:controller=&gt;&quot;Test&quot;, :action=&gt;&quot;foo&quot;}.merge(@sections)
148
+ when /\A\/([^\/;.,?]+)(?:\/?\Z|\/([^\/;.,?]+)\/?)(?:\/?\Z|\/([^\/;.,?]+)\/?)\Z/
149
+ @sections[:controller] = $1
150
+ @sections[:action] = $2 || 'index'
151
+ @sections[:id] = $3 || nil
152
+ return @sections
153
+ when Regexp.new('/bar/([^;.,?]+)')
154
+ @sections[:rest] = $1
155
+ return {:controller=&gt;&quot;Test&quot;, :action=&gt;&quot;glob&quot;}.merge(@sections)
156
+ else
157
+ return {:controller=&gt;'Noroutefound', :action=&gt;'noroute'}
158
+ end
159
+ </pre>
160
+ <p>
161
+ }
162
+ </p>
163
+ <ol>
164
+ <li>Simple controller classes with built in render method and template handling
165
+
166
+ </li>
167
+ </ol>
168
+ <p>
169
+ with instance vars available in the views automatically. <a
170
+ href="../classes/Merb.html">Merb</a> also supports layouts. It will look
171
+ for a layout named after your controller class first and then fall back to
172
+ application.rhtml if no layout exists named after your controller. You can
173
+ use render_no_layout or do layout :none right before you render
174
+ </p>
175
+ <p>
176
+ class Test &lt; <a
177
+ href="../classes/Merb/Controller.html">Merb::Controller</a>
178
+ </p>
179
+ <pre>
180
+ def hello
181
+ # params, headers and cookies are available here. string
182
+ # keys and not symbols just yet.
183
+ # Assign the parameter to an instance variable
184
+ @name = params[:name]
185
+ render
186
+ end
187
+ </pre>
188
+ <p>
189
+ end
190
+ </p>
191
+ <p>
192
+ &lt;html&gt;
193
+ </p>
194
+ <pre>
195
+ &lt;head&gt;
196
+ &lt;title&gt;Hello, &lt;%= @name %&gt;&lt;/title&gt;
197
+ &lt;/head&gt;
198
+ &lt;body&gt;
199
+ </pre>
200
+ <p>
201
+ &lt;%= @layout_content %&gt;
202
+ </p>
203
+ <pre>
204
+ &lt;/body&gt;
205
+ </pre>
206
+ <p>
207
+ &lt;/html&gt;
208
+ </p>
209
+ <p>
210
+ &lt;h1&gt;&lt;%= params.inspect %&gt;&lt;/h1&gt; &lt;h1&gt;&lt;%=
211
+ cookies.inspect %&gt;&lt;/h1&gt; &lt;% 5.times do %&gt;
212
+ </p>
213
+ <pre>
214
+ &lt;h1&gt;Hello, &lt;%= @name %&gt;!&lt;/h1&gt;
215
+ </pre>
216
+ <p>
217
+ &lt;% end %&gt;
218
+ </p>
219
+ <ol>
220
+ <li>the server. right now you add your routes in
221
+
222
+ </li>
223
+ </ol>
224
+ <p>
225
+ the appdir/conf/router.rb file. So by default it runs on port 4000
226
+ </p>
227
+ <p>
228
+ $ cd /path/to/your/merb/app $ merb
229
+ </p>
230
+ <ol>
231
+ <li>File uploads. This is the thing that <a
232
+ href="../classes/Merb.html">Merb</a> was written for. Rails doesn&#8216;t
233
+ allow
234
+
235
+ </li>
236
+ </ol>
237
+ <p>
238
+ multiple concurrent file uploads at once without blocking an entire rails
239
+ backend for each file upload. <a href="../classes/Merb.html">Merb</a>
240
+ allows multiple file uploads at once. Start the server and browse to <a
241
+ href="http://localhost:4000/upload/start">localhost:4000/upload/start</a>
242
+ and you will get a file upload form. There is a very simple upload
243
+ controller example that handles this upload. When a file is uploaded with
244
+ <a href="../classes/Merb.html">Merb</a>, it gets put in a Tempfile. So you
245
+ just want to copy it to the right place on the filesystem.
246
+ </p>
247
+ <p>
248
+ def upload
249
+ </p>
250
+ <pre>
251
+ puts params[:file].inspect
252
+
253
+ FileUtils.mv params[:file][:tempfile].path, MERB_ROOT+&quot;/uploads/#{params[:file][:filename]}&quot;
254
+
255
+ render
256
+ </pre>
257
+ <p>
258
+ end
259
+ </p>
260
+ <ol>
261
+ <li><a href="../classes/Merb.html">Merb</a> app layout. A <a
262
+ href="../classes/Merb.html">Merb</a> app contains everything it needs to
263
+ run in production in the
264
+
265
+ </li>
266
+ </ol>
267
+ <p>
268
+ MERB_ROOT/dist directory. So for deployment you only need to deploy the
269
+ dist dir. This keeps your test code and development plugins separate from
270
+ your main app and lets you not deploy them to the live server. You deal
271
+ with two things with this setup, MERB_ROOT and DIST_ROOT. MERB_ROOT is the
272
+ root of the whole tree. And DISTROOT is MERB_ROOT+/dist You will cd into
273
+ MERB_ROOT to run the merb command line. ANd when you deploy live you will
274
+ put the dist dir into another empty MERB_ROOT on the production server.
275
+ </p>
276
+ <p>
277
+ skeleton_app
278
+ </p>
279
+ <pre>
280
+ Rakefile
281
+ README
282
+ scripts
283
+ test
284
+ fixtures
285
+ spec
286
+ unit
287
+ plugins
288
+ dist
289
+ app
290
+ controllers
291
+ models
292
+ views
293
+ conf
294
+ lib
295
+ public
296
+ plugins
297
+ </pre>
298
+
299
+ </div>
300
+
301
+
302
+ </div>
303
+
304
+
305
+ </div>
306
+
307
+
308
+ <!-- if includes -->
309
+
310
+ <div id="section">
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+ <!-- if method_list -->
320
+
321
+
322
+ </div>
323
+
324
+
325
+ <div id="validator-badges">
326
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
327
+ </div>
328
+
329
+ </body>
330
+ </html>
@@ -0,0 +1,154 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: TODO</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>TODO</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>TODO
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Wed Oct 25 17:21:28 -0700 2006</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <p>
73
+ [TODO]
74
+ </p>
75
+ <ul>
76
+ <li>Irb Console *<b>DONE</b>*
77
+
78
+ </li>
79
+ <li>Migrations
80
+
81
+ </li>
82
+ <li>Helpers
83
+
84
+ </li>
85
+ <li>config file
86
+
87
+ </li>
88
+ <li>merg args and params *<b>DONE</b>*
89
+
90
+ </li>
91
+ <li>session ** AR ** DRb
92
+
93
+ </li>
94
+ <li>Rails integration
95
+
96
+ </li>
97
+ <li>Mongoose ?
98
+
99
+ </li>
100
+ <li>Text backend?
101
+
102
+ </li>
103
+ <li>plugins support(rails plugins too?)
104
+
105
+ </li>
106
+ <li>Layouts
107
+
108
+ </li>
109
+ <li>auto template_dir
110
+
111
+ </li>
112
+ <li>before/after filters
113
+
114
+ </li>
115
+ <li>merbjs
116
+
117
+ </li>
118
+ <li>testing
119
+
120
+ </li>
121
+ </ul>
122
+
123
+ </div>
124
+
125
+
126
+ </div>
127
+
128
+
129
+ </div>
130
+
131
+
132
+ <!-- if includes -->
133
+
134
+ <div id="section">
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+ <!-- if method_list -->
144
+
145
+
146
+ </div>
147
+
148
+
149
+ <div id="validator-badges">
150
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
151
+ </div>
152
+
153
+ </body>
154
+ </html>
@@ -0,0 +1,101 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: merb_controller.rb</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>merb_controller.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/merb/merb_controller.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Thu Oct 26 17:16:57 -0700 2006</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+
72
+
73
+ </div>
74
+
75
+
76
+ </div>
77
+
78
+
79
+ <!-- if includes -->
80
+
81
+ <div id="section">
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+ <!-- if method_list -->
91
+
92
+
93
+ </div>
94
+
95
+
96
+ <div id="validator-badges">
97
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
98
+ </div>
99
+
100
+ </body>
101
+ </html>
@@ -0,0 +1,113 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: merb_daemon.rb</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>merb_daemon.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/merb/merb_daemon.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Wed Oct 25 20:49:15 -0700 2006</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+
72
+ <div id="requires-list">
73
+ <h3 class="section-bar">Required files</h3>
74
+
75
+ <div class="name-list">
76
+ rubygems&nbsp;&nbsp;
77
+ merb&nbsp;&nbsp;
78
+ optparse&nbsp;&nbsp;
79
+ ostruct&nbsp;&nbsp;
80
+ irb&nbsp;&nbsp;
81
+ irb/completion&nbsp;&nbsp;
82
+ </div>
83
+ </div>
84
+
85
+ </div>
86
+
87
+
88
+ </div>
89
+
90
+
91
+ <!-- if includes -->
92
+
93
+ <div id="section">
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+ <!-- if method_list -->
103
+
104
+
105
+ </div>
106
+
107
+
108
+ <div id="validator-badges">
109
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
110
+ </div>
111
+
112
+ </body>
113
+ </html>