thin 0.5.3-x86-mswin32-60
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of thin might be problematic. Click here for more details.
- data/CHANGELOG +40 -0
- data/COPYING +18 -0
- data/README +60 -0
- data/Rakefile +11 -0
- data/benchmark/simple.rb +48 -0
- data/bin/thin +123 -0
- data/doc/benchmarks.txt +86 -0
- data/doc/rdoc/classes/Process.html +181 -0
- data/doc/rdoc/classes/Rack.html +156 -0
- data/doc/rdoc/classes/Rack/Adapter.html +155 -0
- data/doc/rdoc/classes/Rack/Adapter/Rails.html +289 -0
- data/doc/rdoc/classes/Rack/Adapter/Rails/CGIWrapper.html +359 -0
- data/doc/rdoc/classes/Rack/Handler.html +155 -0
- data/doc/rdoc/classes/Rack/Handler/Thin.html +175 -0
- data/doc/rdoc/classes/Thin.html +164 -0
- data/doc/rdoc/classes/Thin/Cluster.html +399 -0
- data/doc/rdoc/classes/Thin/Connection.html +223 -0
- data/doc/rdoc/classes/Thin/Daemonizable.html +260 -0
- data/doc/rdoc/classes/Thin/Daemonizable/ClassMethods.html +197 -0
- data/doc/rdoc/classes/Thin/Headers.html +238 -0
- data/doc/rdoc/classes/Thin/InvalidRequest.html +144 -0
- data/doc/rdoc/classes/Thin/Logging.html +201 -0
- data/doc/rdoc/classes/Thin/Request.html +231 -0
- data/doc/rdoc/classes/Thin/Response.html +271 -0
- data/doc/rdoc/classes/Thin/Server.html +295 -0
- data/doc/rdoc/classes/Thin/StopServer.html +143 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/README.html +226 -0
- data/doc/rdoc/files/bin/thin.html +245 -0
- data/doc/rdoc/files/lib/rack/adapter/rails_rb.html +146 -0
- data/doc/rdoc/files/lib/rack/handler/thin_rb.html +146 -0
- data/doc/rdoc/files/lib/thin/cluster_rb.html +146 -0
- data/doc/rdoc/files/lib/thin/connection_rb.html +145 -0
- data/doc/rdoc/files/lib/thin/daemonizing_rb.html +146 -0
- data/doc/rdoc/files/lib/thin/headers_rb.html +146 -0
- data/doc/rdoc/files/lib/thin/logging_rb.html +146 -0
- data/doc/rdoc/files/lib/thin/request_rb.html +145 -0
- data/doc/rdoc/files/lib/thin/response_rb.html +145 -0
- data/doc/rdoc/files/lib/thin/server_rb.html +145 -0
- data/doc/rdoc/files/lib/thin/statuses_rb.html +145 -0
- data/doc/rdoc/files/lib/thin/version_rb.html +145 -0
- data/doc/rdoc/files/lib/thin_rb.html +152 -0
- data/doc/rdoc/index.html +10 -0
- data/doc/rdoc/logo.gif +0 -0
- data/doc/rdoc/rdoc-style.css +55 -0
- data/example/config.ru +9 -0
- data/example/thin.god +72 -0
- data/ext/thin_parser/common.rl +54 -0
- data/ext/thin_parser/ext_help.h +14 -0
- data/ext/thin_parser/extconf.rb +6 -0
- data/ext/thin_parser/parser.c +1199 -0
- data/ext/thin_parser/parser.h +49 -0
- data/ext/thin_parser/parser.rl +143 -0
- data/ext/thin_parser/thin.c +424 -0
- data/lib/rack/adapter/rails.rb +155 -0
- data/lib/rack/handler/thin.rb +13 -0
- data/lib/thin.rb +36 -0
- data/lib/thin/cluster.rb +106 -0
- data/lib/thin/connection.rb +46 -0
- data/lib/thin/daemonizing.rb +112 -0
- data/lib/thin/headers.rb +37 -0
- data/lib/thin/logging.rb +23 -0
- data/lib/thin/request.rb +72 -0
- data/lib/thin/response.rb +48 -0
- data/lib/thin/server.rb +80 -0
- data/lib/thin/statuses.rb +43 -0
- data/lib/thin/version.rb +11 -0
- data/lib/thin_parser.so +0 -0
- data/spec/cluster_spec.rb +58 -0
- data/spec/daemonizing_spec.rb +93 -0
- data/spec/headers_spec.rb +35 -0
- data/spec/rack_rails_spec.rb +92 -0
- data/spec/rails_app/app/controllers/application.rb +10 -0
- data/spec/rails_app/app/controllers/simple_controller.rb +19 -0
- data/spec/rails_app/app/helpers/application_helper.rb +3 -0
- data/spec/rails_app/app/views/simple/index.html.erb +15 -0
- data/spec/rails_app/config/boot.rb +109 -0
- data/spec/rails_app/config/environment.rb +64 -0
- data/spec/rails_app/config/environments/development.rb +18 -0
- data/spec/rails_app/config/environments/production.rb +19 -0
- data/spec/rails_app/config/environments/test.rb +22 -0
- data/spec/rails_app/config/initializers/inflections.rb +10 -0
- data/spec/rails_app/config/initializers/mime_types.rb +5 -0
- data/spec/rails_app/config/routes.rb +35 -0
- data/spec/rails_app/public/404.html +30 -0
- data/spec/rails_app/public/422.html +30 -0
- data/spec/rails_app/public/500.html +30 -0
- data/spec/rails_app/public/dispatch.cgi +10 -0
- data/spec/rails_app/public/dispatch.fcgi +24 -0
- data/spec/rails_app/public/dispatch.rb +10 -0
- data/spec/rails_app/public/favicon.ico +0 -0
- data/spec/rails_app/public/images/rails.png +0 -0
- data/spec/rails_app/public/index.html +277 -0
- data/spec/rails_app/public/javascripts/application.js +2 -0
- data/spec/rails_app/public/javascripts/controls.js +963 -0
- data/spec/rails_app/public/javascripts/dragdrop.js +972 -0
- data/spec/rails_app/public/javascripts/effects.js +1120 -0
- data/spec/rails_app/public/javascripts/prototype.js +4225 -0
- data/spec/rails_app/public/robots.txt +5 -0
- data/spec/rails_app/script/about +3 -0
- data/spec/rails_app/script/console +3 -0
- data/spec/rails_app/script/destroy +3 -0
- data/spec/rails_app/script/generate +3 -0
- data/spec/rails_app/script/performance/benchmarker +3 -0
- data/spec/rails_app/script/performance/profiler +3 -0
- data/spec/rails_app/script/performance/request +3 -0
- data/spec/rails_app/script/plugin +3 -0
- data/spec/rails_app/script/process/inspector +3 -0
- data/spec/rails_app/script/process/reaper +3 -0
- data/spec/rails_app/script/process/spawner +3 -0
- data/spec/rails_app/script/runner +3 -0
- data/spec/rails_app/script/server +3 -0
- data/spec/request_spec.rb +258 -0
- data/spec/response_spec.rb +56 -0
- data/spec/server_spec.rb +75 -0
- data/spec/spec_helper.rb +127 -0
- metadata +219 -0
@@ -0,0 +1,359 @@
|
|
1
|
+
|
2
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<title>
|
6
|
+
thin » Class: Rack::Adapter::Rails::CGIWrapper
|
7
|
+
</title>
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
9
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
10
|
+
<script language="JavaScript" type="text/javascript">
|
11
|
+
// <![CDATA[
|
12
|
+
|
13
|
+
function toggleSource( id )
|
14
|
+
{
|
15
|
+
var elem
|
16
|
+
var link
|
17
|
+
|
18
|
+
if( document.getElementById )
|
19
|
+
{
|
20
|
+
elem = document.getElementById( id )
|
21
|
+
link = document.getElementById( "l_" + id )
|
22
|
+
}
|
23
|
+
else if ( document.all )
|
24
|
+
{
|
25
|
+
elem = eval( "document.all." + id )
|
26
|
+
link = eval( "document.all.l_" + id )
|
27
|
+
}
|
28
|
+
else
|
29
|
+
return false;
|
30
|
+
|
31
|
+
if( elem.style.display == "block" )
|
32
|
+
{
|
33
|
+
elem.style.display = "none"
|
34
|
+
link.innerHTML = "show source"
|
35
|
+
}
|
36
|
+
else
|
37
|
+
{
|
38
|
+
elem.style.display = "block"
|
39
|
+
link.innerHTML = "hide source"
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
function openCode( url )
|
44
|
+
{
|
45
|
+
window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
|
46
|
+
}
|
47
|
+
// ]]>
|
48
|
+
</script>
|
49
|
+
</head>
|
50
|
+
<body>
|
51
|
+
<ul id="menu">
|
52
|
+
<li><a href="/thin/">about</a></li>
|
53
|
+
<li><a href="/thin/download/">download</a></li>
|
54
|
+
<li><a href="/thin/usage/">usage</a></li>
|
55
|
+
<li><a href="/thin/doc/">doc</a></li>
|
56
|
+
<li><a href="http://groups.google.com/group/thin-ruby/">community</a></li>
|
57
|
+
</ul>
|
58
|
+
<div id="sidebar">
|
59
|
+
<h2>Files</h2>
|
60
|
+
<ul class="list">
|
61
|
+
<li><a href="../../../../files/README.html" value="File: README">README</a></li>
|
62
|
+
<li><a href="../../../../files/lib/rack/adapter/rails_rb.html" value="File: rails.rb">lib/rack/adapter/rails.rb</a></li>
|
63
|
+
<li><a href="../../../../files/lib/rack/handler/thin_rb.html" value="File: thin.rb">lib/rack/handler/thin.rb</a></li>
|
64
|
+
<li><a href="../../../../files/lib/thin/cluster_rb.html" value="File: cluster.rb">lib/thin/cluster.rb</a></li>
|
65
|
+
<li><a href="../../../../files/lib/thin/connection_rb.html" value="File: connection.rb">lib/thin/connection.rb</a></li>
|
66
|
+
<li><a href="../../../../files/lib/thin/daemonizing_rb.html" value="File: daemonizing.rb">lib/thin/daemonizing.rb</a></li>
|
67
|
+
<li><a href="../../../../files/lib/thin/headers_rb.html" value="File: headers.rb">lib/thin/headers.rb</a></li>
|
68
|
+
<li><a href="../../../../files/lib/thin/logging_rb.html" value="File: logging.rb">lib/thin/logging.rb</a></li>
|
69
|
+
<li><a href="../../../../files/lib/thin/request_rb.html" value="File: request.rb">lib/thin/request.rb</a></li>
|
70
|
+
<li><a href="../../../../files/lib/thin/response_rb.html" value="File: response.rb">lib/thin/response.rb</a></li>
|
71
|
+
<li><a href="../../../../files/lib/thin/server_rb.html" value="File: server.rb">lib/thin/server.rb</a></li>
|
72
|
+
<li><a href="../../../../files/lib/thin/statuses_rb.html" value="File: statuses.rb">lib/thin/statuses.rb</a></li>
|
73
|
+
<li><a href="../../../../files/lib/thin/version_rb.html" value="File: version.rb">lib/thin/version.rb</a></li>
|
74
|
+
<li><a href="../../../../files/lib/thin_rb.html" value="File: thin.rb">lib/thin.rb</a></li>
|
75
|
+
<li><a href="../../../../files/bin/thin.html" value="File: thin">bin/thin</a></li>
|
76
|
+
</ul>
|
77
|
+
|
78
|
+
<h2>Classes</h2>
|
79
|
+
<ul class="list">
|
80
|
+
<li><a href="../../../../classes/Rack.html" title="Module: Rack">Rack</a></li>
|
81
|
+
<li><a href="../../../../classes/Rack/Adapter.html" title="Module: Rack::Adapter">Rack::Adapter</a></li>
|
82
|
+
<li><a href="../../../../classes/Rack/Adapter/Rails.html" title="Class: Rack::Adapter::Rails">Rack::Adapter::Rails</a></li>
|
83
|
+
<li><a href="../../../../classes/Rack/Adapter/Rails/CGIWrapper.html" title="Class: Rack::Adapter::Rails::CGIWrapper">Rack::Adapter::Rails::CGIWrapper</a></li>
|
84
|
+
<li><a href="../../../../classes/Rack/Handler.html" title="Module: Rack::Handler">Rack::Handler</a></li>
|
85
|
+
<li><a href="../../../../classes/Rack/Handler/Thin.html" title="Class: Rack::Handler::Thin">Rack::Handler::Thin</a></li>
|
86
|
+
<li><a href="../../../../classes/Thin.html" title="Module: Thin">Thin</a></li>
|
87
|
+
<li><a href="../../../../classes/Thin/Daemonizable.html" title="Module: Thin::Daemonizable">Thin::Daemonizable</a></li>
|
88
|
+
<li><a href="../../../../classes/Thin/Daemonizable/ClassMethods.html" title="Module: Thin::Daemonizable::ClassMethods">Thin::Daemonizable::ClassMethods</a></li>
|
89
|
+
<li><a href="../../../../classes/Thin/VERSION.html" title="Module: Thin::VERSION">Thin::VERSION</a></li>
|
90
|
+
<li><a href="../../../../classes/Thin/Logging.html" title="Module: Thin::Logging">Thin::Logging</a></li>
|
91
|
+
<li><a href="../../../../classes/Thin/InvalidRequest.html" title="Class: Thin::InvalidRequest">Thin::InvalidRequest</a></li>
|
92
|
+
<li><a href="../../../../classes/Thin/StopServer.html" title="Class: Thin::StopServer">Thin::StopServer</a></li>
|
93
|
+
<li><a href="../../../../classes/Thin/Response.html" title="Class: Thin::Response">Thin::Response</a></li>
|
94
|
+
<li><a href="../../../../classes/Thin/Headers.html" title="Class: Thin::Headers">Thin::Headers</a></li>
|
95
|
+
<li><a href="../../../../classes/Thin/Server.html" title="Class: Thin::Server">Thin::Server</a></li>
|
96
|
+
<li><a href="../../../../classes/Thin/Request.html" title="Class: Thin::Request">Thin::Request</a></li>
|
97
|
+
<li><a href="../../../../classes/Thin/Connection.html" title="Class: Thin::Connection">Thin::Connection</a></li>
|
98
|
+
<li><a href="../../../../classes/Thin/Cluster.html" title="Class: Thin::Cluster">Thin::Cluster</a></li>
|
99
|
+
<li><a href="../../../../classes/Process.html" title="Module: Process">Process</a></li>
|
100
|
+
</ul>
|
101
|
+
</div>
|
102
|
+
<div id="container">
|
103
|
+
<div id="header">
|
104
|
+
<a href="/thin/" title="Home">
|
105
|
+
<img id="logo" src="../../../../logo.gif" />
|
106
|
+
</a>
|
107
|
+
<h2 id="tag_line">A fast and very simple Ruby web server</h2>
|
108
|
+
</div>
|
109
|
+
|
110
|
+
<div id="content">
|
111
|
+
<h2>Class: Rack::Adapter::Rails::CGIWrapper</h2>
|
112
|
+
|
113
|
+
|
114
|
+
<div id="Rack::Adapter::Rails::CGIWrapper" class="page_shade">
|
115
|
+
<div class="page">
|
116
|
+
<h3>Class Rack::Adapter::Rails::CGIWrapper < ::CGI</h3>
|
117
|
+
|
118
|
+
<span class="path">(in files
|
119
|
+
<a href="../../../../files/lib/rack/adapter/rails_rb.html">lib/rack/adapter/rails.rb</a>
|
120
|
+
)</span>
|
121
|
+
|
122
|
+
<p>
|
123
|
+
<a href="Rack/Adapter.html">Adapter</a> to run a Rails app with any
|
124
|
+
supported <a href="Rack.html">Rack</a> handler. By default it will try to
|
125
|
+
load the Rails application in the current directory in the development
|
126
|
+
environment. Options:
|
127
|
+
</p>
|
128
|
+
<pre>
|
129
|
+
root: Root directory of the Rails app
|
130
|
+
env: Rails environment to run in (development, production or test)
|
131
|
+
</pre>
|
132
|
+
<p>
|
133
|
+
Based on <a href="http://fuzed.rubyforge.org">fuzed.rubyforge.org</a>/
|
134
|
+
Rails adapter
|
135
|
+
</p>
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
<h2 class="ruled">Methods</h2>
|
142
|
+
<h4 class="ruled">
|
143
|
+
<span class="method-type" title="Public Class method">Public Class</span>
|
144
|
+
<strong><a name="M000011" href="#M000011" title="Permalink to Public Class method: new">new(request, response, *args)</a></strong>
|
145
|
+
</h4>
|
146
|
+
|
147
|
+
|
148
|
+
<div class="sourcecode">
|
149
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000011_source')" id="l_M000011_source">show source</a> ]</p>
|
150
|
+
<div id="M000011_source" class="dyn-source">
|
151
|
+
<pre>
|
152
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 74</span>
|
153
|
+
74: <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>)
|
154
|
+
75: <span class="ruby-ivar">@request</span> = <span class="ruby-identifier">request</span>
|
155
|
+
76: <span class="ruby-ivar">@response</span> = <span class="ruby-identifier">response</span>
|
156
|
+
77: <span class="ruby-ivar">@args</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
|
157
|
+
78: <span class="ruby-ivar">@input</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">body</span>
|
158
|
+
79:
|
159
|
+
80: <span class="ruby-keyword kw">super</span> <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
|
160
|
+
81: <span class="ruby-keyword kw">end</span>
|
161
|
+
</pre>
|
162
|
+
</div>
|
163
|
+
</div>
|
164
|
+
<h4 class="ruled">
|
165
|
+
<span class="method-type" title="Public Instance method">Public Instance</span>
|
166
|
+
<strong><a name="M000016" href="#M000016" title="Permalink to Public Instance method: args">args()</a></strong>
|
167
|
+
</h4>
|
168
|
+
|
169
|
+
<p>
|
170
|
+
Used to wrap the normal <a href="CGIWrapper.html#M000016">args</a> variable
|
171
|
+
used inside CGI.
|
172
|
+
</p>
|
173
|
+
|
174
|
+
<div class="sourcecode">
|
175
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000016_source')" id="l_M000016_source">show source</a> ]</p>
|
176
|
+
<div id="M000016_source" class="dyn-source">
|
177
|
+
<pre>
|
178
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 134</span>
|
179
|
+
134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">args</span>
|
180
|
+
135: <span class="ruby-ivar">@args</span>
|
181
|
+
136: <span class="ruby-keyword kw">end</span>
|
182
|
+
</pre>
|
183
|
+
</div>
|
184
|
+
</div>
|
185
|
+
<h4 class="ruled">
|
186
|
+
<span class="method-type" title="Public Instance method">Public Instance</span>
|
187
|
+
<strong><a name="M000014" href="#M000014" title="Permalink to Public Instance method: cookies">cookies()</a></strong>
|
188
|
+
</h4>
|
189
|
+
|
190
|
+
|
191
|
+
<div class="sourcecode">
|
192
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000014_source')" id="l_M000014_source">show source</a> ]</p>
|
193
|
+
<div id="M000014_source" class="dyn-source">
|
194
|
+
<pre>
|
195
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 125</span>
|
196
|
+
125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cookies</span>
|
197
|
+
126: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">cookies</span>
|
198
|
+
127: <span class="ruby-keyword kw">end</span>
|
199
|
+
</pre>
|
200
|
+
</div>
|
201
|
+
</div>
|
202
|
+
<h4 class="ruled">
|
203
|
+
<span class="method-type" title="Public Instance method">Public Instance</span>
|
204
|
+
<strong><a name="M000017" href="#M000017" title="Permalink to Public Instance method: env_table">env_table()</a></strong>
|
205
|
+
</h4>
|
206
|
+
|
207
|
+
<p>
|
208
|
+
Used to wrap the normal <a href="CGIWrapper.html#M000017">env_table</a>
|
209
|
+
variable used inside CGI.
|
210
|
+
</p>
|
211
|
+
|
212
|
+
<div class="sourcecode">
|
213
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000017_source')" id="l_M000017_source">show source</a> ]</p>
|
214
|
+
<div id="M000017_source" class="dyn-source">
|
215
|
+
<pre>
|
216
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 139</span>
|
217
|
+
139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env_table</span>
|
218
|
+
140: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">env</span>
|
219
|
+
141: <span class="ruby-keyword kw">end</span>
|
220
|
+
</pre>
|
221
|
+
</div>
|
222
|
+
</div>
|
223
|
+
<h4 class="ruled">
|
224
|
+
<span class="method-type" title="Public Instance method">Public Instance</span>
|
225
|
+
<strong><a name="M000012" href="#M000012" title="Permalink to Public Instance method: header">header(options = "text/html")</a></strong>
|
226
|
+
</h4>
|
227
|
+
|
228
|
+
|
229
|
+
<div class="sourcecode">
|
230
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000012_source')" id="l_M000012_source">show source</a> ]</p>
|
231
|
+
<div id="M000012_source" class="dyn-source">
|
232
|
+
<pre>
|
233
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 83</span>
|
234
|
+
83: <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>)
|
235
|
+
84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
|
236
|
+
85: <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">options</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Content-Type'</span>]
|
237
|
+
86: <span class="ruby-keyword kw">else</span>
|
238
|
+
87: <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Content-Length'</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'Content-Length'</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-value str">'Content-Length'</span>]
|
239
|
+
88:
|
240
|
+
89: <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'type'</span>) <span class="ruby-operator">||</span> <span class="ruby-value str">"text/html"</span>
|
241
|
+
90: <span class="ruby-ivar">@response</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-identifier">delete</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>]
|
242
|
+
91:
|
243
|
+
92: <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Content-Language'</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</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>]
|
244
|
+
93: <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Expires'</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</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>]
|
245
|
+
94:
|
246
|
+
95: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</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>]
|
247
|
+
96:
|
248
|
+
97: <span class="ruby-comment cmt"># Convert 'cookie' header to 'Set-Cookie' headers.</span>
|
249
|
+
98: <span class="ruby-comment cmt"># Because Set-Cookie header can appear more the once in the response body, </span>
|
250
|
+
99: <span class="ruby-comment cmt"># we store it in a line break seperated string that will be translated to</span>
|
251
|
+
100: <span class="ruby-comment cmt"># multiple Set-Cookie header by the handler.</span>
|
252
|
+
101: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cookie</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'cookie'</span>)
|
253
|
+
102: <span class="ruby-identifier">cookies</span> = []
|
254
|
+
103:
|
255
|
+
104: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">cookie</span>
|
256
|
+
105: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span> <span class="ruby-keyword kw">then</span> <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">cookies</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span> }
|
257
|
+
106: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">cookie</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">_</span>, <span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">cookies</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">to_s</span> }
|
258
|
+
107: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">cookies</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">cookie</span>.<span class="ruby-identifier">to_s</span>
|
259
|
+
108: <span class="ruby-keyword kw">end</span>
|
260
|
+
109:
|
261
|
+
110: <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">cookies</span> <span class="ruby-operator"><<</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>
|
262
|
+
111:
|
263
|
+
112: <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Set-Cookie'</span>] = [<span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Set-Cookie'</span>], <span class="ruby-identifier">cookies</span>].<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">"\n"</span>)
|
264
|
+
113: <span class="ruby-keyword kw">end</span>
|
265
|
+
114:
|
266
|
+
115: <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">@response</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span> }
|
267
|
+
116: <span class="ruby-keyword kw">end</span>
|
268
|
+
117:
|
269
|
+
118: <span class="ruby-value str">""</span>
|
270
|
+
119: <span class="ruby-keyword kw">end</span>
|
271
|
+
</pre>
|
272
|
+
</div>
|
273
|
+
</div>
|
274
|
+
<h4 class="ruled">
|
275
|
+
<span class="method-type" title="Public Instance method">Public Instance</span>
|
276
|
+
<strong><a name="M000013" href="#M000013" title="Permalink to Public Instance method: params">params()</a></strong>
|
277
|
+
</h4>
|
278
|
+
|
279
|
+
|
280
|
+
<div class="sourcecode">
|
281
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000013_source')" id="l_M000013_source">show source</a> ]</p>
|
282
|
+
<div id="M000013_source" class="dyn-source">
|
283
|
+
<pre>
|
284
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 121</span>
|
285
|
+
121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
|
286
|
+
122: <span class="ruby-ivar">@params</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
|
287
|
+
123: <span class="ruby-keyword kw">end</span>
|
288
|
+
</pre>
|
289
|
+
</div>
|
290
|
+
</div>
|
291
|
+
<h4 class="ruled">
|
292
|
+
<span class="method-type" title="Public Instance method">Public Instance</span>
|
293
|
+
<strong><a name="M000015" href="#M000015" title="Permalink to Public Instance method: query_string">query_string()</a></strong>
|
294
|
+
</h4>
|
295
|
+
|
296
|
+
|
297
|
+
<div class="sourcecode">
|
298
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000015_source')" id="l_M000015_source">show source</a> ]</p>
|
299
|
+
<div id="M000015_source" class="dyn-source">
|
300
|
+
<pre>
|
301
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 129</span>
|
302
|
+
129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_string</span>
|
303
|
+
130: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">query_string</span>
|
304
|
+
131: <span class="ruby-keyword kw">end</span>
|
305
|
+
</pre>
|
306
|
+
</div>
|
307
|
+
</div>
|
308
|
+
<h4 class="ruled">
|
309
|
+
<span class="method-type" title="Public Instance method">Public Instance</span>
|
310
|
+
<strong><a name="M000018" href="#M000018" title="Permalink to Public Instance method: stdinput">stdinput()</a></strong>
|
311
|
+
</h4>
|
312
|
+
|
313
|
+
<p>
|
314
|
+
Used to wrap the normal <a href="CGIWrapper.html#M000018">stdinput</a>
|
315
|
+
variable used inside CGI.
|
316
|
+
</p>
|
317
|
+
|
318
|
+
<div class="sourcecode">
|
319
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000018_source')" id="l_M000018_source">show source</a> ]</p>
|
320
|
+
<div id="M000018_source" class="dyn-source">
|
321
|
+
<pre>
|
322
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 144</span>
|
323
|
+
144: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdinput</span>
|
324
|
+
145: <span class="ruby-ivar">@input</span>
|
325
|
+
146: <span class="ruby-keyword kw">end</span>
|
326
|
+
</pre>
|
327
|
+
</div>
|
328
|
+
</div>
|
329
|
+
<h4 class="ruled">
|
330
|
+
<span class="method-type" title="Public Instance method">Public Instance</span>
|
331
|
+
<strong><a name="M000019" href="#M000019" title="Permalink to Public Instance method: stdoutput">stdoutput()</a></strong>
|
332
|
+
</h4>
|
333
|
+
|
334
|
+
|
335
|
+
<div class="sourcecode">
|
336
|
+
<p class="source-link">[ <a href="javascript:toggleSource('M000019_source')" id="l_M000019_source">show source</a> ]</p>
|
337
|
+
<div id="M000019_source" class="dyn-source">
|
338
|
+
<pre>
|
339
|
+
<span class="ruby-comment cmt"># File lib/rack/adapter/rails.rb, line 148</span>
|
340
|
+
148: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stdoutput</span>
|
341
|
+
149: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"stdoutput should not be used."</span>
|
342
|
+
150: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">body</span>
|
343
|
+
151: <span class="ruby-keyword kw">end</span>
|
344
|
+
</pre>
|
345
|
+
</div>
|
346
|
+
</div>
|
347
|
+
|
348
|
+
</div>
|
349
|
+
</div>
|
350
|
+
|
351
|
+
|
352
|
+
</div>
|
353
|
+
</div>
|
354
|
+
<div id="footer">
|
355
|
+
<hr />
|
356
|
+
© <a href="http://macournoyer.com">Marc-André Cournoyer</a>
|
357
|
+
</div>
|
358
|
+
</body>
|
359
|
+
</html>
|
@@ -0,0 +1,155 @@
|
|
1
|
+
|
2
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<title>
|
6
|
+
thin » Module: Rack::Handler
|
7
|
+
</title>
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
9
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
10
|
+
<script language="JavaScript" type="text/javascript">
|
11
|
+
// <![CDATA[
|
12
|
+
|
13
|
+
function toggleSource( id )
|
14
|
+
{
|
15
|
+
var elem
|
16
|
+
var link
|
17
|
+
|
18
|
+
if( document.getElementById )
|
19
|
+
{
|
20
|
+
elem = document.getElementById( id )
|
21
|
+
link = document.getElementById( "l_" + id )
|
22
|
+
}
|
23
|
+
else if ( document.all )
|
24
|
+
{
|
25
|
+
elem = eval( "document.all." + id )
|
26
|
+
link = eval( "document.all.l_" + id )
|
27
|
+
}
|
28
|
+
else
|
29
|
+
return false;
|
30
|
+
|
31
|
+
if( elem.style.display == "block" )
|
32
|
+
{
|
33
|
+
elem.style.display = "none"
|
34
|
+
link.innerHTML = "show source"
|
35
|
+
}
|
36
|
+
else
|
37
|
+
{
|
38
|
+
elem.style.display = "block"
|
39
|
+
link.innerHTML = "hide source"
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
function openCode( url )
|
44
|
+
{
|
45
|
+
window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )
|
46
|
+
}
|
47
|
+
// ]]>
|
48
|
+
</script>
|
49
|
+
</head>
|
50
|
+
<body>
|
51
|
+
<ul id="menu">
|
52
|
+
<li><a href="/thin/">about</a></li>
|
53
|
+
<li><a href="/thin/download/">download</a></li>
|
54
|
+
<li><a href="/thin/usage/">usage</a></li>
|
55
|
+
<li><a href="/thin/doc/">doc</a></li>
|
56
|
+
<li><a href="http://groups.google.com/group/thin-ruby/">community</a></li>
|
57
|
+
</ul>
|
58
|
+
<div id="sidebar">
|
59
|
+
<h2>Files</h2>
|
60
|
+
<ul class="list">
|
61
|
+
<li><a href="../../files/README.html" value="File: README">README</a></li>
|
62
|
+
<li><a href="../../files/lib/rack/adapter/rails_rb.html" value="File: rails.rb">lib/rack/adapter/rails.rb</a></li>
|
63
|
+
<li><a href="../../files/lib/rack/handler/thin_rb.html" value="File: thin.rb">lib/rack/handler/thin.rb</a></li>
|
64
|
+
<li><a href="../../files/lib/thin/cluster_rb.html" value="File: cluster.rb">lib/thin/cluster.rb</a></li>
|
65
|
+
<li><a href="../../files/lib/thin/connection_rb.html" value="File: connection.rb">lib/thin/connection.rb</a></li>
|
66
|
+
<li><a href="../../files/lib/thin/daemonizing_rb.html" value="File: daemonizing.rb">lib/thin/daemonizing.rb</a></li>
|
67
|
+
<li><a href="../../files/lib/thin/headers_rb.html" value="File: headers.rb">lib/thin/headers.rb</a></li>
|
68
|
+
<li><a href="../../files/lib/thin/logging_rb.html" value="File: logging.rb">lib/thin/logging.rb</a></li>
|
69
|
+
<li><a href="../../files/lib/thin/request_rb.html" value="File: request.rb">lib/thin/request.rb</a></li>
|
70
|
+
<li><a href="../../files/lib/thin/response_rb.html" value="File: response.rb">lib/thin/response.rb</a></li>
|
71
|
+
<li><a href="../../files/lib/thin/server_rb.html" value="File: server.rb">lib/thin/server.rb</a></li>
|
72
|
+
<li><a href="../../files/lib/thin/statuses_rb.html" value="File: statuses.rb">lib/thin/statuses.rb</a></li>
|
73
|
+
<li><a href="../../files/lib/thin/version_rb.html" value="File: version.rb">lib/thin/version.rb</a></li>
|
74
|
+
<li><a href="../../files/lib/thin_rb.html" value="File: thin.rb">lib/thin.rb</a></li>
|
75
|
+
<li><a href="../../files/bin/thin.html" value="File: thin">bin/thin</a></li>
|
76
|
+
</ul>
|
77
|
+
|
78
|
+
<h2>Classes</h2>
|
79
|
+
<ul class="list">
|
80
|
+
<li><a href="../../classes/Rack.html" title="Module: Rack">Rack</a></li>
|
81
|
+
<li><a href="../../classes/Rack/Adapter.html" title="Module: Rack::Adapter">Rack::Adapter</a></li>
|
82
|
+
<li><a href="../../classes/Rack/Adapter/Rails.html" title="Class: Rack::Adapter::Rails">Rack::Adapter::Rails</a></li>
|
83
|
+
<li><a href="../../classes/Rack/Adapter/Rails/CGIWrapper.html" title="Class: Rack::Adapter::Rails::CGIWrapper">Rack::Adapter::Rails::CGIWrapper</a></li>
|
84
|
+
<li><a href="../../classes/Rack/Handler.html" title="Module: Rack::Handler">Rack::Handler</a></li>
|
85
|
+
<li><a href="../../classes/Rack/Handler/Thin.html" title="Class: Rack::Handler::Thin">Rack::Handler::Thin</a></li>
|
86
|
+
<li><a href="../../classes/Thin.html" title="Module: Thin">Thin</a></li>
|
87
|
+
<li><a href="../../classes/Thin/Daemonizable.html" title="Module: Thin::Daemonizable">Thin::Daemonizable</a></li>
|
88
|
+
<li><a href="../../classes/Thin/Daemonizable/ClassMethods.html" title="Module: Thin::Daemonizable::ClassMethods">Thin::Daemonizable::ClassMethods</a></li>
|
89
|
+
<li><a href="../../classes/Thin/VERSION.html" title="Module: Thin::VERSION">Thin::VERSION</a></li>
|
90
|
+
<li><a href="../../classes/Thin/Logging.html" title="Module: Thin::Logging">Thin::Logging</a></li>
|
91
|
+
<li><a href="../../classes/Thin/InvalidRequest.html" title="Class: Thin::InvalidRequest">Thin::InvalidRequest</a></li>
|
92
|
+
<li><a href="../../classes/Thin/StopServer.html" title="Class: Thin::StopServer">Thin::StopServer</a></li>
|
93
|
+
<li><a href="../../classes/Thin/Response.html" title="Class: Thin::Response">Thin::Response</a></li>
|
94
|
+
<li><a href="../../classes/Thin/Headers.html" title="Class: Thin::Headers">Thin::Headers</a></li>
|
95
|
+
<li><a href="../../classes/Thin/Server.html" title="Class: Thin::Server">Thin::Server</a></li>
|
96
|
+
<li><a href="../../classes/Thin/Request.html" title="Class: Thin::Request">Thin::Request</a></li>
|
97
|
+
<li><a href="../../classes/Thin/Connection.html" title="Class: Thin::Connection">Thin::Connection</a></li>
|
98
|
+
<li><a href="../../classes/Thin/Cluster.html" title="Class: Thin::Cluster">Thin::Cluster</a></li>
|
99
|
+
<li><a href="../../classes/Process.html" title="Module: Process">Process</a></li>
|
100
|
+
</ul>
|
101
|
+
</div>
|
102
|
+
<div id="container">
|
103
|
+
<div id="header">
|
104
|
+
<a href="/thin/" title="Home">
|
105
|
+
<img id="logo" src="../../logo.gif" />
|
106
|
+
</a>
|
107
|
+
<h2 id="tag_line">A fast and very simple Ruby web server</h2>
|
108
|
+
</div>
|
109
|
+
|
110
|
+
<div id="content">
|
111
|
+
<h2>Module: Rack::Handler</h2>
|
112
|
+
|
113
|
+
|
114
|
+
<div id="Rack::Handler" class="page_shade">
|
115
|
+
<div class="page">
|
116
|
+
<h3>Module Rack::Handler < ::CGI</h3>
|
117
|
+
|
118
|
+
<span class="path">(in files
|
119
|
+
<a href="../../files/lib/rack/handler/thin_rb.html">lib/rack/handler/thin.rb</a>
|
120
|
+
<a href="../../files/lib/thin_rb.html">lib/thin.rb</a>
|
121
|
+
)</span>
|
122
|
+
|
123
|
+
<p>
|
124
|
+
<a href="Rack/Adapter.html">Adapter</a> to run a Rails app with any
|
125
|
+
supported <a href="Rack.html">Rack</a> handler. By default it will try to
|
126
|
+
load the Rails application in the current directory in the development
|
127
|
+
environment. Options:
|
128
|
+
</p>
|
129
|
+
<pre>
|
130
|
+
root: Root directory of the Rails app
|
131
|
+
env: Rails environment to run in (development, production or test)
|
132
|
+
</pre>
|
133
|
+
<p>
|
134
|
+
Based on <a href="http://fuzed.rubyforge.org">fuzed.rubyforge.org</a>/
|
135
|
+
Rails adapter
|
136
|
+
</p>
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
</div>
|
145
|
+
</div>
|
146
|
+
|
147
|
+
|
148
|
+
</div>
|
149
|
+
</div>
|
150
|
+
<div id="footer">
|
151
|
+
<hr />
|
152
|
+
© <a href="http://macournoyer.com">Marc-André Cournoyer</a>
|
153
|
+
</div>
|
154
|
+
</body>
|
155
|
+
</html>
|