X7ROOT File Manager
Current Path:
/opt/alt/ruby19/lib64/ruby/gems/1.9.1/doc/rack-1.6.4/rdoc/Rack/Handler
opt
/
alt
/
ruby19
/
lib64
/
ruby
/
gems
/
1.9.1
/
doc
/
rack-1.6.4
/
rdoc
/
Rack
/
Handler
/
??
..
??
CGI.html
(22.73 KB)
??
EventedMongrel.html
(12.67 KB)
??
FastCGI.html
(27.38 KB)
??
LSWS.html
(22.87 KB)
??
Mongrel.html
(30.83 KB)
??
SCGI.html
(26.14 KB)
??
SwiftipliedMongrel.html
(12.69 KB)
??
Thin.html
(18.64 KB)
??
WEBrick.html
(30.74 KB)
Editing: WEBrick.html
<?xml version="1.0" encoding="US-ASCII"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta content="text/html; charset=US-ASCII" http-equiv="Content-Type" /> <title>Class: Rack::Handler::WEBrick</title> <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" /> <script src="../../js/jquery.js" type="text/javascript" charset="utf-8"></script> <script src="../../js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script> <script src="../../js/quicksearch.js" type="text/javascript" charset="utf-8"></script> <script src="../../js/darkfish.js" type="text/javascript" charset="utf-8"></script> </head> <body id="top" class="class"> <div id="metadata"> <div id="home-metadata"> <div id="home-section" class="section"> <h3 class="section-header"> <a href="../../index.html">Home</a> <a href="../../index.html#classes">Classes</a> <a href="../../index.html#methods">Methods</a> </h3> </div> </div> <div id="file-metadata"> <div id="file-list-section" class="section"> <h3 class="section-header">In Files</h3> <div class="section-body"> <ul> <li><a href="../../lib/rack/handler/webrick_rb.html?TB_iframe=true&height=550&width=785" class="thickbox" title="lib/rack/handler/webrick.rb">lib/rack/handler/webrick.rb</a></li> </ul> </div> </div> </div> <div id="class-metadata"> <!-- Parent Class --> <div id="parent-class-section" class="section"> <h3 class="section-header">Parent</h3> <p class="link">WEBrick::HTTPServlet::AbstractServlet</p> </div> <!-- Method Quickref --> <div id="method-list-section" class="section"> <h3 class="section-header">Methods</h3> <ul class="link-list"> <li><a href="#method-c-new">::new</a></li> <li><a href="#method-c-run">::run</a></li> <li><a href="#method-c-shutdown">::shutdown</a></li> <li><a href="#method-c-valid_options">::valid_options</a></li> <li><a href="#method-i-service">#service</a></li> </ul> </div> </div> <div id="project-metadata"> <div id="fileindex-section" class="section project-section"> <h3 class="section-header">Files</h3> <ul> <li class="file"><a href="../../KNOWN-ISSUES.html">KNOWN-ISSUES</a></li> </ul> </div> <div id="classindex-section" class="section project-section"> <h3 class="section-header">Class/Module Index <span class="search-toggle"><img src="../../images/find.png" height="16" width="16" alt="[+]" title="show/hide quicksearch" /></span></h3> <form action="#" method="get" accept-charset="utf-8" class="initially-hidden"> <fieldset> <legend>Quicksearch</legend> <input type="text" name="quicksearch" value="" class="quicksearch-field" /> </fieldset> </form> <ul class="link-list"> <li><a href="../../Rack.html">Rack</a></li> <li><a href="../../Rack/Auth.html">Rack::Auth</a></li> <li><a href="../../Rack/Auth/AbstractHandler.html">Rack::Auth::AbstractHandler</a></li> <li><a href="../../Rack/Auth/AbstractRequest.html">Rack::Auth::AbstractRequest</a></li> <li><a href="../../Rack/Auth/Basic.html">Rack::Auth::Basic</a></li> <li><a href="../../Rack/Auth/Basic/Request.html">Rack::Auth::Basic::Request</a></li> <li><a href="../../Rack/Auth/Digest.html">Rack::Auth::Digest</a></li> <li><a href="../../Rack/Auth/Digest/MD5.html">Rack::Auth::Digest::MD5</a></li> <li><a href="../../Rack/Auth/Digest/Nonce.html">Rack::Auth::Digest::Nonce</a></li> <li><a href="../../Rack/Auth/Digest/Params.html">Rack::Auth::Digest::Params</a></li> <li><a href="../../Rack/Auth/Digest/Request.html">Rack::Auth::Digest::Request</a></li> <li><a href="../../Rack/BodyProxy.html">Rack::BodyProxy</a></li> <li><a href="../../Rack/Builder.html">Rack::Builder</a></li> <li><a href="../../Rack/Cascade.html">Rack::Cascade</a></li> <li><a href="../../Rack/Chunked.html">Rack::Chunked</a></li> <li><a href="../../Rack/Chunked/Body.html">Rack::Chunked::Body</a></li> <li><a href="../../Rack/CommonLogger.html">Rack::CommonLogger</a></li> <li><a href="../../Rack/ConditionalGet.html">Rack::ConditionalGet</a></li> <li><a href="../../Rack/Config.html">Rack::Config</a></li> <li><a href="../../Rack/ContentLength.html">Rack::ContentLength</a></li> <li><a href="../../Rack/ContentType.html">Rack::ContentType</a></li> <li><a href="../../Rack/Deflater.html">Rack::Deflater</a></li> <li><a href="../../Rack/Deflater/DeflateStream.html">Rack::Deflater::DeflateStream</a></li> <li><a href="../../Rack/Deflater/GzipStream.html">Rack::Deflater::GzipStream</a></li> <li><a href="../../Rack/Directory.html">Rack::Directory</a></li> <li><a href="../../Rack/ETag.html">Rack::ETag</a></li> <li><a href="../../Rack/File.html">Rack::File</a></li> <li><a href="../../Rack/ForwardRequest.html">Rack::ForwardRequest</a></li> <li><a href="../../Rack/Handler.html">Rack::Handler</a></li> <li><a href="../../Rack/Handler/CGI.html">Rack::Handler::CGI</a></li> <li><a href="../../Rack/Handler/EventedMongrel.html">Rack::Handler::EventedMongrel</a></li> <li><a href="../../Rack/Handler/FastCGI.html">Rack::Handler::FastCGI</a></li> <li><a href="../../Rack/Handler/LSWS.html">Rack::Handler::LSWS</a></li> <li><a href="../../Rack/Handler/Mongrel.html">Rack::Handler::Mongrel</a></li> <li><a href="../../Rack/Handler/SCGI.html">Rack::Handler::SCGI</a></li> <li><a href="../../Rack/Handler/SwiftipliedMongrel.html">Rack::Handler::SwiftipliedMongrel</a></li> <li><a href="../../Rack/Handler/Thin.html">Rack::Handler::Thin</a></li> <li><a href="../../Rack/Handler/WEBrick.html">Rack::Handler::WEBrick</a></li> <li><a href="../../Rack/Head.html">Rack::Head</a></li> <li><a href="../../Rack/Lint.html">Rack::Lint</a></li> <li><a href="../../Rack/Lobster.html">Rack::Lobster</a></li> <li><a href="../../Rack/Lock.html">Rack::Lock</a></li> <li><a href="../../Rack/Logger.html">Rack::Logger</a></li> <li><a href="../../Rack/MethodOverride.html">Rack::MethodOverride</a></li> <li><a href="../../Rack/Mime.html">Rack::Mime</a></li> <li><a href="../../Rack/MockRequest.html">Rack::MockRequest</a></li> <li><a href="../../Rack/MockRequest/FatalWarner.html">Rack::MockRequest::FatalWarner</a></li> <li><a href="../../Rack/MockRequest/FatalWarning.html">Rack::MockRequest::FatalWarning</a></li> <li><a href="../../Rack/MockResponse.html">Rack::MockResponse</a></li> <li><a href="../../Rack/Multipart.html">Rack::Multipart</a></li> <li><a href="../../Rack/Multipart/Generator.html">Rack::Multipart::Generator</a></li> <li><a href="../../Rack/Multipart/MultipartPartLimitError.html">Rack::Multipart::MultipartPartLimitError</a></li> <li><a href="../../Rack/Multipart/Parser.html">Rack::Multipart::Parser</a></li> <li><a href="../../Rack/Multipart/UploadedFile.html">Rack::Multipart::UploadedFile</a></li> <li><a href="../../Rack/NullLogger.html">Rack::NullLogger</a></li> <li><a href="../../Rack/Recursive.html">Rack::Recursive</a></li> <li><a href="../../Rack/Reloader.html">Rack::Reloader</a></li> <li><a href="../../Rack/Reloader/Stat.html">Rack::Reloader::Stat</a></li> <li><a href="../../Rack/Request.html">Rack::Request</a></li> <li><a href="../../Rack/Response.html">Rack::Response</a></li> <li><a href="../../Rack/Response/Helpers.html">Rack::Response::Helpers</a></li> <li><a href="../../Rack/RewindableInput.html">Rack::RewindableInput</a></li> <li><a href="../../Rack/RewindableInput/Tempfile.html">Rack::RewindableInput::Tempfile</a></li> <li><a href="../../Rack/Runtime.html">Rack::Runtime</a></li> <li><a href="../../Rack/Sendfile.html">Rack::Sendfile</a></li> <li><a href="../../Rack/Server.html">Rack::Server</a></li> <li><a href="../../Rack/Server/Options.html">Rack::Server::Options</a></li> <li><a href="../../Rack/Session.html">Rack::Session</a></li> <li><a href="../../Rack/Session/Abstract.html">Rack::Session::Abstract</a></li> <li><a href="../../Rack/Session/Abstract/ID.html">Rack::Session::Abstract::ID</a></li> <li><a href="../../Rack/Session/Abstract/SessionHash.html">Rack::Session::Abstract::SessionHash</a></li> <li><a href="../../Rack/Session/Cookie.html">Rack::Session::Cookie</a></li> <li><a href="../../Rack/Session/Cookie/Base64.html">Rack::Session::Cookie::Base64</a></li> <li><a href="../../Rack/Session/Cookie/Base64/JSON.html">Rack::Session::Cookie::Base64::JSON</a></li> <li><a href="../../Rack/Session/Cookie/Base64/Marshal.html">Rack::Session::Cookie::Base64::Marshal</a></li> <li><a href="../../Rack/Session/Cookie/Base64/ZipJSON.html">Rack::Session::Cookie::Base64::ZipJSON</a></li> <li><a href="../../Rack/Session/Cookie/Identity.html">Rack::Session::Cookie::Identity</a></li> <li><a href="../../Rack/Session/Memcache.html">Rack::Session::Memcache</a></li> <li><a href="../../Rack/Session/Pool.html">Rack::Session::Pool</a></li> <li><a href="../../Rack/ShowExceptions.html">Rack::ShowExceptions</a></li> <li><a href="../../Rack/ShowStatus.html">Rack::ShowStatus</a></li> <li><a href="../../Rack/Static.html">Rack::Static</a></li> <li><a href="../../Rack/TempfileReaper.html">Rack::TempfileReaper</a></li> <li><a href="../../Rack/URLMap.html">Rack::URLMap</a></li> <li><a href="../../Rack/Utils.html">Rack::Utils</a></li> <li><a href="../../Rack/Utils/Context.html">Rack::Utils::Context</a></li> <li><a href="../../Rack/Utils/HeaderHash.html">Rack::Utils::HeaderHash</a></li> <li><a href="../../Rack/Utils/InvalidParameterError.html">Rack::Utils::InvalidParameterError</a></li> <li><a href="../../Rack/Utils/KeySpaceConstrainedParams.html">Rack::Utils::KeySpaceConstrainedParams</a></li> <li><a href="../../Rack/Multipart.html">Rack::Utils::Multipart</a></li> <li><a href="../../Rack/Utils/OkJson.html">Rack::Utils::OkJson</a></li> <li><a href="../../Rack/Utils/OkJson/Error.html">Rack::Utils::OkJson::Error</a></li> <li><a href="../../Rack/Utils/OkJson/Utf8Error.html">Rack::Utils::OkJson::Utf8Error</a></li> <li><a href="../../Rack/Utils/ParameterTypeError.html">Rack::Utils::ParameterTypeError</a></li> <li><a href="../../FCGI.html">FCGI</a></li> <li><a href="../../FCGI/Stream.html">FCGI::Stream</a></li> <li><a href="../../WEBrick.html">WEBrick</a></li> <li><a href="../../WEBrick/HTTPResponse.html">WEBrick::HTTPResponse</a></li> <li><a href="../../Object.html">Object</a></li> </ul> <div id="no-class-search-results" style="display: none;">No matching classes.</div> </div> </div> </div> <div id="documentation"> <h1 class="class">Rack::Handler::WEBrick</h1> <div id="description" class="description"> </div><!-- description --> <div id="5Buntitled-5D" class="documentation-section"> <!-- Methods --> <div id="public-class-method-details" class="method-section section"> <h3 class="section-header">Public Class Methods</h3> <div id="new-method" class="method-detail "> <a name="method-c-new"></a> <div class="method-heading"> <span class="method-name">new</span><span class="method-args">(server, app)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="new-source"> <pre> <span class="ruby-comment"># File lib/rack/handler/webrick.rb, line 52</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">server</span>, <span class="ruby-identifier">app</span>) <span class="ruby-keyword">super</span> <span class="ruby-identifier">server</span> <span class="ruby-ivar">@app</span> = <span class="ruby-identifier">app</span> <span class="ruby-keyword">end</span></pre> </div><!-- new-source --> </div> </div><!-- new-method --> <div id="run-method" class="method-detail "> <a name="method-c-run"></a> <div class="method-heading"> <span class="method-name">run</span><span class="method-args">(app, options={})</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="run-source"> <pre> <span class="ruby-comment"># File lib/rack/handler/webrick.rb, line 25</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">run</span>(<span class="ruby-identifier">app</span>, <span class="ruby-identifier">options</span>={}) <span class="ruby-identifier">environment</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-string">'RACK_ENV'</span>] <span class="ruby-operator">||</span> <span class="ruby-string">'development'</span> <span class="ruby-identifier">default_host</span> = <span class="ruby-identifier">environment</span> <span class="ruby-operator">==</span> <span class="ruby-string">'development'</span> <span class="ruby-operator">?</span> <span class="ruby-string">'localhost'</span> <span class="ruby-operator">:</span> <span class="ruby-string">'0.0.0.0'</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:BindAddress</span>] = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:Host</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">default_host</span> <span class="ruby-identifier">options</span>[<span class="ruby-value">:Port</span>] <span class="ruby-operator">||=</span> <span class="ruby-value">8080</span> <span class="ruby-ivar">@server</span> = <span class="ruby-operator">::</span><span class="ruby-constant">WEBrick</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPServer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>) <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">mount</span> <span class="ruby-string">"/"</span>, <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Handler</span><span class="ruby-operator">::</span><span class="ruby-constant">WEBrick</span>, <span class="ruby-identifier">app</span> <span class="ruby-keyword">yield</span> <span class="ruby-ivar">@server</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">start</span> <span class="ruby-keyword">end</span></pre> </div><!-- run-source --> </div> </div><!-- run-method --> <div id="shutdown-method" class="method-detail "> <a name="method-c-shutdown"></a> <div class="method-heading"> <span class="method-name">shutdown</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="shutdown-source"> <pre> <span class="ruby-comment"># File lib/rack/handler/webrick.rb, line 47</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">shutdown</span> <span class="ruby-ivar">@server</span>.<span class="ruby-identifier">shutdown</span> <span class="ruby-ivar">@server</span> = <span class="ruby-keyword">nil</span> <span class="ruby-keyword">end</span></pre> </div><!-- shutdown-source --> </div> </div><!-- shutdown-method --> <div id="valid_options-method" class="method-detail "> <a name="method-c-valid_options"></a> <div class="method-heading"> <span class="method-name">valid_options</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="valid_options-source"> <pre> <span class="ruby-comment"># File lib/rack/handler/webrick.rb, line 37</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">valid_options</span> <span class="ruby-identifier">environment</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-string">'RACK_ENV'</span>] <span class="ruby-operator">||</span> <span class="ruby-string">'development'</span> <span class="ruby-identifier">default_host</span> = <span class="ruby-identifier">environment</span> <span class="ruby-operator">==</span> <span class="ruby-string">'development'</span> <span class="ruby-operator">?</span> <span class="ruby-string">'localhost'</span> <span class="ruby-operator">:</span> <span class="ruby-string">'0.0.0.0'</span> { <span class="ruby-string">"Host=HOST"</span> =<span class="ruby-operator">></span> <span class="ruby-node">"Hostname to listen on (default: #{default_host})"</span>, <span class="ruby-string">"Port=PORT"</span> =<span class="ruby-operator">></span> <span class="ruby-string">"Port to listen on (default: 8080)"</span>, } <span class="ruby-keyword">end</span></pre> </div><!-- valid_options-source --> </div> </div><!-- valid_options-method --> </div><!-- public-class-method-details --> <div id="public-instance-method-details" class="method-section section"> <h3 class="section-header">Public Instance Methods</h3> <div id="service-method" class="method-detail "> <a name="method-i-service"></a> <div class="method-heading"> <span class="method-name">service</span><span class="method-args">(req, res)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="service-source"> <pre> <span class="ruby-comment"># File lib/rack/handler/webrick.rb, line 57</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">service</span>(<span class="ruby-identifier">req</span>, <span class="ruby-identifier">res</span>) <span class="ruby-identifier">res</span>.<span class="ruby-identifier">rack</span> = <span class="ruby-keyword">true</span> <span class="ruby-identifier">env</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">meta_vars</span> <span class="ruby-identifier">env</span>.<span class="ruby-identifier">delete_if</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">v</span>.<span class="ruby-identifier">nil?</span> } <span class="ruby-identifier">rack_input</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">req</span>.<span class="ruby-identifier">body</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-identifier">rack_input</span>.<span class="ruby-identifier">set_encoding</span>(<span class="ruby-constant">Encoding</span><span class="ruby-operator">::</span><span class="ruby-constant">BINARY</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">rack_input</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:set_encoding</span>) <span class="ruby-identifier">env</span>.<span class="ruby-identifier">update</span>({<span class="ruby-string">"rack.version"</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">VERSION</span>, <span class="ruby-string">"rack.input"</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">rack_input</span>, <span class="ruby-string">"rack.errors"</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">$stderr</span>, <span class="ruby-string">"rack.multithread"</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>, <span class="ruby-string">"rack.multiprocess"</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">false</span>, <span class="ruby-string">"rack.run_once"</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">false</span>, <span class="ruby-string">"rack.url_scheme"</span> =<span class="ruby-operator">></span> [<span class="ruby-string">"yes"</span>, <span class="ruby-string">"on"</span>, <span class="ruby-string">"1"</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">env</span>[<span class="ruby-string">"HTTPS"</span>]) <span class="ruby-operator">?</span> <span class="ruby-string">"https"</span> <span class="ruby-operator">:</span> <span class="ruby-string">"http"</span>, <span class="ruby-string">"rack.hijack?"</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>, <span class="ruby-string">"rack.hijack"</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">lambda</span> { <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>, <span class="ruby-string">"only partial hijack is supported."</span>}, <span class="ruby-string">"rack.hijack_io"</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">nil</span>, }) <span class="ruby-identifier">env</span>[<span class="ruby-string">"HTTP_VERSION"</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">env</span>[<span class="ruby-string">"SERVER_PROTOCOL"</span>] <span class="ruby-identifier">env</span>[<span class="ruby-constant">QUERY_STRING</span>] <span class="ruby-operator">||=</span> <span class="ruby-string">""</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">env</span>[<span class="ruby-constant">PATH_INFO</span>] <span class="ruby-operator">==</span> <span class="ruby-string">""</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">n</span> = <span class="ruby-identifier">req</span>.<span class="ruby-identifier">request_uri</span>.<span class="ruby-identifier">path</span>, <span class="ruby-identifier">env</span>[<span class="ruby-string">"SCRIPT_NAME"</span>].<span class="ruby-identifier">length</span> <span class="ruby-identifier">env</span>[<span class="ruby-constant">PATH_INFO</span>] = <span class="ruby-identifier">path</span>[<span class="ruby-identifier">n</span>, <span class="ruby-identifier">path</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-identifier">n</span>] <span class="ruby-keyword">end</span> <span class="ruby-identifier">env</span>[<span class="ruby-string">"REQUEST_PATH"</span>] <span class="ruby-operator">||=</span> [<span class="ruby-identifier">env</span>[<span class="ruby-string">"SCRIPT_NAME"</span>], <span class="ruby-identifier">env</span>[<span class="ruby-constant">PATH_INFO</span>]].<span class="ruby-identifier">join</span> <span class="ruby-identifier">status</span>, <span class="ruby-identifier">headers</span>, <span class="ruby-identifier">body</span> = <span class="ruby-ivar">@app</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">env</span>) <span class="ruby-keyword">begin</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">status</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-identifier">headers</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">vs</span><span class="ruby-operator">|</span> <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-operator">==</span> <span class="ruby-string">"rack.hijack"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-operator">==</span> <span class="ruby-string">"set-cookie"</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">cookies</span>.<span class="ruby-identifier">concat</span> <span class="ruby-identifier">vs</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">"\n"</span>) <span class="ruby-keyword">else</span> <span class="ruby-comment"># Since WEBrick won't accept repeated headers,</span> <span class="ruby-comment"># merge the values per RFC 1945 section 4.2.</span> <span class="ruby-identifier">res</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">vs</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">"\n"</span>).<span class="ruby-identifier">join</span>(<span class="ruby-string">", "</span>) <span class="ruby-keyword">end</span> } <span class="ruby-identifier">io_lambda</span> = <span class="ruby-identifier">headers</span>[<span class="ruby-string">"rack.hijack"</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">io_lambda</span> <span class="ruby-identifier">rd</span>, <span class="ruby-identifier">wr</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">pipe</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">body</span> = <span class="ruby-identifier">rd</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">chunked</span> = <span class="ruby-keyword">true</span> <span class="ruby-identifier">io_lambda</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">wr</span> <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">body</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:to_path</span>) <span class="ruby-identifier">res</span>.<span class="ruby-identifier">body</span> = <span class="ruby-operator">::</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">body</span>.<span class="ruby-identifier">to_path</span>, <span class="ruby-string">'rb'</span>) <span class="ruby-keyword">else</span> <span class="ruby-identifier">body</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">part</span><span class="ruby-operator">|</span> <span class="ruby-identifier">res</span>.<span class="ruby-identifier">body</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">part</span> } <span class="ruby-keyword">end</span> <span class="ruby-keyword">ensure</span> <span class="ruby-identifier">body</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">body</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-value">:close</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div><!-- service-source --> </div> </div><!-- service-method --> </div><!-- public-instance-method-details --> </div><!-- 5Buntitled-5D --> </div><!-- documentation --> <div id="validator-badges"> <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p> <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 2</small>.</p> </div> </body> </html>
Upload File
Create Folder