mongrel 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/README +28 -1
  2. data/Rakefile +2 -2
  3. data/bin/mongrel_rails +102 -65
  4. data/bin/mongrel_rails_service +16 -7
  5. data/bin/mongrel_rails_svc +184 -87
  6. data/doc/rdoc/classes/Mongrel.html +1 -0
  7. data/doc/rdoc/classes/Mongrel/Const.html +3 -3
  8. data/doc/rdoc/classes/Mongrel/HeaderOut.html +10 -10
  9. data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000028.html → M000014.html} +4 -4
  10. data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000029.html → M000015.html} +7 -7
  11. data/doc/rdoc/classes/Mongrel/HttpParser.html +35 -35
  12. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000015.html → M000001.html} +0 -0
  13. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000016.html → M000002.html} +0 -0
  14. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000017.html → M000003.html} +0 -0
  15. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000018.html → M000004.html} +0 -0
  16. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000019.html → M000005.html} +0 -0
  17. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000020.html → M000006.html} +0 -0
  18. data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000021.html → M000007.html} +0 -0
  19. data/doc/rdoc/classes/Mongrel/HttpRequest.html +5 -5
  20. data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000041.html → M000029.html} +25 -25
  21. data/doc/rdoc/classes/Mongrel/HttpResponse.html +36 -36
  22. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000034.html → M000016.html} +7 -7
  23. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000035.html → M000017.html} +6 -6
  24. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000036.html → M000018.html} +5 -5
  25. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000037.html → M000019.html} +5 -5
  26. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000038.html → M000020.html} +6 -6
  27. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000039.html → M000021.html} +6 -6
  28. data/doc/rdoc/classes/Mongrel/HttpResponse.src/{M000040.html → M000022.html} +6 -6
  29. data/doc/rdoc/classes/Mongrel/HttpServer.html +34 -35
  30. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000008.html +36 -0
  31. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000023.html → M000009.html} +43 -43
  32. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000024.html → M000010.html} +31 -31
  33. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000025.html → M000011.html} +4 -4
  34. data/doc/rdoc/classes/Mongrel/HttpServer.src/{M000026.html → M000012.html} +4 -4
  35. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000013.html +23 -0
  36. data/doc/rdoc/classes/{FactoryError.html → Mongrel/TimeoutWorker.html} +7 -34
  37. data/doc/rdoc/classes/Mongrel/URIClassifier.html +63 -20
  38. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000023.html +18 -0
  39. data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000024.html +18 -0
  40. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000030.html → M000025.html} +0 -0
  41. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000031.html → M000026.html} +0 -0
  42. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000032.html → M000027.html} +0 -0
  43. data/doc/rdoc/classes/Mongrel/URIClassifier.src/{M000033.html → M000028.html} +0 -0
  44. data/doc/rdoc/created.rid +1 -1
  45. data/doc/rdoc/files/README.html +35 -2
  46. data/doc/rdoc/files/lib/mongrel_rb.html +4 -1
  47. data/doc/rdoc/fr_class_index.html +1 -2
  48. data/doc/rdoc/fr_file_index.html +0 -1
  49. data/doc/rdoc/fr_method_index.html +29 -41
  50. data/lib/mongrel.rb +37 -9
  51. data/lib/mongrel/command.rb +13 -34
  52. data/lib/mongrel/plugins.rb +156 -0
  53. data/lib/mongrel/rails.rb +70 -0
  54. data/test/plugins/commands/test1.rb +19 -0
  55. data/test/test_plugins.rb +45 -0
  56. data/test/test_uriclassifier.rb +5 -1
  57. metadata +38 -49
  58. data/doc/rdoc/classes/FactoryError.src/M000001.html +0 -23
  59. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000022.html +0 -33
  60. data/doc/rdoc/classes/Mongrel/HttpServer.src/M000027.html +0 -19
  61. data/doc/rdoc/classes/PluginFactory.html +0 -409
  62. data/doc/rdoc/classes/PluginFactory.src/M000002.html +0 -18
  63. data/doc/rdoc/classes/PluginFactory.src/M000003.html +0 -18
  64. data/doc/rdoc/classes/PluginFactory.src/M000004.html +0 -22
  65. data/doc/rdoc/classes/PluginFactory.src/M000005.html +0 -22
  66. data/doc/rdoc/classes/PluginFactory.src/M000006.html +0 -33
  67. data/doc/rdoc/classes/PluginFactory.src/M000007.html +0 -32
  68. data/doc/rdoc/classes/PluginFactory.src/M000008.html +0 -18
  69. data/doc/rdoc/classes/PluginFactory.src/M000009.html +0 -24
  70. data/doc/rdoc/classes/PluginFactory.src/M000010.html +0 -40
  71. data/doc/rdoc/classes/PluginFactory.src/M000011.html +0 -39
  72. data/doc/rdoc/classes/PluginFactory.src/M000012.html +0 -24
  73. data/doc/rdoc/classes/PluginFactory.src/M000013.html +0 -70
  74. data/doc/rdoc/classes/PluginFactory.src/M000014.html +0 -34
  75. data/doc/rdoc/files/lib/pluginfactory_rb.html +0 -132
  76. data/lib/pluginfactory.rb +0 -384
@@ -10,9 +10,9 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 430</span>
14
- 430: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">register</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">handler</span>)
15
- 431: <span class="ruby-ivar">@classifier</span>.<span class="ruby-identifier">register</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">handler</span>)
16
- 432: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 454</span>
14
+ 454: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">register</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">handler</span>)
15
+ 455: <span class="ruby-ivar">@classifier</span>.<span class="ruby-identifier">register</span>(<span class="ruby-identifier">uri</span>, <span class="ruby-identifier">handler</span>)
16
+ 456: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -10,9 +10,9 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 436</span>
14
- 436: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unregister</span>(<span class="ruby-identifier">uri</span>)
15
- 437: <span class="ruby-ivar">@classifier</span>.<span class="ruby-identifier">unregister</span>(<span class="ruby-identifier">uri</span>)
16
- 438: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 460</span>
14
+ 460: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unregister</span>(<span class="ruby-identifier">uri</span>)
15
+ 461: <span class="ruby-ivar">@classifier</span>.<span class="ruby-identifier">unregister</span>(<span class="ruby-identifier">uri</span>)
16
+ 462: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -0,0 +1,23 @@
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>
7
+ <head>
8
+ <title>stop (Mongrel::HttpServer)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 466</span>
14
+ 466: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stop</span>
15
+ 467: <span class="ruby-identifier">stopper</span> = <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
16
+ 468: <span class="ruby-ivar">@acceptor</span>[<span class="ruby-identifier">:stopped</span>] = <span class="ruby-keyword kw">true</span>
17
+ 469: <span class="ruby-identifier">exc</span> = <span class="ruby-constant">StopServer</span>.<span class="ruby-identifier">new</span>
18
+ 470: <span class="ruby-ivar">@acceptor</span>.<span class="ruby-identifier">raise</span>(<span class="ruby-identifier">exc</span>)
19
+ 471: <span class="ruby-keyword kw">end</span>
20
+ 472: <span class="ruby-identifier">stopper</span>.<span class="ruby-identifier">priority</span> = <span class="ruby-value">10</span>
21
+ 473: <span class="ruby-keyword kw">end</span></pre>
22
+ </body>
23
+ </html>
@@ -5,10 +5,10 @@
5
5
 
6
6
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
7
  <head>
8
- <title>Class: FactoryError</title>
8
+ <title>Class: Mongrel::TimeoutWorker</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
12
  <script type="text/javascript">
13
13
  // <![CDATA[
14
14
 
@@ -50,13 +50,13 @@
50
50
  <table class="header-table">
51
51
  <tr class="top-aligned-row">
52
52
  <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">FactoryError</td>
53
+ <td class="class-name-in-header">Mongrel::TimeoutWorker</td>
54
54
  </tr>
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
- <a href="../files/lib/pluginfactory_rb.html">
59
- lib/pluginfactory.rb
58
+ <a href="../../files/lib/mongrel_rb.html">
59
+ lib/mongrel.rb
60
60
  </a>
61
61
  <br />
62
62
  </td>
@@ -65,7 +65,7 @@
65
65
  <tr class="top-aligned-row">
66
66
  <td><strong>Parent:</strong></td>
67
67
  <td>
68
- RuntimeError
68
+ Exception
69
69
  </td>
70
70
  </tr>
71
71
  </table>
@@ -80,8 +80,7 @@
80
80
 
81
81
  <div id="description">
82
82
  <p>
83
- An exception class for <a href="PluginFactory.html">PluginFactory</a>
84
- specific errors.
83
+ Used to timeout worker threads that have taken too long
85
84
  </p>
86
85
 
87
86
  </div>
@@ -89,13 +88,6 @@ specific errors.
89
88
 
90
89
  </div>
91
90
 
92
- <div id="method-list">
93
- <h3 class="section-bar">Methods</h3>
94
-
95
- <div class="name-list">
96
- <a href="#M000001">new</a>&nbsp;&nbsp;
97
- </div>
98
- </div>
99
91
 
100
92
  </div>
101
93
 
@@ -112,25 +104,6 @@ specific errors.
112
104
 
113
105
 
114
106
  <!-- if method_list -->
115
- <div id="methods">
116
- <h3 class="section-bar">Public Class methods</h3>
117
-
118
- <div id="method-M000001" class="method-detail">
119
- <a name="M000001"></a>
120
-
121
- <div class="method-heading">
122
- <a href="FactoryError.src/M000001.html" target="Code" class="method-signature"
123
- onclick="popupCode('FactoryError.src/M000001.html');return false;">
124
- <span class="method-name">new</span><span class="method-args">( *args )</span>
125
- </a>
126
- </div>
127
-
128
- <div class="method-description">
129
- </div>
130
- </div>
131
-
132
-
133
- </div>
134
107
 
135
108
 
136
109
  </div>
@@ -55,6 +55,10 @@
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
+ <a href="../../files/lib/mongrel_rb.html">
59
+ lib/mongrel.rb
60
+ </a>
61
+ <br />
58
62
  <a href="../../files/ext/http11/http11_c.html">
59
63
  ext/http11/http11.c
60
64
  </a>
@@ -86,10 +90,12 @@
86
90
  <h3 class="section-bar">Methods</h3>
87
91
 
88
92
  <div class="name-list">
89
- <a href="#M000030">new</a>&nbsp;&nbsp;
90
- <a href="#M000031">register</a>&nbsp;&nbsp;
91
- <a href="#M000033">resolve</a>&nbsp;&nbsp;
92
- <a href="#M000032">unregister</a>&nbsp;&nbsp;
93
+ <a href="#M000024">inspect</a>&nbsp;&nbsp;
94
+ <a href="#M000025">new</a>&nbsp;&nbsp;
95
+ <a href="#M000026">register</a>&nbsp;&nbsp;
96
+ <a href="#M000028">resolve</a>&nbsp;&nbsp;
97
+ <a href="#M000027">unregister</a>&nbsp;&nbsp;
98
+ <a href="#M000023">uris</a>&nbsp;&nbsp;
93
99
  </div>
94
100
  </div>
95
101
 
@@ -111,12 +117,12 @@
111
117
  <div id="methods">
112
118
  <h3 class="section-bar">Public Class methods</h3>
113
119
 
114
- <div id="method-M000030" class="method-detail">
115
- <a name="M000030"></a>
120
+ <div id="method-M000025" class="method-detail">
121
+ <a name="M000025"></a>
116
122
 
117
123
  <div class="method-heading">
118
- <a href="URIClassifier.src/M000030.html" target="Code" class="method-signature"
119
- onclick="popupCode('URIClassifier.src/M000030.html');return false;">
124
+ <a href="URIClassifier.src/M000025.html" target="Code" class="method-signature"
125
+ onclick="popupCode('URIClassifier.src/M000025.html');return false;">
120
126
  <span class="method-name">URIClassifier.new &rarr; URIClassifier<br />
121
127
  </span>
122
128
  </a>
@@ -143,12 +149,29 @@ portion.
143
149
 
144
150
  <h3 class="section-bar">Public Instance methods</h3>
145
151
 
146
- <div id="method-M000031" class="method-detail">
147
- <a name="M000031"></a>
152
+ <div id="method-M000024" class="method-detail">
153
+ <a name="M000024"></a>
154
+
155
+ <div class="method-heading">
156
+ <a href="URIClassifier.src/M000024.html" target="Code" class="method-signature"
157
+ onclick="popupCode('URIClassifier.src/M000024.html');return false;">
158
+ <span class="method-name">inspect</span><span class="method-args">()</span>
159
+ </a>
160
+ </div>
161
+
162
+ <div class="method-description">
163
+ <p>
164
+ Simply does an inspect that looks like a Hash inspect.
165
+ </p>
166
+ </div>
167
+ </div>
168
+
169
+ <div id="method-M000026" class="method-detail">
170
+ <a name="M000026"></a>
148
171
 
149
172
  <div class="method-heading">
150
- <a href="URIClassifier.src/M000031.html" target="Code" class="method-signature"
151
- onclick="popupCode('URIClassifier.src/M000031.html');return false;">
173
+ <a href="URIClassifier.src/M000026.html" target="Code" class="method-signature"
174
+ onclick="popupCode('URIClassifier.src/M000026.html');return false;">
152
175
  <span class="method-name">uc.register("/someuri", SampleHandler.new) &rarr; nil<br />
153
176
  </span>
154
177
  </a>
@@ -173,12 +196,12 @@ to get right with a Hash.
173
196
  </div>
174
197
  </div>
175
198
 
176
- <div id="method-M000033" class="method-detail">
177
- <a name="M000033"></a>
199
+ <div id="method-M000028" class="method-detail">
200
+ <a name="M000028"></a>
178
201
 
179
202
  <div class="method-heading">
180
- <a href="URIClassifier.src/M000033.html" target="Code" class="method-signature"
181
- onclick="popupCode('URIClassifier.src/M000033.html');return false;">
203
+ <a href="URIClassifier.src/M000028.html" target="Code" class="method-signature"
204
+ onclick="popupCode('URIClassifier.src/M000028.html');return false;">
182
205
  <span class="method-name">uc.resolve("/someuri") &rarr; "/someuri", "", handler<br />
183
206
  uc.resolve("/someuri/pathinfo") &rarr; "/someuri", "/pathinfo", handler<br />
184
207
  uc.resolve("/notfound/orhere") &rarr; nil, nil, nil<br />
@@ -224,12 +247,12 @@ Don&#8216;t try other string-like stuff yet.
224
247
  </div>
225
248
  </div>
226
249
 
227
- <div id="method-M000032" class="method-detail">
228
- <a name="M000032"></a>
250
+ <div id="method-M000027" class="method-detail">
251
+ <a name="M000027"></a>
229
252
 
230
253
  <div class="method-heading">
231
- <a href="URIClassifier.src/M000032.html" target="Code" class="method-signature"
232
- onclick="popupCode('URIClassifier.src/M000032.html');return false;">
254
+ <a href="URIClassifier.src/M000027.html" target="Code" class="method-signature"
255
+ onclick="popupCode('URIClassifier.src/M000027.html');return false;">
233
256
  <span class="method-name">uc.unregister("/someuri")<br />
234
257
  </span>
235
258
  </a>
@@ -242,6 +265,26 @@ Yep, just removes this uri and it&#8217;s handler from the trie.
242
265
  </div>
243
266
  </div>
244
267
 
268
+ <div id="method-M000023" class="method-detail">
269
+ <a name="M000023"></a>
270
+
271
+ <div class="method-heading">
272
+ <a href="URIClassifier.src/M000023.html" target="Code" class="method-signature"
273
+ onclick="popupCode('URIClassifier.src/M000023.html');return false;">
274
+ <span class="method-name">uris</span><span class="method-args">()</span>
275
+ </a>
276
+ </div>
277
+
278
+ <div class="method-description">
279
+ <p>
280
+ Returns the URIs that have been registered with this classifier so far. The
281
+ URIs returned should not be modified as this will cause a memory leak. You
282
+ can use this to inspect the contents of the <a
283
+ href="URIClassifier.html">URIClassifier</a>.
284
+ </p>
285
+ </div>
286
+ </div>
287
+
245
288
 
246
289
  </div>
247
290
 
@@ -0,0 +1,18 @@
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>
7
+ <head>
8
+ <title>uris (Mongrel::URIClassifier)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 20</span>
14
+ 20: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uris</span>
15
+ 21: <span class="ruby-ivar">@handler_map</span>.<span class="ruby-identifier">keys</span>
16
+ 22: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
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>
7
+ <head>
8
+ <title>inspect (Mongrel::URIClassifier)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 25</span>
14
+ 25: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span>
15
+ 26: <span class="ruby-ivar">@handler_map</span>.<span class="ruby-identifier">inspect</span>
16
+ 27: <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -1 +1 @@
1
- Wed Feb 22 12:20:19 EST 2006
1
+ Thu Mar 02 22:02:19 EST 2006
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Feb 19 10:22:19 EST 2006</td>
59
+ <td>Wed Feb 22 13:06:44 EST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -88,7 +88,8 @@ The 0.3.6 release supports Ruby On Rails much better than previously, and
88
88
  also sports the beginning of a command and plugin infrastructure. There is
89
89
  now a more complete CGIWrapper that handles most of the CGI usage, but
90
90
  still doesn&#8217;t do the MIME decoding or file upload/send (it leaves
91
- that to CGI).
91
+ that to CGI). Finally, there&#8217;s a great mongrel_rails_service script
92
+ for running under Win32 as a service.
92
93
  </p>
93
94
  <p>
94
95
  After you&#8217;ve installed (either with gem install mongrel or via
@@ -128,6 +129,38 @@ There are also many more new options for configuring the rails runner
128
129
  including changing to a different directory, adding more MIME types, and
129
130
  setting processor threads and timeouts.
130
131
  </p>
132
+ <h3>Win32 Service Support</h3>
133
+ <p>
134
+ <a href="../classes/Mongrel.html">Mongrel</a> now has support for running
135
+ as a Win32 service right out of the box. The support is still rough but
136
+ works well enough that we decided to release it. You can thank Luis Lavena
137
+ for working on this and making it so nice.
138
+ </p>
139
+ <p>
140
+ After you do the gem install, find a Rails application you want to run and
141
+ do:
142
+ </p>
143
+ <pre>
144
+ $ mongrel_rails_service install -n myapp \
145
+ -r c:\my\path\to\myapp -p 4000 -e production
146
+ $ mongrel_rails_service start -n myapp
147
+ </pre>
148
+ <p>
149
+ Now hit the port and poof, works. *Stopping the service is a little
150
+ problematic right now.*
151
+ </p>
152
+ <p>
153
+ If you run into an app that&#8217;s not running right, my suggestion is to
154
+ run it with the regular mongrel_rails runner:
155
+ </p>
156
+ <pre>
157
+ $ cd c:\my\path\to\myapp
158
+ $ mongrel_rails start -p 4500
159
+ </pre>
160
+ <p>
161
+ Since that will spit out error messages and stuff to the console. *Use
162
+ CTRL-Pause/Break to stop.*
163
+ </p>
131
164
  <h2>Install</h2>
132
165
  <p>
133
166
  It doesn&#8217;t explicitly require Camping, but if you want to run the
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Mon Feb 20 19:06:43 EST 2006</td>
59
+ <td>Thu Mar 02 22:01:30 EST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -79,6 +79,9 @@
79
79
  stringio&nbsp;&nbsp;
80
80
  mongrel/cgi&nbsp;&nbsp;
81
81
  mongrel/handlers&nbsp;&nbsp;
82
+ mongrel/command&nbsp;&nbsp;
83
+ mongrel/plugins&nbsp;&nbsp;
84
+ timeout&nbsp;&nbsp;
82
85
  </div>
83
86
  </div>
84
87
 
@@ -20,7 +20,6 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Classes</h1>
22
22
  <div id="index-entries">
23
- <a href="classes/FactoryError.html">FactoryError</a><br />
24
23
  <a href="classes/Mongrel.html">Mongrel</a><br />
25
24
  <a href="classes/Mongrel/Const.html">Mongrel::Const</a><br />
26
25
  <a href="classes/Mongrel/HeaderOut.html">Mongrel::HeaderOut</a><br />
@@ -29,8 +28,8 @@
29
28
  <a href="classes/Mongrel/HttpResponse.html">Mongrel::HttpResponse</a><br />
30
29
  <a href="classes/Mongrel/HttpServer.html">Mongrel::HttpServer</a><br />
31
30
  <a href="classes/Mongrel/StopServer.html">Mongrel::StopServer</a><br />
31
+ <a href="classes/Mongrel/TimeoutWorker.html">Mongrel::TimeoutWorker</a><br />
32
32
  <a href="classes/Mongrel/URIClassifier.html">Mongrel::URIClassifier</a><br />
33
- <a href="classes/PluginFactory.html">PluginFactory</a><br />
34
33
  </div>
35
34
  </div>
36
35
  </body>
@@ -25,7 +25,6 @@
25
25
  <a href="files/README.html">README</a><br />
26
26
  <a href="files/ext/http11/http11_c.html">ext/http11/http11.c</a><br />
27
27
  <a href="files/lib/mongrel_rb.html">lib/mongrel.rb</a><br />
28
- <a href="files/lib/pluginfactory_rb.html">lib/pluginfactory.rb</a><br />
29
28
  </div>
30
29
  </div>
31
30
  </body>
@@ -20,47 +20,35 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
- <a href="classes/Mongrel/HeaderOut.html#M000029">[]= (Mongrel::HeaderOut)</a><br />
24
- <a href="classes/PluginFactory.html#M000009">create (PluginFactory)</a><br />
25
- <a href="classes/PluginFactory.html#M000008">derivativeClasses (PluginFactory)</a><br />
26
- <a href="classes/PluginFactory.html#M000005">derivatives (PluginFactory)</a><br />
27
- <a href="classes/Mongrel/HttpParser.html#M000019">error? (Mongrel::HttpParser)</a><br />
28
- <a href="classes/Mongrel/HttpParser.html#M000018">execute (Mongrel::HttpParser)</a><br />
29
- <a href="classes/PluginFactory.html#M000004">extend_object (PluginFactory)</a><br />
30
- <a href="classes/PluginFactory.html#M000006">factoryType (PluginFactory)</a><br />
31
- <a href="classes/Mongrel/HttpParser.html#M000017">finish (Mongrel::HttpParser)</a><br />
32
- <a href="classes/Mongrel/HttpResponse.html#M000040">finished (Mongrel::HttpResponse)</a><br />
33
- <a href="classes/Mongrel/HttpParser.html#M000020">finished? (Mongrel::HttpParser)</a><br />
34
- <a href="classes/PluginFactory.html#M000012">getModuleName (PluginFactory)</a><br />
35
- <a href="classes/PluginFactory.html#M000010">getSubclass (PluginFactory)</a><br />
36
- <a href="classes/PluginFactory.html#M000003">included (PluginFactory)</a><br />
37
- <a href="classes/PluginFactory.html#M000007">inherited (PluginFactory)</a><br />
38
- <a href="classes/PluginFactory.html#M000011">loadDerivative (PluginFactory)</a><br />
39
- <a href="classes/PluginFactory.html#M000002">log (PluginFactory)</a><br />
40
- <a href="classes/PluginFactory.html#M000014">makeRequirePath (PluginFactory)</a><br />
41
- <a href="classes/Mongrel/HeaderOut.html#M000028">new (Mongrel::HeaderOut)</a><br />
42
- <a href="classes/Mongrel/HttpResponse.html#M000034">new (Mongrel::HttpResponse)</a><br />
43
- <a href="classes/Mongrel/HttpParser.html#M000015">new (Mongrel::HttpParser)</a><br />
44
- <a href="classes/Mongrel/HttpServer.html#M000022">new (Mongrel::HttpServer)</a><br />
45
- <a href="classes/Mongrel/URIClassifier.html#M000030">new (Mongrel::URIClassifier)</a><br />
46
- <a href="classes/FactoryError.html#M000001">new (FactoryError)</a><br />
47
- <a href="classes/Mongrel/HttpRequest.html#M000041">new (Mongrel::HttpRequest)</a><br />
48
- <a href="classes/Mongrel/HttpParser.html#M000021">nread (Mongrel::HttpParser)</a><br />
49
- <a href="classes/Mongrel/HttpServer.html#M000023">process_client (Mongrel::HttpServer)</a><br />
50
- <a href="classes/Mongrel/HttpServer.html#M000025">register (Mongrel::HttpServer)</a><br />
51
- <a href="classes/Mongrel/URIClassifier.html#M000031">register (Mongrel::URIClassifier)</a><br />
52
- <a href="classes/PluginFactory.html#M000013">requireDerivative (PluginFactory)</a><br />
53
- <a href="classes/Mongrel/HttpResponse.html#M000036">reset (Mongrel::HttpResponse)</a><br />
54
- <a href="classes/Mongrel/HttpParser.html#M000016">reset (Mongrel::HttpParser)</a><br />
55
- <a href="classes/Mongrel/URIClassifier.html#M000033">resolve (Mongrel::URIClassifier)</a><br />
56
- <a href="classes/Mongrel/HttpServer.html#M000024">run (Mongrel::HttpServer)</a><br />
57
- <a href="classes/Mongrel/HttpResponse.html#M000039">send_body (Mongrel::HttpResponse)</a><br />
58
- <a href="classes/Mongrel/HttpResponse.html#M000038">send_header (Mongrel::HttpResponse)</a><br />
59
- <a href="classes/Mongrel/HttpResponse.html#M000037">send_status (Mongrel::HttpResponse)</a><br />
60
- <a href="classes/Mongrel/HttpResponse.html#M000035">start (Mongrel::HttpResponse)</a><br />
61
- <a href="classes/Mongrel/HttpServer.html#M000027">stop (Mongrel::HttpServer)</a><br />
62
- <a href="classes/Mongrel/URIClassifier.html#M000032">unregister (Mongrel::URIClassifier)</a><br />
63
- <a href="classes/Mongrel/HttpServer.html#M000026">unregister (Mongrel::HttpServer)</a><br />
23
+ <a href="classes/Mongrel/HeaderOut.html#M000015">[]= (Mongrel::HeaderOut)</a><br />
24
+ <a href="classes/Mongrel/HttpParser.html#M000005">error? (Mongrel::HttpParser)</a><br />
25
+ <a href="classes/Mongrel/HttpParser.html#M000004">execute (Mongrel::HttpParser)</a><br />
26
+ <a href="classes/Mongrel/HttpParser.html#M000003">finish (Mongrel::HttpParser)</a><br />
27
+ <a href="classes/Mongrel/HttpResponse.html#M000022">finished (Mongrel::HttpResponse)</a><br />
28
+ <a href="classes/Mongrel/HttpParser.html#M000006">finished? (Mongrel::HttpParser)</a><br />
29
+ <a href="classes/Mongrel/URIClassifier.html#M000024">inspect (Mongrel::URIClassifier)</a><br />
30
+ <a href="classes/Mongrel/HttpParser.html#M000001">new (Mongrel::HttpParser)</a><br />
31
+ <a href="classes/Mongrel/HttpRequest.html#M000029">new (Mongrel::HttpRequest)</a><br />
32
+ <a href="classes/Mongrel/URIClassifier.html#M000025">new (Mongrel::URIClassifier)</a><br />
33
+ <a href="classes/Mongrel/HeaderOut.html#M000014">new (Mongrel::HeaderOut)</a><br />
34
+ <a href="classes/Mongrel/HttpResponse.html#M000016">new (Mongrel::HttpResponse)</a><br />
35
+ <a href="classes/Mongrel/HttpServer.html#M000008">new (Mongrel::HttpServer)</a><br />
36
+ <a href="classes/Mongrel/HttpParser.html#M000007">nread (Mongrel::HttpParser)</a><br />
37
+ <a href="classes/Mongrel/HttpServer.html#M000009">process_client (Mongrel::HttpServer)</a><br />
38
+ <a href="classes/Mongrel/HttpServer.html#M000011">register (Mongrel::HttpServer)</a><br />
39
+ <a href="classes/Mongrel/URIClassifier.html#M000026">register (Mongrel::URIClassifier)</a><br />
40
+ <a href="classes/Mongrel/HttpParser.html#M000002">reset (Mongrel::HttpParser)</a><br />
41
+ <a href="classes/Mongrel/HttpResponse.html#M000018">reset (Mongrel::HttpResponse)</a><br />
42
+ <a href="classes/Mongrel/URIClassifier.html#M000028">resolve (Mongrel::URIClassifier)</a><br />
43
+ <a href="classes/Mongrel/HttpServer.html#M000010">run (Mongrel::HttpServer)</a><br />
44
+ <a href="classes/Mongrel/HttpResponse.html#M000021">send_body (Mongrel::HttpResponse)</a><br />
45
+ <a href="classes/Mongrel/HttpResponse.html#M000020">send_header (Mongrel::HttpResponse)</a><br />
46
+ <a href="classes/Mongrel/HttpResponse.html#M000019">send_status (Mongrel::HttpResponse)</a><br />
47
+ <a href="classes/Mongrel/HttpResponse.html#M000017">start (Mongrel::HttpResponse)</a><br />
48
+ <a href="classes/Mongrel/HttpServer.html#M000013">stop (Mongrel::HttpServer)</a><br />
49
+ <a href="classes/Mongrel/URIClassifier.html#M000027">unregister (Mongrel::URIClassifier)</a><br />
50
+ <a href="classes/Mongrel/HttpServer.html#M000012">unregister (Mongrel::HttpServer)</a><br />
51
+ <a href="classes/Mongrel/URIClassifier.html#M000023">uris (Mongrel::URIClassifier)</a><br />
64
52
  </div>
65
53
  </div>
66
54
  </body>