mongrel 0.3.3 → 0.3.4
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.
- data/README +1 -1
- data/Rakefile +20 -2
- data/bin/mongrel_rails +7 -53
- data/doc/rdoc/classes/Mongrel.html +1 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.html +300 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000047.html +23 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000048.html +27 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000049.html +22 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000050.html +26 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000051.html +18 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000052.html +18 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000053.html +18 -0
- data/doc/rdoc/classes/Mongrel/CGIWrapper.src/M000054.html +19 -0
- data/doc/rdoc/classes/Mongrel/Const.html +1 -1
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000022.html +6 -6
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000023.html +28 -28
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000024.html +26 -26
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000025.html +17 -17
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000026.html +24 -24
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000027.html +4 -4
- data/doc/rdoc/classes/Mongrel/Error404Handler.html +10 -10
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000047.html → M000055.html} +4 -4
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000048.html → M000056.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000033.html +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/M000034.html +7 -7
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/M000039.html +3 -3
- data/doc/rdoc/classes/Mongrel/HttpRequest.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000049.html → M000057.html} +17 -17
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000040.html +7 -7
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000041.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000042.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000043.html +5 -4
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000044.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000045.html +6 -7
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000046.html +6 -6
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000028.html +24 -24
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000029.html +48 -48
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000030.html +9 -9
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000031.html +4 -4
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000032.html +4 -4
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/README.html +2 -2
- data/doc/rdoc/files/lib/mongrel_rb.html +2 -1
- data/doc/rdoc/fr_class_index.html +1 -0
- data/doc/rdoc/fr_method_index.html +17 -9
- data/lib/mongrel.rb +89 -3
- data/lib/mongrel/command.rb +1 -1
- data/tools/rakehelp.rb +17 -9
- metadata +17 -7
data/README
CHANGED
@@ -71,7 +71,7 @@ example:
|
|
71
71
|
|
72
72
|
h = Mongrel::HttpServer.new("0.0.0.0", "3000")
|
73
73
|
h.register("/test", SimpleHandler.new)
|
74
|
-
h.register("/files", DirHandler.new("."))
|
74
|
+
h.register("/files", Mongrel::DirHandler.new("."))
|
75
75
|
h.run.join
|
76
76
|
|
77
77
|
If you run this and access port 3000 with a browser it will say
|
data/Rakefile
CHANGED
@@ -8,7 +8,8 @@ require 'fileutils'
|
|
8
8
|
include FileUtils
|
9
9
|
|
10
10
|
setup_tests
|
11
|
-
setup_clean ["ext/http11/Makefile", "pkg", "lib/*.bundle", "
|
11
|
+
setup_clean ["ext/http11/*.{bundle,so,obj,pdb,lib,def,exp}", "ext/http11/Makefile", "pkg", "lib/*.bundle", "*.gem", "doc/site/output", ".config"]
|
12
|
+
|
12
13
|
setup_rdoc ['README', 'LICENSE', 'COPYING', 'lib/*.rb', 'doc/**/*.rdoc', 'ext/http11/http11.c']
|
13
14
|
|
14
15
|
desc "Does a full compile, test run"
|
@@ -29,8 +30,25 @@ end
|
|
29
30
|
|
30
31
|
setup_extension("http11", "http11")
|
31
32
|
|
33
|
+
version="0.3.4"
|
32
34
|
summary = "A small fast HTTP library and server that runs Rails, Camping, and Nitro apps."
|
33
35
|
test_file = "test/test_ws.rb"
|
34
|
-
|
36
|
+
author="Zed A. Shaw"
|
37
|
+
name="mongrel"
|
38
|
+
|
39
|
+
setup_gem(name, version, author, summary, ['mongrel_rails'], test_file) do |spec|
|
35
40
|
spec.add_dependency('daemons', '>= 0.4.2')
|
36
41
|
end
|
42
|
+
|
43
|
+
desc "Build a binary gem for Win32"
|
44
|
+
task :win32_gem => [:clean, :compile, :test, :package_win32]
|
45
|
+
|
46
|
+
task :package_win32 do
|
47
|
+
setup_win32_gem(name, version, version, summary, ['mongrel_rails'], test_file) do |spec|
|
48
|
+
spec.add_dependency('daemons', '>= 0.4.2')
|
49
|
+
spec.files << 'ext/http11/http11.so'
|
50
|
+
spec.extensions = []
|
51
|
+
spec.platform = Gem::Platform::WIN32
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
data/bin/mongrel_rails
CHANGED
@@ -1,55 +1,9 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'mongrel'
|
3
|
-
require 'cgi'
|
4
3
|
require 'daemons/daemonize'
|
5
4
|
require 'mongrel/command'
|
6
5
|
|
7
6
|
|
8
|
-
class CGIFixed < ::CGI
|
9
|
-
public :env_table
|
10
|
-
attr_reader :options
|
11
|
-
|
12
|
-
def initialize(params, data, out, *args)
|
13
|
-
@env_table = params
|
14
|
-
@args = *args
|
15
|
-
@input = StringIO.new(data)
|
16
|
-
@out = out
|
17
|
-
@options = {}
|
18
|
-
super(*args)
|
19
|
-
end
|
20
|
-
|
21
|
-
def header(options = "text/html")
|
22
|
-
if options.class == Hash
|
23
|
-
# passing in a header so need to keep the status around and other options
|
24
|
-
@options = options
|
25
|
-
end
|
26
|
-
|
27
|
-
super(options)
|
28
|
-
end
|
29
|
-
|
30
|
-
def status
|
31
|
-
s = @options["Status"] || @options["status"]
|
32
|
-
s[0 .. s.index(' ')] || "200"
|
33
|
-
end
|
34
|
-
|
35
|
-
def args
|
36
|
-
@args
|
37
|
-
end
|
38
|
-
|
39
|
-
def env_table
|
40
|
-
@env_table
|
41
|
-
end
|
42
|
-
|
43
|
-
def stdinput
|
44
|
-
@input
|
45
|
-
end
|
46
|
-
|
47
|
-
def stdoutput
|
48
|
-
@out
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
|
53
7
|
class RailsHandler < Mongrel::HttpHandler
|
54
8
|
|
55
9
|
def initialize(dir, mime_map = {})
|
@@ -63,26 +17,26 @@ class RailsHandler < Mongrel::HttpHandler
|
|
63
17
|
def process(request, response)
|
64
18
|
# not static, need to talk to rails
|
65
19
|
return if response.socket.closed?
|
66
|
-
|
20
|
+
|
67
21
|
if @files.can_serve(request.params["PATH_INFO"])
|
68
22
|
@files.process(request,response)
|
69
23
|
else
|
70
|
-
cgi =
|
24
|
+
cgi = Mongrel::CGIWrapper.new(request, response)
|
25
|
+
|
71
26
|
begin
|
72
|
-
|
73
27
|
@guard.synchronize do
|
74
28
|
# Rails is not thread safe so must be run entirely within synchronize
|
75
29
|
Dispatcher.dispatch(cgi, ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS, response.body)
|
76
30
|
end
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
response.send_body
|
31
|
+
|
32
|
+
# This finalizes the output using the proper HttpResponse way
|
33
|
+
cgi.out {""}
|
81
34
|
rescue Object => rails_error
|
82
35
|
STDERR.puts "calling Dispatcher.dispatch #{rails_error}"
|
83
36
|
STDERR.puts rails_error.backtrace.join("\n")
|
84
37
|
end
|
85
38
|
end
|
39
|
+
|
86
40
|
end
|
87
41
|
end
|
88
42
|
|
@@ -101,6 +101,7 @@ to service web application requests fast as possible.
|
|
101
101
|
<h3 class="section-bar">Classes and Modules</h3>
|
102
102
|
|
103
103
|
Module <a href="Mongrel/Const.html" class="link">Mongrel::Const</a><br />
|
104
|
+
Class <a href="Mongrel/CGIWrapper.html" class="link">Mongrel::CGIWrapper</a><br />
|
104
105
|
Class <a href="Mongrel/DirHandler.html" class="link">Mongrel::DirHandler</a><br />
|
105
106
|
Class <a href="Mongrel/Error404Handler.html" class="link">Mongrel::Error404Handler</a><br />
|
106
107
|
Class <a href="Mongrel/HeaderOut.html" class="link">Mongrel::HeaderOut</a><br />
|
@@ -0,0 +1,300 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>Class: Mongrel::CGIWrapper</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="classHeader">
|
50
|
+
<table class="header-table">
|
51
|
+
<tr class="top-aligned-row">
|
52
|
+
<td><strong>Class</strong></td>
|
53
|
+
<td class="class-name-in-header">Mongrel::CGIWrapper</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../../files/lib/mongrel_rb.html">
|
59
|
+
lib/mongrel.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
</td>
|
63
|
+
</tr>
|
64
|
+
|
65
|
+
<tr class="top-aligned-row">
|
66
|
+
<td><strong>Parent:</strong></td>
|
67
|
+
<td>
|
68
|
+
::CGI
|
69
|
+
</td>
|
70
|
+
</tr>
|
71
|
+
</table>
|
72
|
+
</div>
|
73
|
+
<!-- banner header -->
|
74
|
+
|
75
|
+
<div id="bodyContent">
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
<div id="contextContent">
|
80
|
+
|
81
|
+
<div id="description">
|
82
|
+
<p>
|
83
|
+
The beginning of a complete wrapper around <a
|
84
|
+
href="../Mongrel.html">Mongrel</a>’s internal HTTP processing system
|
85
|
+
but maintaining the original Ruby CGI module. Use this only as a crutch to
|
86
|
+
get existing CGI based systems working. It should handle everything, but
|
87
|
+
please notify me if you see special warnings. This work is still very alpha
|
88
|
+
so I need testers to help work out the various corner cases.
|
89
|
+
</p>
|
90
|
+
|
91
|
+
</div>
|
92
|
+
|
93
|
+
|
94
|
+
</div>
|
95
|
+
|
96
|
+
<div id="method-list">
|
97
|
+
<h3 class="section-bar">Methods</h3>
|
98
|
+
|
99
|
+
<div class="name-list">
|
100
|
+
<a href="#M000051">args</a>
|
101
|
+
<a href="#M000052">env_table</a>
|
102
|
+
<a href="#M000048">header</a>
|
103
|
+
<a href="#M000047">new</a>
|
104
|
+
<a href="#M000049">out</a>
|
105
|
+
<a href="#M000050">status</a>
|
106
|
+
<a href="#M000053">stdinput</a>
|
107
|
+
<a href="#M000054">stdoutput</a>
|
108
|
+
</div>
|
109
|
+
</div>
|
110
|
+
|
111
|
+
</div>
|
112
|
+
|
113
|
+
|
114
|
+
<!-- if includes -->
|
115
|
+
|
116
|
+
<div id="section">
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
<div id="attribute-list">
|
123
|
+
<h3 class="section-bar">Attributes</h3>
|
124
|
+
|
125
|
+
<div class="name-list">
|
126
|
+
<table>
|
127
|
+
<tr class="top-aligned-row context-row">
|
128
|
+
<td class="context-item-name">options</td>
|
129
|
+
<td class="context-item-value"> [R] </td>
|
130
|
+
<td class="context-item-desc"></td>
|
131
|
+
</tr>
|
132
|
+
</table>
|
133
|
+
</div>
|
134
|
+
</div>
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
<!-- if method_list -->
|
139
|
+
<div id="methods">
|
140
|
+
<h3 class="section-bar">Public Class methods</h3>
|
141
|
+
|
142
|
+
<div id="method-M000047" class="method-detail">
|
143
|
+
<a name="M000047"></a>
|
144
|
+
|
145
|
+
<div class="method-heading">
|
146
|
+
<a href="CGIWrapper.src/M000047.html" target="Code" class="method-signature"
|
147
|
+
onclick="popupCode('CGIWrapper.src/M000047.html');return false;">
|
148
|
+
<span class="method-name">new</span><span class="method-args">(request, response, *args)</span>
|
149
|
+
</a>
|
150
|
+
</div>
|
151
|
+
|
152
|
+
<div class="method-description">
|
153
|
+
</div>
|
154
|
+
</div>
|
155
|
+
|
156
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
157
|
+
|
158
|
+
<div id="method-M000051" class="method-detail">
|
159
|
+
<a name="M000051"></a>
|
160
|
+
|
161
|
+
<div class="method-heading">
|
162
|
+
<a href="CGIWrapper.src/M000051.html" target="Code" class="method-signature"
|
163
|
+
onclick="popupCode('CGIWrapper.src/M000051.html');return false;">
|
164
|
+
<span class="method-name">args</span><span class="method-args">()</span>
|
165
|
+
</a>
|
166
|
+
</div>
|
167
|
+
|
168
|
+
<div class="method-description">
|
169
|
+
<p>
|
170
|
+
Used to wrap the normal args variable used inside CGI.
|
171
|
+
</p>
|
172
|
+
</div>
|
173
|
+
</div>
|
174
|
+
|
175
|
+
<div id="method-M000052" class="method-detail">
|
176
|
+
<a name="M000052"></a>
|
177
|
+
|
178
|
+
<div class="method-heading">
|
179
|
+
<a href="CGIWrapper.src/M000052.html" target="Code" class="method-signature"
|
180
|
+
onclick="popupCode('CGIWrapper.src/M000052.html');return false;">
|
181
|
+
<span class="method-name">env_table</span><span class="method-args">()</span>
|
182
|
+
</a>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
<div class="method-description">
|
186
|
+
<p>
|
187
|
+
Used to wrap the normal <a href="CGIWrapper.html#M000052">env_table</a>
|
188
|
+
variable used inside CGI.
|
189
|
+
</p>
|
190
|
+
</div>
|
191
|
+
</div>
|
192
|
+
|
193
|
+
<div id="method-M000048" class="method-detail">
|
194
|
+
<a name="M000048"></a>
|
195
|
+
|
196
|
+
<div class="method-heading">
|
197
|
+
<a href="CGIWrapper.src/M000048.html" target="Code" class="method-signature"
|
198
|
+
onclick="popupCode('CGIWrapper.src/M000048.html');return false;">
|
199
|
+
<span class="method-name">header</span><span class="method-args">(options = "text/html")</span>
|
200
|
+
</a>
|
201
|
+
</div>
|
202
|
+
|
203
|
+
<div class="method-description">
|
204
|
+
<p>
|
205
|
+
The header is typically called to send back the header. In our case we
|
206
|
+
collect it into a hash for later usage. Options passed to this function are
|
207
|
+
capitalized properly (unlike CGI), sanitized and then just stored.
|
208
|
+
</p>
|
209
|
+
</div>
|
210
|
+
</div>
|
211
|
+
|
212
|
+
<div id="method-M000049" class="method-detail">
|
213
|
+
<a name="M000049"></a>
|
214
|
+
|
215
|
+
<div class="method-heading">
|
216
|
+
<a href="CGIWrapper.src/M000049.html" target="Code" class="method-signature"
|
217
|
+
onclick="popupCode('CGIWrapper.src/M000049.html');return false;">
|
218
|
+
<span class="method-name">out</span><span class="method-args">(options = "text/html") {||| "")| ...}</span>
|
219
|
+
</a>
|
220
|
+
</div>
|
221
|
+
|
222
|
+
<div class="method-description">
|
223
|
+
<p>
|
224
|
+
The dumb thing is people can call header or this or both and in any order.
|
225
|
+
So, we just reuse header and then finalize the <a
|
226
|
+
href="HttpResponse.html">HttpResponse</a> the right way. Status is taken
|
227
|
+
from the various options and converted to what <a
|
228
|
+
href="../Mongrel.html">Mongrel</a> needs via the <a
|
229
|
+
href="CGIWrapper.html#M000050">CGIWrapper.status</a> function.
|
230
|
+
</p>
|
231
|
+
</div>
|
232
|
+
</div>
|
233
|
+
|
234
|
+
<div id="method-M000050" class="method-detail">
|
235
|
+
<a name="M000050"></a>
|
236
|
+
|
237
|
+
<div class="method-heading">
|
238
|
+
<a href="CGIWrapper.src/M000050.html" target="Code" class="method-signature"
|
239
|
+
onclick="popupCode('CGIWrapper.src/M000050.html');return false;">
|
240
|
+
<span class="method-name">status</span><span class="method-args">()</span>
|
241
|
+
</a>
|
242
|
+
</div>
|
243
|
+
|
244
|
+
<div class="method-description">
|
245
|
+
<p>
|
246
|
+
Computes the status once, but lazily so that people who call header twice
|
247
|
+
don’t get penalized. Because CGI insists on including the options
|
248
|
+
status message in the status we have to do a bit of parsing.
|
249
|
+
</p>
|
250
|
+
</div>
|
251
|
+
</div>
|
252
|
+
|
253
|
+
<div id="method-M000053" class="method-detail">
|
254
|
+
<a name="M000053"></a>
|
255
|
+
|
256
|
+
<div class="method-heading">
|
257
|
+
<a href="CGIWrapper.src/M000053.html" target="Code" class="method-signature"
|
258
|
+
onclick="popupCode('CGIWrapper.src/M000053.html');return false;">
|
259
|
+
<span class="method-name">stdinput</span><span class="method-args">()</span>
|
260
|
+
</a>
|
261
|
+
</div>
|
262
|
+
|
263
|
+
<div class="method-description">
|
264
|
+
<p>
|
265
|
+
Used to wrap the normal stdinput variable used inside CGI.
|
266
|
+
</p>
|
267
|
+
</div>
|
268
|
+
</div>
|
269
|
+
|
270
|
+
<div id="method-M000054" class="method-detail">
|
271
|
+
<a name="M000054"></a>
|
272
|
+
|
273
|
+
<div class="method-heading">
|
274
|
+
<a href="CGIWrapper.src/M000054.html" target="Code" class="method-signature"
|
275
|
+
onclick="popupCode('CGIWrapper.src/M000054.html');return false;">
|
276
|
+
<span class="method-name">stdoutput</span><span class="method-args">()</span>
|
277
|
+
</a>
|
278
|
+
</div>
|
279
|
+
|
280
|
+
<div class="method-description">
|
281
|
+
<p>
|
282
|
+
The stdoutput should be completely bypassed but we’ll drop a warning
|
283
|
+
just in case
|
284
|
+
</p>
|
285
|
+
</div>
|
286
|
+
</div>
|
287
|
+
|
288
|
+
|
289
|
+
</div>
|
290
|
+
|
291
|
+
|
292
|
+
</div>
|
293
|
+
|
294
|
+
|
295
|
+
<div id="validator-badges">
|
296
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
297
|
+
</div>
|
298
|
+
|
299
|
+
</body>
|
300
|
+
</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>new (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 605</span>
|
14
|
+
605: <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
|
+
606: <span class="ruby-ivar">@request</span> = <span class="ruby-identifier">request</span>
|
16
|
+
607: <span class="ruby-ivar">@response</span> = <span class="ruby-identifier">response</span>
|
17
|
+
608: <span class="ruby-ivar">@args</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
|
18
|
+
609: <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
|
+
610: <span class="ruby-ivar">@options</span> = {}
|
20
|
+
611: <span class="ruby-keyword kw">super</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
21
|
+
612: <span class="ruby-keyword kw">end</span></pre>
|
22
|
+
</body>
|
23
|
+
</html>
|