mongrel 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/doc/rdoc/classes/Mongrel/CGIWrapper.html +80 -34
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000047.html +10 -9
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000048.html +34 -13
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000049.html +21 -9
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000050.html +14 -13
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000051.html +13 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000052.html +5 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000053.html +5 -5
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000054.html +5 -6
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000055.html +19 -0
- data/doc/rdoc/classes/Mongrel/Const.html +1 -1
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000023.html +1 -1
- data/doc/rdoc/classes/Mongrel/Error404Handler.html +10 -10
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/M000056.html +5 -5
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/M000057.html +18 -0
- data/doc/rdoc/classes/Mongrel/HttpRequest.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000057.html → M000058.html} +0 -0
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/lib/mongrel_rb.html +1 -1
- data/doc/rdoc/fr_method_index.html +13 -12
- data/lib/mongrel.rb +74 -15
- metadata +5 -4
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/M000055.html +0 -18
data/Rakefile
CHANGED
@@ -97,14 +97,15 @@ so I need testers to help work out the various corner cases.
|
|
97
97
|
<h3 class="section-bar">Methods</h3>
|
98
98
|
|
99
99
|
<div class="name-list">
|
100
|
-
<a href="#
|
101
|
-
<a href="#
|
100
|
+
<a href="#M000052">args</a>
|
101
|
+
<a href="#M000053">env_table</a>
|
102
102
|
<a href="#M000048">header</a>
|
103
103
|
<a href="#M000047">new</a>
|
104
|
-
<a href="#
|
105
|
-
<a href="#
|
106
|
-
<a href="#
|
107
|
-
<a href="#M000054">
|
104
|
+
<a href="#M000050">out</a>
|
105
|
+
<a href="#M000049">send_cookies</a>
|
106
|
+
<a href="#M000051">status</a>
|
107
|
+
<a href="#M000054">stdinput</a>
|
108
|
+
<a href="#M000055">stdoutput</a>
|
108
109
|
</div>
|
109
110
|
</div>
|
110
111
|
|
@@ -116,6 +117,25 @@ so I need testers to help work out the various corner cases.
|
|
116
117
|
<div id="section">
|
117
118
|
|
118
119
|
|
120
|
+
<div id="constants-list">
|
121
|
+
<h3 class="section-bar">Constants</h3>
|
122
|
+
|
123
|
+
<div class="name-list">
|
124
|
+
<table summary="Constants">
|
125
|
+
<tr class="top-aligned-row context-row">
|
126
|
+
<td class="context-item-name">REMOVED_KEYS</td>
|
127
|
+
<td>=</td>
|
128
|
+
<td class="context-item-value">[ "nph","status","server","connection","type", "charset","length","language","expires"]</td>
|
129
|
+
<td width="3em"> </td>
|
130
|
+
<td class="context-item-desc">
|
131
|
+
these are stripped out of any keys passed to <a
|
132
|
+
href="CGIWrapper.html#M000048">CGIWrapper.header</a> function
|
133
|
+
|
134
|
+
</td>
|
135
|
+
</tr>
|
136
|
+
</table>
|
137
|
+
</div>
|
138
|
+
</div>
|
119
139
|
|
120
140
|
|
121
141
|
|
@@ -155,12 +175,12 @@ so I need testers to help work out the various corner cases.
|
|
155
175
|
|
156
176
|
<h3 class="section-bar">Public Instance methods</h3>
|
157
177
|
|
158
|
-
<div id="method-
|
159
|
-
<a name="
|
178
|
+
<div id="method-M000052" class="method-detail">
|
179
|
+
<a name="M000052"></a>
|
160
180
|
|
161
181
|
<div class="method-heading">
|
162
|
-
<a href="CGIWrapper.src/
|
163
|
-
onclick="popupCode('CGIWrapper.src/
|
182
|
+
<a href="CGIWrapper.src/M000052.html" target="Code" class="method-signature"
|
183
|
+
onclick="popupCode('CGIWrapper.src/M000052.html');return false;">
|
164
184
|
<span class="method-name">args</span><span class="method-args">()</span>
|
165
185
|
</a>
|
166
186
|
</div>
|
@@ -172,19 +192,19 @@ Used to wrap the normal args variable used inside CGI.
|
|
172
192
|
</div>
|
173
193
|
</div>
|
174
194
|
|
175
|
-
<div id="method-
|
176
|
-
<a name="
|
195
|
+
<div id="method-M000053" class="method-detail">
|
196
|
+
<a name="M000053"></a>
|
177
197
|
|
178
198
|
<div class="method-heading">
|
179
|
-
<a href="CGIWrapper.src/
|
180
|
-
onclick="popupCode('CGIWrapper.src/
|
199
|
+
<a href="CGIWrapper.src/M000053.html" target="Code" class="method-signature"
|
200
|
+
onclick="popupCode('CGIWrapper.src/M000053.html');return false;">
|
181
201
|
<span class="method-name">env_table</span><span class="method-args">()</span>
|
182
202
|
</a>
|
183
203
|
</div>
|
184
204
|
|
185
205
|
<div class="method-description">
|
186
206
|
<p>
|
187
|
-
Used to wrap the normal <a href="CGIWrapper.html#
|
207
|
+
Used to wrap the normal <a href="CGIWrapper.html#M000053">env_table</a>
|
188
208
|
variable used inside CGI.
|
189
209
|
</p>
|
190
210
|
</div>
|
@@ -203,18 +223,23 @@ variable used inside CGI.
|
|
203
223
|
<div class="method-description">
|
204
224
|
<p>
|
205
225
|
The header is typically called to send back the header. In our case we
|
206
|
-
collect it into a hash for later usage.
|
207
|
-
|
226
|
+
collect it into a hash for later usage.
|
227
|
+
</p>
|
228
|
+
<p>
|
229
|
+
nph — Mostly ignored. It‘ll output the date. connection —
|
230
|
+
Completely ignored. Why is CGI doing this? length — Ignored since <a
|
231
|
+
href="../Mongrel.html">Mongrel</a> figures this out from what you write to
|
232
|
+
output.
|
208
233
|
</p>
|
209
234
|
</div>
|
210
235
|
</div>
|
211
236
|
|
212
|
-
<div id="method-
|
213
|
-
<a name="
|
237
|
+
<div id="method-M000050" class="method-detail">
|
238
|
+
<a name="M000050"></a>
|
214
239
|
|
215
240
|
<div class="method-heading">
|
216
|
-
<a href="CGIWrapper.src/
|
217
|
-
onclick="popupCode('CGIWrapper.src/
|
241
|
+
<a href="CGIWrapper.src/M000050.html" target="Code" class="method-signature"
|
242
|
+
onclick="popupCode('CGIWrapper.src/M000050.html');return false;">
|
218
243
|
<span class="method-name">out</span><span class="method-args">(options = "text/html") {||| "")| ...}</span>
|
219
244
|
</a>
|
220
245
|
</div>
|
@@ -226,17 +251,38 @@ So, we just reuse header and then finalize the <a
|
|
226
251
|
href="HttpResponse.html">HttpResponse</a> the right way. Status is taken
|
227
252
|
from the various options and converted to what <a
|
228
253
|
href="../Mongrel.html">Mongrel</a> needs via the <a
|
229
|
-
href="CGIWrapper.html#
|
254
|
+
href="CGIWrapper.html#M000051">CGIWrapper.status</a> function.
|
230
255
|
</p>
|
231
256
|
</div>
|
232
257
|
</div>
|
233
258
|
|
234
|
-
<div id="method-
|
235
|
-
<a name="
|
259
|
+
<div id="method-M000049" class="method-detail">
|
260
|
+
<a name="M000049"></a>
|
236
261
|
|
237
262
|
<div class="method-heading">
|
238
|
-
<a href="CGIWrapper.src/
|
239
|
-
onclick="popupCode('CGIWrapper.src/
|
263
|
+
<a href="CGIWrapper.src/M000049.html" target="Code" class="method-signature"
|
264
|
+
onclick="popupCode('CGIWrapper.src/M000049.html');return false;">
|
265
|
+
<span class="method-name">send_cookies</span><span class="method-args">(to)</span>
|
266
|
+
</a>
|
267
|
+
</div>
|
268
|
+
|
269
|
+
<div class="method-description">
|
270
|
+
<p>
|
271
|
+
Takes any ‘cookie’ setting and sends it over the <a
|
272
|
+
href="../Mongrel.html">Mongrel</a> header, then removes the setting from
|
273
|
+
the options. If cookie is an Array or Hash then it sends those on with
|
274
|
+
.to_s, otherwise it just calls .to_s on it and hopefully your
|
275
|
+
"cookie" can write itself correctly.
|
276
|
+
</p>
|
277
|
+
</div>
|
278
|
+
</div>
|
279
|
+
|
280
|
+
<div id="method-M000051" class="method-detail">
|
281
|
+
<a name="M000051"></a>
|
282
|
+
|
283
|
+
<div class="method-heading">
|
284
|
+
<a href="CGIWrapper.src/M000051.html" target="Code" class="method-signature"
|
285
|
+
onclick="popupCode('CGIWrapper.src/M000051.html');return false;">
|
240
286
|
<span class="method-name">status</span><span class="method-args">()</span>
|
241
287
|
</a>
|
242
288
|
</div>
|
@@ -250,12 +296,12 @@ status message in the status we have to do a bit of parsing.
|
|
250
296
|
</div>
|
251
297
|
</div>
|
252
298
|
|
253
|
-
<div id="method-
|
254
|
-
<a name="
|
299
|
+
<div id="method-M000054" class="method-detail">
|
300
|
+
<a name="M000054"></a>
|
255
301
|
|
256
302
|
<div class="method-heading">
|
257
|
-
<a href="CGIWrapper.src/
|
258
|
-
onclick="popupCode('CGIWrapper.src/
|
303
|
+
<a href="CGIWrapper.src/M000054.html" target="Code" class="method-signature"
|
304
|
+
onclick="popupCode('CGIWrapper.src/M000054.html');return false;">
|
259
305
|
<span class="method-name">stdinput</span><span class="method-args">()</span>
|
260
306
|
</a>
|
261
307
|
</div>
|
@@ -267,12 +313,12 @@ Used to wrap the normal stdinput variable used inside CGI.
|
|
267
313
|
</div>
|
268
314
|
</div>
|
269
315
|
|
270
|
-
<div id="method-
|
271
|
-
<a name="
|
316
|
+
<div id="method-M000055" class="method-detail">
|
317
|
+
<a name="M000055"></a>
|
272
318
|
|
273
319
|
<div class="method-heading">
|
274
|
-
<a href="CGIWrapper.src/
|
275
|
-
onclick="popupCode('CGIWrapper.src/
|
320
|
+
<a href="CGIWrapper.src/M000055.html" target="Code" class="method-signature"
|
321
|
+
onclick="popupCode('CGIWrapper.src/M000055.html');return false;">
|
276
322
|
<span class="method-name">stdoutput</span><span class="method-args">()</span>
|
277
323
|
</a>
|
278
324
|
</div>
|
@@ -10,14 +10,15 @@
|
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 608</span>
|
14
|
+
608: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
15
|
+
609: <span class="ruby-ivar">@request</span> = <span class="ruby-identifier">request</span>
|
16
|
+
610: <span class="ruby-ivar">@response</span> = <span class="ruby-identifier">response</span>
|
17
|
+
611: <span class="ruby-ivar">@args</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
|
18
|
+
612: <span class="ruby-ivar">@input</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">request</span>.<span class="ruby-identifier">body</span>)
|
19
|
+
613: <span class="ruby-ivar">@head</span> = {}
|
20
|
+
614: <span class="ruby-ivar">@out_called</span> = <span class="ruby-keyword kw">false</span>
|
21
|
+
615: <span class="ruby-keyword kw">super</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
22
|
+
616: <span class="ruby-keyword kw">end</span></pre>
|
22
23
|
</body>
|
23
24
|
</html>
|
@@ -10,18 +10,39 @@
|
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 625</span>
|
14
|
+
625: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">header</span>(<span class="ruby-identifier">options</span> = <span class="ruby-value str">"text/html"</span>)
|
15
|
+
626:
|
16
|
+
627: <span class="ruby-comment cmt"># if they pass in a string then just write the Content-Type</span>
|
17
|
+
628: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">String</span>
|
18
|
+
629: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">options</span>
|
19
|
+
630: <span class="ruby-keyword kw">else</span>
|
20
|
+
631: <span class="ruby-comment cmt"># convert the given options into what Mongrel wants</span>
|
21
|
+
632: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'type'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">"text/html"</span>
|
22
|
+
633: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Type'</span>] <span class="ruby-operator">+=</span> <span class="ruby-value str">"; charset="</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'charset'</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span> <span class="ruby-value str">"charset"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'charset'</span>]
|
23
|
+
634:
|
24
|
+
635: <span class="ruby-comment cmt"># setup date only if they use nph</span>
|
25
|
+
636: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Date'</span>] = <span class="ruby-constant">CGI</span><span class="ruby-operator">::</span><span class="ruby-identifier">rfc1123_date</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'nph'</span>]
|
26
|
+
637:
|
27
|
+
638: <span class="ruby-comment cmt"># setup the server to use the default or what they set</span>
|
28
|
+
639: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Server'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'server'</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">env_table</span>[<span class="ruby-value str">'SERVER_SOFTWARE'</span>]
|
29
|
+
640:
|
30
|
+
641: <span class="ruby-comment cmt"># remaining possible options they can give</span>
|
31
|
+
642: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Status'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'status'</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'status'</span>]
|
32
|
+
643: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Content-Language'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'language'</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'language'</span>]
|
33
|
+
644: <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'Expires'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'expires'</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'expires'</span>]
|
34
|
+
645:
|
35
|
+
646: <span class="ruby-comment cmt"># drop the keys we don't want anymore</span>
|
36
|
+
647: <span class="ruby-constant">REMOVED_KEYS</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) }
|
37
|
+
648:
|
38
|
+
649: <span class="ruby-comment cmt"># finally just convert the rest raw (which puts 'cookie' directly)</span>
|
39
|
+
650: <span class="ruby-comment cmt"># 'cookie' is translated later as we write the header out</span>
|
40
|
+
651: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@head</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>}
|
41
|
+
652: <span class="ruby-keyword kw">end</span>
|
42
|
+
653:
|
43
|
+
654: <span class="ruby-comment cmt"># doing this fakes out the cgi library to think the headers are empty</span>
|
44
|
+
655: <span class="ruby-comment cmt"># we then do the real headers in the out function call later</span>
|
45
|
+
656: <span class="ruby-value str">""</span>
|
46
|
+
657: <span class="ruby-keyword kw">end</span></pre>
|
26
47
|
</body>
|
27
48
|
</html>
|
@@ -5,18 +5,30 @@
|
|
5
5
|
|
6
6
|
<html>
|
7
7
|
<head>
|
8
|
-
<title>
|
8
|
+
<title>send_cookies (Mongrel::CGIWrapper)</title>
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 664</span>
|
14
|
+
664: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_cookies</span>(<span class="ruby-identifier">to</span>)
|
15
|
+
665: <span class="ruby-comment cmt"># convert the cookies based on the myriad of possible ways to set a cookie</span>
|
16
|
+
666: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'cookie'</span>]
|
17
|
+
667: <span class="ruby-identifier">cookie</span> = <span class="ruby-ivar">@head</span>[<span class="ruby-value str">'cookie'</span>]
|
18
|
+
668: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cookie</span>
|
19
|
+
669: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
|
20
|
+
670: <span class="ruby-identifier">cookie</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to</span>[<span class="ruby-value str">'Set-Cookie'</span>] = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span> }
|
21
|
+
671: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span>
|
22
|
+
672: <span class="ruby-identifier">cookie</span>.<span class="ruby-identifier">each_value</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to</span>[<span class="ruby-value str">'Set-Cookie'</span>] = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span>}
|
23
|
+
673: <span class="ruby-keyword kw">else</span>
|
24
|
+
674: <span class="ruby-identifier">to</span>[<span class="ruby-value str">'Set-Cookie'</span>] = <span class="ruby-identifier">options</span>[<span class="ruby-value str">'cookie'</span>].<span class="ruby-identifier">to_s</span>
|
25
|
+
675: <span class="ruby-keyword kw">end</span>
|
26
|
+
676:
|
27
|
+
677: <span class="ruby-ivar">@head</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'cookie'</span>)
|
28
|
+
678:
|
29
|
+
679: <span class="ruby-comment cmt"># @output_cookies seems to never be used, but we'll process it just in case</span>
|
30
|
+
680: <span class="ruby-ivar">@output_cookies</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to</span>[<span class="ruby-value str">'Set-Cookie'</span>] = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span> } <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@output_cookies</span>
|
31
|
+
681: <span class="ruby-keyword kw">end</span>
|
32
|
+
682: <span class="ruby-keyword kw">end</span></pre>
|
21
33
|
</body>
|
22
34
|
</html>
|
@@ -5,22 +5,23 @@
|
|
5
5
|
|
6
6
|
<html>
|
7
7
|
<head>
|
8
|
-
<title>
|
8
|
+
<title>out (Mongrel::CGIWrapper)</title>
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 688</span>
|
14
|
+
688: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">out</span>(<span class="ruby-identifier">options</span> = <span class="ruby-value str">"text/html"</span>)
|
15
|
+
689: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@out_called</span> <span class="ruby-comment cmt"># don't do this more than once</span>
|
16
|
+
690:
|
17
|
+
691: <span class="ruby-identifier">header</span>(<span class="ruby-identifier">options</span>)
|
18
|
+
692:
|
19
|
+
693: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">start</span> <span class="ruby-identifier">status</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">head</span>, <span class="ruby-identifier">out</span><span class="ruby-operator">|</span>
|
20
|
+
694: <span class="ruby-identifier">send_cookies</span>(<span class="ruby-identifier">head</span>)
|
21
|
+
695:
|
22
|
+
696: <span class="ruby-ivar">@head</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">head</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>}
|
23
|
+
697: <span class="ruby-identifier">out</span>.<span class="ruby-identifier">write</span>(<span class="ruby-keyword kw">yield</span> <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>)
|
24
|
+
698: <span class="ruby-keyword kw">end</span>
|
25
|
+
699: <span class="ruby-keyword kw">end</span></pre>
|
25
26
|
</body>
|
26
27
|
</html>
|
@@ -5,14 +5,22 @@
|
|
5
5
|
|
6
6
|
<html>
|
7
7
|
<head>
|
8
|
-
<title>
|
8
|
+
<title>status (Mongrel::CGIWrapper)</title>
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 704</span>
|
14
|
+
704: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">status</span>
|
15
|
+
705: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@status</span>
|
16
|
+
706: <span class="ruby-ivar">@status</span> = <span class="ruby-ivar">@head</span>[<span class="ruby-value str">"Status"</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@head</span>[<span class="ruby-value str">"status"</span>]
|
17
|
+
707:
|
18
|
+
708: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@status</span>
|
19
|
+
709: <span class="ruby-ivar">@status</span>[<span class="ruby-value">0</span> <span class="ruby-operator">...</span> <span class="ruby-ivar">@status</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">' '</span>)] <span class="ruby-operator">||</span> <span class="ruby-value str">"200"</span>
|
20
|
+
710: <span class="ruby-keyword kw">else</span>
|
21
|
+
711: <span class="ruby-ivar">@status</span> = <span class="ruby-value str">"200"</span>
|
22
|
+
712: <span class="ruby-keyword kw">end</span>
|
23
|
+
713: <span class="ruby-keyword kw">end</span>
|
24
|
+
714: <span class="ruby-keyword kw">end</span></pre>
|
17
25
|
</body>
|
18
26
|
</html>
|
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
<html>
|
7
7
|
<head>
|
8
|
-
<title>
|
8
|
+
<title>args (Mongrel::CGIWrapper)</title>
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 717</span>
|
14
|
+
717: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">args</span>
|
15
|
+
718: <span class="ruby-ivar">@args</span>
|
16
|
+
719: <span class="ruby-keyword kw">end</span></pre>
|
17
17
|
</body>
|
18
18
|
</html>
|
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
<html>
|
7
7
|
<head>
|
8
|
-
<title>
|
8
|
+
<title>env_table (Mongrel::CGIWrapper)</title>
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 722</span>
|
14
|
+
722: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env_table</span>
|
15
|
+
723: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
|
16
|
+
724: <span class="ruby-keyword kw">end</span></pre>
|
17
17
|
</body>
|
18
18
|
</html>
|
@@ -5,15 +5,14 @@
|
|
5
5
|
|
6
6
|
<html>
|
7
7
|
<head>
|
8
|
-
<title>
|
8
|
+
<title>stdinput (Mongrel::CGIWrapper)</title>
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
676: <span class="ruby-keyword kw">end</span></pre>
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 727</span>
|
14
|
+
727: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdinput</span>
|
15
|
+
728: <span class="ruby-ivar">@input</span>
|
16
|
+
729: <span class="ruby-keyword kw">end</span></pre>
|
18
17
|
</body>
|
19
18
|
</html>
|
@@ -0,0 +1,19 @@
|
|
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>stdoutput (Mongrel::CGIWrapper)</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 732</span>
|
14
|
+
732: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdoutput</span>
|
15
|
+
733: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"WARNING: Your program is doing something not expected. Please tell Zed that stdoutput was used and what software you are running. Thanks."</span>
|
16
|
+
734: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">body</span>
|
17
|
+
735: <span class="ruby-keyword kw">end</span></pre>
|
18
|
+
</body>
|
19
|
+
</html>
|
@@ -280,7 +280,7 @@ href="../Mongrel.html">Mongrel</a> man).
|
|
280
280
|
<tr class="top-aligned-row context-row">
|
281
281
|
<td class="context-item-name">MONGREL_VERSION</td>
|
282
282
|
<td>=</td>
|
283
|
-
<td class="context-item-value">'Mongrel 0.3.
|
283
|
+
<td class="context-item-value">'Mongrel 0.3.5'</td>
|
284
284
|
<td width="3em"> </td>
|
285
285
|
<td class="context-item-desc">
|
286
286
|
Current <a href="../Mongrel.html">Mongrel</a> version (used for
|
@@ -22,7 +22,7 @@
|
|
22
22
|
488: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">index</span>
|
23
23
|
489: <span class="ruby-comment cmt"># serve the index</span>
|
24
24
|
490: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">index</span>
|
25
|
-
491: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@
|
25
|
+
491: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@listing_allowed</span>
|
26
26
|
492: <span class="ruby-comment cmt"># serve the directory</span>
|
27
27
|
493: <span class="ruby-identifier">req</span>
|
28
28
|
494: <span class="ruby-keyword kw">else</span>
|
@@ -96,8 +96,8 @@ custom message for special URIs.
|
|
96
96
|
<h3 class="section-bar">Methods</h3>
|
97
97
|
|
98
98
|
<div class="name-list">
|
99
|
-
<a href="#
|
100
|
-
<a href="#
|
99
|
+
<a href="#M000056">new</a>
|
100
|
+
<a href="#M000057">process</a>
|
101
101
|
</div>
|
102
102
|
</div>
|
103
103
|
|
@@ -119,12 +119,12 @@ custom message for special URIs.
|
|
119
119
|
<div id="methods">
|
120
120
|
<h3 class="section-bar">Public Class methods</h3>
|
121
121
|
|
122
|
-
<div id="method-
|
123
|
-
<a name="
|
122
|
+
<div id="method-M000056" class="method-detail">
|
123
|
+
<a name="M000056"></a>
|
124
124
|
|
125
125
|
<div class="method-heading">
|
126
|
-
<a href="Error404Handler.src/
|
127
|
-
onclick="popupCode('Error404Handler.src/
|
126
|
+
<a href="Error404Handler.src/M000056.html" target="Code" class="method-signature"
|
127
|
+
onclick="popupCode('Error404Handler.src/M000056.html');return false;">
|
128
128
|
<span class="method-name">new</span><span class="method-args">(msg)</span>
|
129
129
|
</a>
|
130
130
|
</div>
|
@@ -139,12 +139,12 @@ it’s pretty efficient.
|
|
139
139
|
|
140
140
|
<h3 class="section-bar">Public Instance methods</h3>
|
141
141
|
|
142
|
-
<div id="method-
|
143
|
-
<a name="
|
142
|
+
<div id="method-M000057" class="method-detail">
|
143
|
+
<a name="M000057"></a>
|
144
144
|
|
145
145
|
<div class="method-heading">
|
146
|
-
<a href="Error404Handler.src/
|
147
|
-
onclick="popupCode('Error404Handler.src/
|
146
|
+
<a href="Error404Handler.src/M000057.html" target="Code" class="method-signature"
|
147
|
+
onclick="popupCode('Error404Handler.src/M000057.html');return false;">
|
148
148
|
<span class="method-name">process</span><span class="method-args">(request, response)</span>
|
149
149
|
</a>
|
150
150
|
</div>
|
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
<html>
|
7
7
|
<head>
|
8
|
-
<title>
|
8
|
+
<title>new (Mongrel::Error404Handler)</title>
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
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
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 434</span>
|
14
|
+
434: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">msg</span>)
|
15
|
+
435: <span class="ruby-ivar">@response</span> = <span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">ERROR_404_RESPONSE</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">msg</span>
|
16
|
+
436: <span class="ruby-keyword kw">end</span></pre>
|
17
17
|
</body>
|
18
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>process (Mongrel::Error404Handler)</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 439</span>
|
14
|
+
439: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">response</span>)
|
15
|
+
440: <span class="ruby-identifier">response</span>.<span class="ruby-identifier">socket</span>.<span class="ruby-identifier">write</span>(<span class="ruby-ivar">@response</span>)
|
16
|
+
441: <span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -103,7 +103,7 @@ efficiently handling large file uploads.
|
|
103
103
|
<h3 class="section-bar">Methods</h3>
|
104
104
|
|
105
105
|
<div class="name-list">
|
106
|
-
<a href="#
|
106
|
+
<a href="#M000058">new</a>
|
107
107
|
</div>
|
108
108
|
</div>
|
109
109
|
|
@@ -143,12 +143,12 @@ efficiently handling large file uploads.
|
|
143
143
|
<div id="methods">
|
144
144
|
<h3 class="section-bar">Public Class methods</h3>
|
145
145
|
|
146
|
-
<div id="method-
|
147
|
-
<a name="
|
146
|
+
<div id="method-M000058" class="method-detail">
|
147
|
+
<a name="M000058"></a>
|
148
148
|
|
149
149
|
<div class="method-heading">
|
150
|
-
<a href="HttpRequest.src/
|
151
|
-
onclick="popupCode('HttpRequest.src/
|
150
|
+
<a href="HttpRequest.src/M000058.html" target="Code" class="method-signature"
|
151
|
+
onclick="popupCode('HttpRequest.src/M000058.html');return false;">
|
152
152
|
<span class="method-name">new</span><span class="method-args">(params, initial_body, socket)</span>
|
153
153
|
</a>
|
154
154
|
</div>
|
File without changes
|
data/doc/rdoc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Sat Feb 18 15:19:13 EST 2006
|
@@ -22,12 +22,12 @@
|
|
22
22
|
<div id="index-entries">
|
23
23
|
<a href="classes/Mongrel/HeaderOut.html#M000034">[]= (Mongrel::HeaderOut)</a><br />
|
24
24
|
<a href="classes/Mongrel/DirHandler.html#M000027">add_mime_type (Mongrel::DirHandler)</a><br />
|
25
|
-
<a href="classes/Mongrel/CGIWrapper.html#
|
25
|
+
<a href="classes/Mongrel/CGIWrapper.html#M000052">args (Mongrel::CGIWrapper)</a><br />
|
26
26
|
<a href="classes/Mongrel/DirHandler.html#M000023">can_serve (Mongrel::DirHandler)</a><br />
|
27
27
|
<a href="classes/PluginFactory.html#M000009">create (PluginFactory)</a><br />
|
28
28
|
<a href="classes/PluginFactory.html#M000008">derivativeClasses (PluginFactory)</a><br />
|
29
29
|
<a href="classes/PluginFactory.html#M000005">derivatives (PluginFactory)</a><br />
|
30
|
-
<a href="classes/Mongrel/CGIWrapper.html#
|
30
|
+
<a href="classes/Mongrel/CGIWrapper.html#M000053">env_table (Mongrel::CGIWrapper)</a><br />
|
31
31
|
<a href="classes/Mongrel/HttpParser.html#M000019">error? (Mongrel::HttpParser)</a><br />
|
32
32
|
<a href="classes/Mongrel/HttpParser.html#M000018">execute (Mongrel::HttpParser)</a><br />
|
33
33
|
<a href="classes/PluginFactory.html#M000004">extend_object (PluginFactory)</a><br />
|
@@ -45,36 +45,37 @@
|
|
45
45
|
<a href="classes/PluginFactory.html#M000014">makeRequirePath (PluginFactory)</a><br />
|
46
46
|
<a href="classes/Mongrel/DirHandler.html#M000022">new (Mongrel::DirHandler)</a><br />
|
47
47
|
<a href="classes/Mongrel/CGIWrapper.html#M000047">new (Mongrel::CGIWrapper)</a><br />
|
48
|
-
<a href="classes/Mongrel/Error404Handler.html#
|
48
|
+
<a href="classes/Mongrel/Error404Handler.html#M000056">new (Mongrel::Error404Handler)</a><br />
|
49
49
|
<a href="classes/Mongrel/HttpParser.html#M000015">new (Mongrel::HttpParser)</a><br />
|
50
50
|
<a href="classes/Mongrel/HttpServer.html#M000028">new (Mongrel::HttpServer)</a><br />
|
51
|
-
<a href="classes/Mongrel/HeaderOut.html#M000033">new (Mongrel::HeaderOut)</a><br />
|
52
51
|
<a href="classes/Mongrel/HttpResponse.html#M000040">new (Mongrel::HttpResponse)</a><br />
|
52
|
+
<a href="classes/Mongrel/HeaderOut.html#M000033">new (Mongrel::HeaderOut)</a><br />
|
53
53
|
<a href="classes/Mongrel/URIClassifier.html#M000035">new (Mongrel::URIClassifier)</a><br />
|
54
54
|
<a href="classes/FactoryError.html#M000001">new (FactoryError)</a><br />
|
55
|
-
<a href="classes/Mongrel/HttpRequest.html#
|
55
|
+
<a href="classes/Mongrel/HttpRequest.html#M000058">new (Mongrel::HttpRequest)</a><br />
|
56
56
|
<a href="classes/Mongrel/HttpParser.html#M000021">nread (Mongrel::HttpParser)</a><br />
|
57
|
-
<a href="classes/Mongrel/CGIWrapper.html#
|
58
|
-
<a href="classes/Mongrel/DirHandler.html#M000026">process (Mongrel::DirHandler)</a><br />
|
59
|
-
<a href="classes/Mongrel/Error404Handler.html#M000056">process (Mongrel::Error404Handler)</a><br />
|
57
|
+
<a href="classes/Mongrel/CGIWrapper.html#M000050">out (Mongrel::CGIWrapper)</a><br />
|
60
58
|
<a href="classes/Mongrel/HttpHandler.html#M000039">process (Mongrel::HttpHandler)</a><br />
|
59
|
+
<a href="classes/Mongrel/Error404Handler.html#M000057">process (Mongrel::Error404Handler)</a><br />
|
60
|
+
<a href="classes/Mongrel/DirHandler.html#M000026">process (Mongrel::DirHandler)</a><br />
|
61
61
|
<a href="classes/Mongrel/HttpServer.html#M000029">process_client (Mongrel::HttpServer)</a><br />
|
62
62
|
<a href="classes/Mongrel/URIClassifier.html#M000036">register (Mongrel::URIClassifier)</a><br />
|
63
63
|
<a href="classes/Mongrel/HttpServer.html#M000031">register (Mongrel::HttpServer)</a><br />
|
64
64
|
<a href="classes/PluginFactory.html#M000013">requireDerivative (PluginFactory)</a><br />
|
65
|
-
<a href="classes/Mongrel/HttpResponse.html#M000042">reset (Mongrel::HttpResponse)</a><br />
|
66
65
|
<a href="classes/Mongrel/HttpParser.html#M000016">reset (Mongrel::HttpParser)</a><br />
|
66
|
+
<a href="classes/Mongrel/HttpResponse.html#M000042">reset (Mongrel::HttpResponse)</a><br />
|
67
67
|
<a href="classes/Mongrel/URIClassifier.html#M000038">resolve (Mongrel::URIClassifier)</a><br />
|
68
68
|
<a href="classes/Mongrel/HttpServer.html#M000030">run (Mongrel::HttpServer)</a><br />
|
69
69
|
<a href="classes/Mongrel/HttpResponse.html#M000045">send_body (Mongrel::HttpResponse)</a><br />
|
70
|
+
<a href="classes/Mongrel/CGIWrapper.html#M000049">send_cookies (Mongrel::CGIWrapper)</a><br />
|
70
71
|
<a href="classes/Mongrel/DirHandler.html#M000024">send_dir_listing (Mongrel::DirHandler)</a><br />
|
71
72
|
<a href="classes/Mongrel/DirHandler.html#M000025">send_file (Mongrel::DirHandler)</a><br />
|
72
73
|
<a href="classes/Mongrel/HttpResponse.html#M000044">send_header (Mongrel::HttpResponse)</a><br />
|
73
74
|
<a href="classes/Mongrel/HttpResponse.html#M000043">send_status (Mongrel::HttpResponse)</a><br />
|
74
75
|
<a href="classes/Mongrel/HttpResponse.html#M000041">start (Mongrel::HttpResponse)</a><br />
|
75
|
-
<a href="classes/Mongrel/CGIWrapper.html#
|
76
|
-
<a href="classes/Mongrel/CGIWrapper.html#
|
77
|
-
<a href="classes/Mongrel/CGIWrapper.html#
|
76
|
+
<a href="classes/Mongrel/CGIWrapper.html#M000051">status (Mongrel::CGIWrapper)</a><br />
|
77
|
+
<a href="classes/Mongrel/CGIWrapper.html#M000054">stdinput (Mongrel::CGIWrapper)</a><br />
|
78
|
+
<a href="classes/Mongrel/CGIWrapper.html#M000055">stdoutput (Mongrel::CGIWrapper)</a><br />
|
78
79
|
<a href="classes/Mongrel/URIClassifier.html#M000037">unregister (Mongrel::URIClassifier)</a><br />
|
79
80
|
<a href="classes/Mongrel/HttpServer.html#M000032">unregister (Mongrel::HttpServer)</a><br />
|
80
81
|
</div>
|
data/lib/mongrel.rb
CHANGED
@@ -112,7 +112,7 @@ module Mongrel
|
|
112
112
|
SERVER_SOFTWARE='SERVER_SOFTWARE'
|
113
113
|
|
114
114
|
# Current Mongrel version (used for SERVER_SOFTWARE and other response headers).
|
115
|
-
MONGREL_VERSION='Mongrel 0.3.
|
115
|
+
MONGREL_VERSION='Mongrel 0.3.5'
|
116
116
|
|
117
117
|
# The standard empty 404 response for bad requests. Use Error4040Handler for custom stuff.
|
118
118
|
ERROR_404_RESPONSE="HTTP/1.1 404 Not Found\r\nConnection: close\r\nServer: #{MONGREL_VERSION}\r\n\r\nNOT FOUND"
|
@@ -488,7 +488,7 @@ module Mongrel
|
|
488
488
|
if File.exist? index
|
489
489
|
# serve the index
|
490
490
|
return index
|
491
|
-
elsif @
|
491
|
+
elsif @listing_allowed
|
492
492
|
# serve the directory
|
493
493
|
req
|
494
494
|
else
|
@@ -597,44 +597,103 @@ module Mongrel
|
|
597
597
|
# to get existing CGI based systems working. It should handle everything, but please
|
598
598
|
# notify me if you see special warnings. This work is still very alpha so I need
|
599
599
|
# testers to help work out the various corner cases.
|
600
|
-
|
601
600
|
class CGIWrapper < ::CGI
|
602
601
|
public :env_table
|
603
602
|
attr_reader :options
|
604
|
-
|
603
|
+
|
604
|
+
# these are stripped out of any keys passed to CGIWrapper.header function
|
605
|
+
REMOVED_KEYS = [ "nph","status","server","connection","type",
|
606
|
+
"charset","length","language","expires"]
|
607
|
+
|
605
608
|
def initialize(request, response, *args)
|
606
609
|
@request = request
|
607
610
|
@response = response
|
608
611
|
@args = *args
|
609
612
|
@input = StringIO.new(request.body)
|
610
|
-
@
|
613
|
+
@head = {}
|
614
|
+
@out_called = false
|
611
615
|
super(*args)
|
612
616
|
end
|
613
617
|
|
614
618
|
# The header is typically called to send back the header. In our case we
|
615
|
-
# collect it into a hash for later usage.
|
616
|
-
#
|
619
|
+
# collect it into a hash for later usage.
|
620
|
+
#
|
621
|
+
# nph -- Mostly ignored. It'll output the date.
|
622
|
+
# connection -- Completely ignored. Why is CGI doing this?
|
623
|
+
# length -- Ignored since Mongrel figures this out from what you write to output.
|
624
|
+
#
|
617
625
|
def header(options = "text/html")
|
618
|
-
|
619
|
-
|
620
|
-
|
626
|
+
|
627
|
+
# if they pass in a string then just write the Content-Type
|
628
|
+
if options.class == String
|
629
|
+
@head['Content-Type'] = options
|
621
630
|
else
|
622
|
-
|
631
|
+
# convert the given options into what Mongrel wants
|
632
|
+
@head['Content-Type'] = options['type'] || "text/html"
|
633
|
+
@head['Content-Type'] += "; charset=" + options['charset'] if options.has_key? "charset" if options['charset']
|
634
|
+
|
635
|
+
# setup date only if they use nph
|
636
|
+
@head['Date'] = CGI::rfc1123_date(Time.now) if options['nph']
|
637
|
+
|
638
|
+
# setup the server to use the default or what they set
|
639
|
+
@head['Server'] = options['server'] || env_table['SERVER_SOFTWARE']
|
640
|
+
|
641
|
+
# remaining possible options they can give
|
642
|
+
@head['Status'] = options['status'] if options['status']
|
643
|
+
@head['Content-Language'] = options['language'] if options['language']
|
644
|
+
@head['Expires'] = options['expires'] if options['expires']
|
645
|
+
|
646
|
+
# drop the keys we don't want anymore
|
647
|
+
REMOVED_KEYS.each {|k| options.delete(k) }
|
648
|
+
|
649
|
+
# finally just convert the rest raw (which puts 'cookie' directly)
|
650
|
+
# 'cookie' is translated later as we write the header out
|
651
|
+
options.each{|k,v| @head[k] = v}
|
623
652
|
end
|
624
|
-
|
653
|
+
|
625
654
|
# doing this fakes out the cgi library to think the headers are empty
|
626
655
|
# we then do the real headers in the out function call later
|
627
656
|
""
|
628
657
|
end
|
658
|
+
|
659
|
+
# Takes any 'cookie' setting and sends it over the Mongrel header,
|
660
|
+
# then removes the setting from the options. If cookie is an
|
661
|
+
# Array or Hash then it sends those on with .to_s, otherwise
|
662
|
+
# it just calls .to_s on it and hopefully your "cookie" can
|
663
|
+
# write itself correctly.
|
664
|
+
def send_cookies(to)
|
665
|
+
# convert the cookies based on the myriad of possible ways to set a cookie
|
666
|
+
if @head['cookie']
|
667
|
+
cookie = @head['cookie']
|
668
|
+
case cookie
|
669
|
+
when Array
|
670
|
+
cookie.each {|c| to['Set-Cookie'] = c.to_s }
|
671
|
+
when Hash
|
672
|
+
cookie.each_value {|c| to['Set-Cookie'] = c.to_s}
|
673
|
+
else
|
674
|
+
to['Set-Cookie'] = options['cookie'].to_s
|
675
|
+
end
|
676
|
+
|
677
|
+
@head.delete('cookie')
|
678
|
+
|
679
|
+
# @output_cookies seems to never be used, but we'll process it just in case
|
680
|
+
@output_cookies.each {|c| to['Set-Cookie'] = c.to_s } if @output_cookies
|
681
|
+
end
|
682
|
+
end
|
629
683
|
|
630
684
|
# The dumb thing is people can call header or this or both and in any order.
|
631
685
|
# So, we just reuse header and then finalize the HttpResponse the right way.
|
632
686
|
# Status is taken from the various options and converted to what Mongrel needs
|
633
687
|
# via the CGIWrapper.status function.
|
634
688
|
def out(options = "text/html")
|
689
|
+
return if @out_called # don't do this more than once
|
690
|
+
|
635
691
|
header(options)
|
692
|
+
|
636
693
|
@response.start status do |head, out|
|
637
|
-
|
694
|
+
send_cookies(head)
|
695
|
+
|
696
|
+
@head.each {|k,v| head[k] = v}
|
638
697
|
out.write(yield || "")
|
639
698
|
end
|
640
699
|
end
|
@@ -644,7 +703,7 @@ module Mongrel
|
|
644
703
|
# message in the status we have to do a bit of parsing.
|
645
704
|
def status
|
646
705
|
if not @status
|
647
|
-
@status = @
|
706
|
+
@status = @head["Status"] || @head["status"]
|
648
707
|
|
649
708
|
if @status
|
650
709
|
@status[0 ... @status.index(' ')] || "200"
|
@@ -652,7 +711,7 @@ module Mongrel
|
|
652
711
|
@status = "200"
|
653
712
|
end
|
654
713
|
end
|
655
|
-
end
|
714
|
+
end
|
656
715
|
|
657
716
|
# Used to wrap the normal args variable used inside CGI.
|
658
717
|
def args
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: mongrel
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.3.
|
7
|
-
date: 2006-02-
|
6
|
+
version: 0.3.5
|
7
|
+
date: 2006-02-18 00:00:00 -05:00
|
8
8
|
summary: A small fast HTTP library and server that runs Rails, Camping, and Nitro apps.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -79,14 +79,15 @@ files:
|
|
79
79
|
- doc/rdoc/classes/Mongrel/CGIWrapper.src/M000052.html
|
80
80
|
- doc/rdoc/classes/Mongrel/CGIWrapper.src/M000053.html
|
81
81
|
- doc/rdoc/classes/Mongrel/CGIWrapper.src/M000054.html
|
82
|
+
- doc/rdoc/classes/Mongrel/CGIWrapper.src/M000055.html
|
82
83
|
- doc/rdoc/classes/Mongrel/DirHandler.src/M000022.html
|
83
84
|
- doc/rdoc/classes/Mongrel/DirHandler.src/M000023.html
|
84
85
|
- doc/rdoc/classes/Mongrel/DirHandler.src/M000024.html
|
85
86
|
- doc/rdoc/classes/Mongrel/DirHandler.src/M000025.html
|
86
87
|
- doc/rdoc/classes/Mongrel/DirHandler.src/M000026.html
|
87
88
|
- doc/rdoc/classes/Mongrel/DirHandler.src/M000027.html
|
88
|
-
- doc/rdoc/classes/Mongrel/Error404Handler.src/M000055.html
|
89
89
|
- doc/rdoc/classes/Mongrel/Error404Handler.src/M000056.html
|
90
|
+
- doc/rdoc/classes/Mongrel/Error404Handler.src/M000057.html
|
90
91
|
- doc/rdoc/classes/Mongrel/HeaderOut.src/M000033.html
|
91
92
|
- doc/rdoc/classes/Mongrel/HeaderOut.src/M000034.html
|
92
93
|
- doc/rdoc/classes/Mongrel/HttpHandler.src/M000039.html
|
@@ -97,7 +98,7 @@ files:
|
|
97
98
|
- doc/rdoc/classes/Mongrel/HttpParser.src/M000019.html
|
98
99
|
- doc/rdoc/classes/Mongrel/HttpParser.src/M000020.html
|
99
100
|
- doc/rdoc/classes/Mongrel/HttpParser.src/M000021.html
|
100
|
-
- doc/rdoc/classes/Mongrel/HttpRequest.src/
|
101
|
+
- doc/rdoc/classes/Mongrel/HttpRequest.src/M000058.html
|
101
102
|
- doc/rdoc/classes/Mongrel/HttpResponse.src/M000040.html
|
102
103
|
- doc/rdoc/classes/Mongrel/HttpResponse.src/M000041.html
|
103
104
|
- doc/rdoc/classes/Mongrel/HttpResponse.src/M000042.html
|
@@ -1,18 +0,0 @@
|
|
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>new (Mongrel::Error404Handler)</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 434</span>
|
14
|
-
434: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">msg</span>)
|
15
|
-
435: <span class="ruby-ivar">@response</span> = <span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">ERROR_404_RESPONSE</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">msg</span>
|
16
|
-
436: <span class="ruby-keyword kw">end</span></pre>
|
17
|
-
</body>
|
18
|
-
</html>
|