mongrel 0.3.6 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>