X7ROOT File Manager
Current Path:
/opt/alt/ruby19/lib64/ruby/gems/1.9.1/doc/rack-1.6.4/rdoc/Rack
opt
/
alt
/
ruby19
/
lib64
/
ruby
/
gems
/
1.9.1
/
doc
/
rack-1.6.4
/
rdoc
/
Rack
/
??
..
??
Auth
??
Auth.html
(14.25 KB)
??
BodyProxy.html
(21.15 KB)
??
Builder.html
(31.56 KB)
??
Cascade.html
(21.75 KB)
??
Chunked
??
Chunked.html
(18.98 KB)
??
CommonLogger.html
(17.58 KB)
??
ConditionalGet.html
(18.12 KB)
??
Config.html
(15.37 KB)
??
ContentLength.html
(18.03 KB)
??
ContentType.html
(16.66 KB)
??
Deflater
??
Deflater.html
(22.61 KB)
??
Directory.html
(37.8 KB)
??
ETag.html
(19.01 KB)
??
File.html
(30.76 KB)
??
ForwardRequest.html
(16.51 KB)
??
Handler
??
Handler.html
(27.8 KB)
??
Head.html
(16.17 KB)
??
Lint
??
Lint.html
(14.58 KB)
??
Lobster.html
(17.75 KB)
??
Lock.html
(16.71 KB)
??
Logger.html
(15.78 KB)
??
MethodOverride.html
(18.31 KB)
??
Mime.html
(17.65 KB)
??
MockRequest
??
MockRequest.html
(39.91 KB)
??
MockResponse.html
(21.02 KB)
??
Multipart
??
Multipart.html
(18.26 KB)
??
NullLogger.html
(38.82 KB)
??
Recursive.html
(20.18 KB)
??
Reloader
??
Reloader.html
(21.32 KB)
??
Request.html
(100.97 KB)
??
Response
??
Response.html
(35.97 KB)
??
RewindableInput
??
RewindableInput.html
(21.51 KB)
??
Runtime.html
(16.89 KB)
??
Sendfile.html
(23.65 KB)
??
Server
??
Server.html
(35.16 KB)
??
Session
??
Session.html
(13.56 KB)
??
ShowExceptions.html
(26.39 KB)
??
ShowStatus.html
(19.17 KB)
??
Static.html
(29.31 KB)
??
TempfileReaper.html
(16.51 KB)
??
URLMap.html
(23.63 KB)
??
Utils
??
Utils.html
(82.87 KB)
Editing: Request.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::Request</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/request_rb.html?TB_iframe=true&height=550&width=785" class="thickbox" title="lib/rack/request.rb">lib/rack/request.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"><a href="../Object.html">Object</a></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-i-GET">#GET</a></li> <li><a href="#method-i-POST">#POST</a></li> <li><a href="#method-i-5B-5D">#[]</a></li> <li><a href="#method-i-5B-5D-3D">#[]=</a></li> <li><a href="#method-i-accept_encoding">#accept_encoding</a></li> <li><a href="#method-i-accept_language">#accept_language</a></li> <li><a href="#method-i-base_url">#base_url</a></li> <li><a href="#method-i-body">#body</a></li> <li><a href="#method-i-content_charset">#content_charset</a></li> <li><a href="#method-i-content_length">#content_length</a></li> <li><a href="#method-i-content_type">#content_type</a></li> <li><a href="#method-i-cookies">#cookies</a></li> <li><a href="#method-i-delete-3F">#delete?</a></li> <li><a href="#method-i-delete_param">#delete_param</a></li> <li><a href="#method-i-form_data-3F">#form_data?</a></li> <li><a href="#method-i-fullpath">#fullpath</a></li> <li><a href="#method-i-get-3F">#get?</a></li> <li><a href="#method-i-head-3F">#head?</a></li> <li><a href="#method-i-host">#host</a></li> <li><a href="#method-i-host_with_port">#host_with_port</a></li> <li><a href="#method-i-ip">#ip</a></li> <li><a href="#method-i-link-3F">#link?</a></li> <li><a href="#method-i-logger">#logger</a></li> <li><a href="#method-i-media_type">#media_type</a></li> <li><a href="#method-i-media_type_params">#media_type_params</a></li> <li><a href="#method-i-options-3F">#options?</a></li> <li><a href="#method-i-params">#params</a></li> <li><a href="#method-i-parse_http_accept_header">#parse_http_accept_header</a></li> <li><a href="#method-i-parse_multipart">#parse_multipart</a></li> <li><a href="#method-i-parse_query">#parse_query</a></li> <li><a href="#method-i-parseable_data-3F">#parseable_data?</a></li> <li><a href="#method-i-patch-3F">#patch?</a></li> <li><a href="#method-i-path">#path</a></li> <li><a href="#method-i-path_info">#path_info</a></li> <li><a href="#method-i-path_info-3D">#path_info=</a></li> <li><a href="#method-i-port">#port</a></li> <li><a href="#method-i-post-3F">#post?</a></li> <li><a href="#method-i-put-3F">#put?</a></li> <li><a href="#method-i-query_string">#query_string</a></li> <li><a href="#method-i-referer">#referer</a></li> <li><a href="#method-i-referrer">#referrer</a></li> <li><a href="#method-i-reject_trusted_ip_addresses">#reject_trusted_ip_addresses</a></li> <li><a href="#method-i-request_method">#request_method</a></li> <li><a href="#method-i-scheme">#scheme</a></li> <li><a href="#method-i-script_name">#script_name</a></li> <li><a href="#method-i-script_name-3D">#script_name=</a></li> <li><a href="#method-i-session">#session</a></li> <li><a href="#method-i-session_options">#session_options</a></li> <li><a href="#method-i-split_ip_addresses">#split_ip_addresses</a></li> <li><a href="#method-i-ssl-3F">#ssl?</a></li> <li><a href="#method-i-trace-3F">#trace?</a></li> <li><a href="#method-i-trusted_proxy-3F">#trusted_proxy?</a></li> <li><a href="#method-i-unlink-3F">#unlink?</a></li> <li><a href="#method-i-update_param">#update_param</a></li> <li><a href="#method-i-url">#url</a></li> <li><a href="#method-i-user_agent">#user_agent</a></li> <li><a href="#method-i-values_at">#values_at</a></li> <li><a href="#method-i-xhr-3F">#xhr?</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::Request</h1> <div id="description" class="description"> <p><a href="Request.html">Rack::Request</a> provides a convenient interface to a <a href="../Rack.html">Rack</a> environment. It is stateless, the environment <tt>env</tt> passed to the constructor will be directly modified.</p> <pre>req = Rack::Request.new(env) req.post? req.params["data"]</pre> </div><!-- description --> <div id="5Buntitled-5D" class="documentation-section"> <!-- Constants --> <div id="constants-list" class="section"> <h3 class="section-header">Constants</h3> <dl> <dt><a name="DEFAULT_PORTS">DEFAULT_PORTS</a></dt> <dd class="description"><p>Default ports depending on scheme. Used to decide whether or not to include the port in a generated URI.</p></dd> <dt><a name="FORM_DATA_MEDIA_TYPES">FORM_DATA_MEDIA_TYPES</a></dt> <dd class="description"><p>The set of form-data media-types. Requests that do not indicate one of the media types presents in this list will not be eligible for form-data / param parsing.</p></dd> <dt><a name="PARSEABLE_DATA_MEDIA_TYPES">PARSEABLE_DATA_MEDIA_TYPES</a></dt> <dd class="description"><p>The set of media-types. Requests that do not indicate one of the media types presents in this list will not be eligible for param parsing like soap attachments or generic multiparts</p></dd> </dl> </div> <!-- Attributes --> <div id="attribute-method-details" class="method-section section"> <h3 class="section-header">Attributes</h3> <div id="env-attribute-method" class="method-detail"> <a name="env"></a> <div class="method-heading attribute-method-heading"> <span class="method-name">env</span><span class="attribute-access-type">[R]</span> </div> <div class="method-description"> <p>The environment of the request.</p> </div> </div> </div><!-- attribute-method-details --> <!-- 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">(env)</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/request.rb, line 16</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">env</span>) <span class="ruby-ivar">@env</span> = <span class="ruby-identifier">env</span> <span class="ruby-keyword">end</span></pre> </div><!-- new-source --> </div> </div><!-- new-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="GET-method" class="method-detail "> <a name="method-i-GET"></a> <div class="method-heading"> <span class="method-name">GET</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Returns the data received in the query string.</p> <div class="method-source-code" id="GET-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 187</span> <span class="ruby-keyword">def</span> <span class="ruby-constant">GET</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.query_string"</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">query_string</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.query_hash"</span>] <span class="ruby-keyword">else</span> <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parse_query</span>({ <span class="ruby-value">:query</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">query_string</span>, <span class="ruby-value">:separator</span> =<span class="ruby-operator">></span> <span class="ruby-string">'&;'</span> }) <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.query_string"</span>] = <span class="ruby-identifier">query_string</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.query_hash"</span>] = <span class="ruby-identifier">p</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div><!-- GET-source --> </div> </div><!-- GET-method --> <div id="POST-method" class="method-detail "> <a name="method-i-POST"></a> <div class="method-heading"> <span class="method-name">POST</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Returns the data received in the request body.</p> <p>This method support both application/x-www-form-urlencoded and multipart/form-data.</p> <div class="method-source-code" id="POST-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 201</span> <span class="ruby-keyword">def</span> <span class="ruby-constant">POST</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.input"</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-identifier">raise</span> <span class="ruby-string">"Missing rack.input"</span> <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.form_input"</span>].<span class="ruby-identifier">equal?</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.input"</span>] <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.form_hash"</span>] <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">form_data?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">parseable_data?</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.form_hash"</span>] = <span class="ruby-identifier">parse_multipart</span>(<span class="ruby-identifier">env</span>) <span class="ruby-identifier">form_vars</span> = <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.input"</span>].<span class="ruby-identifier">read</span> <span class="ruby-comment"># Fix for Safari Ajax postings that always append \0</span> <span class="ruby-comment"># form_vars.sub!(/\0\z/, '') # performance replacement:</span> <span class="ruby-identifier">form_vars</span>.<span class="ruby-identifier">slice!</span>(<span class="ruby-value">-1</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">form_vars</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">\00 \</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.form_vars"</span>] = <span class="ruby-identifier">form_vars</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.form_hash"</span>] = <span class="ruby-identifier">parse_query</span>({ <span class="ruby-value">:query</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">form_vars</span>, <span class="ruby-value">:separator</span> =<span class="ruby-operator">></span> <span class="ruby-string">'&'</span> }) <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.input"</span>].<span class="ruby-identifier">rewind</span> <span class="ruby-keyword">end</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.form_input"</span>] = <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.input"</span>] <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.form_hash"</span>] <span class="ruby-keyword">else</span> {} <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div><!-- POST-source --> </div> </div><!-- POST-method --> <div id="5B-5D-method" class="method-detail "> <a name="method-i-5B-5D"></a> <div class="method-heading"> <span class="method-name">[]</span><span class="method-args">(key)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>shortcut for <a href="http://key">request.params</a></p> <div class="method-source-code" id="5B-5D-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 269</span> <span class="ruby-keyword">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>) <span class="ruby-identifier">params</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>] <span class="ruby-keyword">end</span></pre> </div><!-- 5B-5D-source --> </div> </div><!-- 5B-5D-method --> <div id="5B-5D-3D-method" class="method-detail "> <a name="method-i-5B-5D-3D"></a> <div class="method-heading"> <span class="method-name">[]=</span><span class="method-args">(key, value)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>shortcut for <a href="http://key">request.params</a> = value</p> <p>Note that modifications will not be persisted in the env. Use <a href="Request.html#method-i-update_param">update_param</a> or <a href="Request.html#method-i-delete_param">delete_param</a> if you want to destructively modify params.</p> <div class="method-source-code" id="5B-5D-3D-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 276</span> <span class="ruby-keyword">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>) <span class="ruby-identifier">params</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">to_s</span>] = <span class="ruby-identifier">value</span> <span class="ruby-keyword">end</span></pre> </div><!-- 5B-5D-3D-source --> </div> </div><!-- 5B-5D-3D-method --> <div id="accept_encoding-method" class="method-detail "> <a name="method-i-accept_encoding"></a> <div class="method-heading"> <span class="method-name">accept_encoding</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="accept_encoding-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 336</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">accept_encoding</span> <span class="ruby-identifier">parse_http_accept_header</span>(<span class="ruby-ivar">@env</span>[<span class="ruby-string">"HTTP_ACCEPT_ENCODING"</span>]) <span class="ruby-keyword">end</span></pre> </div><!-- accept_encoding-source --> </div> </div><!-- accept_encoding-method --> <div id="accept_language-method" class="method-detail "> <a name="method-i-accept_language"></a> <div class="method-heading"> <span class="method-name">accept_language</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="accept_language-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 340</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">accept_language</span> <span class="ruby-identifier">parse_http_accept_header</span>(<span class="ruby-ivar">@env</span>[<span class="ruby-string">"HTTP_ACCEPT_LANGUAGE"</span>]) <span class="ruby-keyword">end</span></pre> </div><!-- accept_language-source --> </div> </div><!-- accept_language-method --> <div id="base_url-method" class="method-detail "> <a name="method-i-base_url"></a> <div class="method-heading"> <span class="method-name">base_url</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="base_url-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 317</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">base_url</span> <span class="ruby-identifier">url</span> = <span class="ruby-node">"#{scheme}://#{host}"</span> <span class="ruby-identifier">url</span> <span class="ruby-operator"><<</span> <span class="ruby-node">":#{port}"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">port</span> <span class="ruby-operator">!=</span> <span class="ruby-constant">DEFAULT_PORTS</span>[<span class="ruby-identifier">scheme</span>] <span class="ruby-identifier">url</span> <span class="ruby-keyword">end</span></pre> </div><!-- base_url-source --> </div> </div><!-- base_url-method --> <div id="body-method" class="method-detail "> <a name="method-i-body"></a> <div class="method-heading"> <span class="method-name">body</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="body-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 20</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">body</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.input"</span>] <span class="ruby-keyword">end</span></pre> </div><!-- body-source --> </div> </div><!-- body-method --> <div id="content_charset-method" class="method-detail "> <a name="method-i-content_charset"></a> <div class="method-heading"> <span class="method-name">content_charset</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The character set of the request body if a "charset" media type parameter was given, or nil if no "charset" was specified. Note that, per RFC2616, text/* media types that specify no explicit charset are to be considered ISO-8859-1.</p> <div class="method-source-code" id="content_charset-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 62</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">content_charset</span> <span class="ruby-identifier">media_type_params</span>[<span class="ruby-string">'charset'</span>] <span class="ruby-keyword">end</span></pre> </div><!-- content_charset-source --> </div> </div><!-- content_charset-method --> <div id="content_length-method" class="method-detail "> <a name="method-i-content_length"></a> <div class="method-heading"> <span class="method-name">content_length</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="content_length-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 25</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">content_length</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-string">'CONTENT_LENGTH'</span>] <span class="ruby-keyword">end</span></pre> </div><!-- content_length-source --> </div> </div><!-- content_length-method --> <div id="content_type-method" class="method-detail "> <a name="method-i-content_type"></a> <div class="method-heading"> <span class="method-name">content_type</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="content_type-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 27</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">content_type</span> <span class="ruby-identifier">content_type</span> = <span class="ruby-ivar">@env</span>[<span class="ruby-string">'CONTENT_TYPE'</span>] <span class="ruby-identifier">content_type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">content_type</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">content_type</span> <span class="ruby-keyword">end</span></pre> </div><!-- content_type-source --> </div> </div><!-- content_type-method --> <div id="cookies-method" class="method-detail "> <a name="method-i-cookies"></a> <div class="method-heading"> <span class="method-name">cookies</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="cookies-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 295</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">cookies</span> <span class="ruby-identifier">hash</span> = <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.cookie_hash"</span>] <span class="ruby-operator">||=</span> {} <span class="ruby-identifier">string</span> = <span class="ruby-ivar">@env</span>[<span class="ruby-string">"HTTP_COOKIE"</span>] <span class="ruby-keyword">return</span> <span class="ruby-identifier">hash</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">string</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.cookie_string"</span>] <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">clear</span> <span class="ruby-comment"># According to RFC 2109:</span> <span class="ruby-comment"># If multiple cookies satisfy the criteria above, they are ordered in</span> <span class="ruby-comment"># the Cookie header such that those with more specific Path attributes</span> <span class="ruby-comment"># precede those with less specific. Ordering with respect to other</span> <span class="ruby-comment"># attributes (e.g., Domain) is unspecified.</span> <span class="ruby-identifier">cookies</span> = <span class="ruby-constant">Utils</span>.<span class="ruby-identifier">parse_query</span>(<span class="ruby-identifier">string</span>, <span class="ruby-string">';,'</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Utils</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-identifier">s</span>) <span class="ruby-keyword">rescue</span> <span class="ruby-identifier">s</span> } <span class="ruby-identifier">cookies</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">hash</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-constant">Array</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">v</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">v</span> } <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.request.cookie_string"</span>] = <span class="ruby-identifier">string</span> <span class="ruby-identifier">hash</span> <span class="ruby-keyword">end</span></pre> </div><!-- cookies-source --> </div> </div><!-- cookies-method --> <div id="delete-3F-method" class="method-detail "> <a name="method-i-delete-3F"></a> <div class="method-heading"> <span class="method-name">delete?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type DELETE</p> <div class="method-source-code" id="delete-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 116</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">delete?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-string">"DELETE"</span> <span class="ruby-keyword">end</span></pre> </div><!-- delete-3F-source --> </div> </div><!-- delete-3F-method --> <div id="delete_param-method" class="method-detail "> <a name="method-i-delete_param"></a> <div class="method-heading"> <span class="method-name">delete_param</span><span class="method-args">(k)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Destructively delete a parameter, whether it's in <a href="Request.html#method-i-GET">GET</a> or <a href="Request.html#method-i-POST">POST</a>. Returns the value of the deleted parameter.</p> <p>If the parameter is in both <a href="Request.html#method-i-GET">GET</a> and <a href="Request.html#method-i-POST">POST</a>, the <a href="Request.html#method-i-POST">POST</a> value takes precedence since that's how <a href="Request.html#method-i-params">params</a> works.</p> <p><a href="http://'rack.input'">env</a> is not touched.</p> <div class="method-source-code" id="delete_param-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 262</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">delete_param</span>(<span class="ruby-identifier">k</span>) <span class="ruby-identifier">v</span> = [ <span class="ruby-keyword">self</span>.<span class="ruby-constant">POST</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>), <span class="ruby-keyword">self</span>.<span class="ruby-constant">GET</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) ].<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">first</span> <span class="ruby-ivar">@params</span> = <span class="ruby-keyword">nil</span> <span class="ruby-identifier">v</span> <span class="ruby-keyword">end</span></pre> </div><!-- delete_param-source --> </div> </div><!-- delete_param-method --> <div id="form_data-3F-method" class="method-detail "> <a name="method-i-form_data-3F"></a> <div class="method-heading"> <span class="method-name">form_data?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Determine whether the request body contains form-data by checking the request Content-Type for one of the media-types: "application/x-www-form-urlencoded" or "multipart/form-data". The list of form-data media types can be modified through the <tt>FORM_DATA_MEDIA_TYPES</tt> array.</p> <p>A request body is also assumed to contain form-data when no Content-Type header is provided and the <a href="Request.html#method-i-request_method">request_method</a> is <a href="Request.html#method-i-POST">POST</a>.</p> <div class="method-source-code" id="form_data-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 174</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">form_data?</span> <span class="ruby-identifier">type</span> = <span class="ruby-identifier">media_type</span> <span class="ruby-identifier">meth</span> = <span class="ruby-identifier">env</span>[<span class="ruby-string">"rack.methodoverride.original_method"</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">env</span>[<span class="ruby-constant">REQUEST_METHOD</span>] (<span class="ruby-identifier">meth</span> <span class="ruby-operator">==</span> <span class="ruby-string">'POST'</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">type</span>.<span class="ruby-identifier">nil?</span>) <span class="ruby-operator">||</span> <span class="ruby-constant">FORM_DATA_MEDIA_TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>) <span class="ruby-keyword">end</span></pre> </div><!-- form_data-3F-source --> </div> </div><!-- form_data-3F-method --> <div id="fullpath-method" class="method-detail "> <a name="method-i-fullpath"></a> <div class="method-heading"> <span class="method-name">fullpath</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="fullpath-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 332</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">fullpath</span> <span class="ruby-identifier">query_string</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">path</span> <span class="ruby-operator">:</span> <span class="ruby-node">"#{path}?#{query_string}"</span> <span class="ruby-keyword">end</span></pre> </div><!-- fullpath-source --> </div> </div><!-- fullpath-method --> <div id="get-3F-method" class="method-detail "> <a name="method-i-get-3F"></a> <div class="method-heading"> <span class="method-name">get?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type <a href="Request.html#method-i-GET">GET</a></p> <div class="method-source-code" id="get-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 119</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">get?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-constant">GET</span> <span class="ruby-keyword">end</span></pre> </div><!-- get-3F-source --> </div> </div><!-- get-3F-method --> <div id="head-3F-method" class="method-detail "> <a name="method-i-head-3F"></a> <div class="method-heading"> <span class="method-name">head?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type HEAD</p> <div class="method-source-code" id="head-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 122</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">head?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-constant">HEAD</span> <span class="ruby-keyword">end</span></pre> </div><!-- head-3F-source --> </div> </div><!-- head-3F-method --> <div id="host-method" class="method-detail "> <a name="method-i-host"></a> <div class="method-heading"> <span class="method-name">host</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="host-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 106</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">host</span> <span class="ruby-comment"># Remove port number.</span> <span class="ruby-identifier">host_with_port</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/:\d+\z/</span>, <span class="ruby-string">''</span>) <span class="ruby-keyword">end</span></pre> </div><!-- host-source --> </div> </div><!-- host-method --> <div id="host_with_port-method" class="method-detail "> <a name="method-i-host_with_port"></a> <div class="method-heading"> <span class="method-name">host_with_port</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="host_with_port-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 84</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">host_with_port</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">forwarded</span> = <span class="ruby-ivar">@env</span>[<span class="ruby-string">"HTTP_X_FORWARDED_HOST"</span>] <span class="ruby-identifier">forwarded</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/,\s?/</span>).<span class="ruby-identifier">last</span> <span class="ruby-keyword">else</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_HOST'</span>] <span class="ruby-operator">||</span> <span class="ruby-node">"#{@env['SERVER_NAME'] || @env['SERVER_ADDR']}:#{@env['SERVER_PORT']}"</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div><!-- host_with_port-source --> </div> </div><!-- host_with_port-method --> <div id="ip-method" class="method-detail "> <a name="method-i-ip"></a> <div class="method-heading"> <span class="method-name">ip</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="ip-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 348</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">ip</span> <span class="ruby-identifier">remote_addrs</span> = <span class="ruby-identifier">split_ip_addresses</span>(<span class="ruby-ivar">@env</span>[<span class="ruby-string">'REMOTE_ADDR'</span>]) <span class="ruby-identifier">remote_addrs</span> = <span class="ruby-identifier">reject_trusted_ip_addresses</span>(<span class="ruby-identifier">remote_addrs</span>) <span class="ruby-keyword">return</span> <span class="ruby-identifier">remote_addrs</span>.<span class="ruby-identifier">first</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">remote_addrs</span>.<span class="ruby-identifier">any?</span> <span class="ruby-identifier">forwarded_ips</span> = <span class="ruby-identifier">split_ip_addresses</span>(<span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_X_FORWARDED_FOR'</span>]) <span class="ruby-keyword">return</span> <span class="ruby-identifier">reject_trusted_ip_addresses</span>(<span class="ruby-identifier">forwarded_ips</span>).<span class="ruby-identifier">last</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"REMOTE_ADDR"</span>] <span class="ruby-keyword">end</span></pre> </div><!-- ip-source --> </div> </div><!-- ip-method --> <div id="link-3F-method" class="method-detail "> <a name="method-i-link-3F"></a> <div class="method-heading"> <span class="method-name">link?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type LINK</p> <div class="method-source-code" id="link-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 128</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">link?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-string">"LINK"</span> <span class="ruby-keyword">end</span></pre> </div><!-- link-3F-source --> </div> </div><!-- link-3F-method --> <div id="logger-method" class="method-detail "> <a name="method-i-logger"></a> <div class="method-heading"> <span class="method-name">logger</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="logger-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 34</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">logger</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-string">'rack.logger'</span>] <span class="ruby-keyword">end</span></pre> </div><!-- logger-source --> </div> </div><!-- logger-method --> <div id="media_type-method" class="method-detail "> <a name="method-i-media_type"></a> <div class="method-heading"> <span class="method-name">media_type</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The media type (type/subtype) portion of the CONTENT_TYPE header without any media type parameters. e.g., when CONTENT_TYPE is "text/plain;charset=utf-8", the media-type is "text/plain".</p> <p>For more information on the use of media types in HTTP, see: <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7">www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7</a></p> <div class="method-source-code" id="media_type-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 42</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">media_type</span> <span class="ruby-identifier">content_type</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">content_type</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\s*[;,]\s*/</span>, <span class="ruby-value">2</span>).<span class="ruby-identifier">first</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-keyword">end</span></pre> </div><!-- media_type-source --> </div> </div><!-- media_type-method --> <div id="media_type_params-method" class="method-detail "> <a name="method-i-media_type_params"></a> <div class="method-heading"> <span class="method-name">media_type_params</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The media type parameters provided in CONTENT_TYPE as a Hash, or an empty Hash if no CONTENT_TYPE or media-type parameters were provided. e.g., when the CONTENT_TYPE is "text/plain;charset=utf-8", this method responds with the following Hash:</p> <pre>{ 'charset' => 'utf-8' }</pre> <div class="method-source-code" id="media_type_params-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 51</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">media_type_params</span> <span class="ruby-keyword">return</span> {} <span class="ruby-keyword">if</span> <span class="ruby-identifier">content_type</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-constant">Hash</span>[*<span class="ruby-identifier">content_type</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\s*[;,]\s*/</span>)[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]. <span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">'='</span>, <span class="ruby-value">2</span>) }. <span class="ruby-identifier">map</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">k</span>.<span class="ruby-identifier">downcase</span>, <span class="ruby-identifier">strip_doublequotes</span>(<span class="ruby-identifier">v</span>)] }.<span class="ruby-identifier">flatten</span>] <span class="ruby-keyword">end</span></pre> </div><!-- media_type_params-source --> </div> </div><!-- media_type_params-method --> <div id="options-3F-method" class="method-detail "> <a name="method-i-options-3F"></a> <div class="method-heading"> <span class="method-name">options?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type OPTIONS</p> <div class="method-source-code" id="options-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 125</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">options?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-string">"OPTIONS"</span> <span class="ruby-keyword">end</span></pre> </div><!-- options-3F-source --> </div> </div><!-- options-3F-method --> <div id="params-method" class="method-detail "> <a name="method-i-params"></a> <div class="method-heading"> <span class="method-name">params</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>The union of <a href="Request.html#method-i-GET">GET</a> and <a href="Request.html#method-i-POST">POST</a> data.</p> <p>Note that modifications will not be persisted in the env. Use <a href="Request.html#method-i-update_param">update_param</a> or <a href="Request.html#method-i-delete_param">delete_param</a> if you want to destructively modify params.</p> <div class="method-source-code" id="params-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 229</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">params</span> <span class="ruby-ivar">@params</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">self</span>.<span class="ruby-constant">GET</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword">self</span>.<span class="ruby-constant">POST</span>) <span class="ruby-keyword">rescue</span> <span class="ruby-constant">EOFError</span> <span class="ruby-keyword">self</span>.<span class="ruby-constant">GET</span>.<span class="ruby-identifier">dup</span> <span class="ruby-keyword">end</span></pre> </div><!-- params-source --> </div> </div><!-- params-method --> <div id="parseable_data-3F-method" class="method-detail "> <a name="method-i-parseable_data-3F"></a> <div class="method-heading"> <span class="method-name">parseable_data?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Determine whether the request body contains data by checking the request <a href="Request.html#method-i-media_type">media_type</a> against registered parse-data media-types</p> <div class="method-source-code" id="parseable_data-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 182</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">parseable_data?</span> <span class="ruby-constant">PARSEABLE_DATA_MEDIA_TYPES</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">media_type</span>) <span class="ruby-keyword">end</span></pre> </div><!-- parseable_data-3F-source --> </div> </div><!-- parseable_data-3F-method --> <div id="patch-3F-method" class="method-detail "> <a name="method-i-patch-3F"></a> <div class="method-heading"> <span class="method-name">patch?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type PATCH</p> <div class="method-source-code" id="patch-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 131</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">patch?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-string">"PATCH"</span> <span class="ruby-keyword">end</span></pre> </div><!-- patch-3F-source --> </div> </div><!-- patch-3F-method --> <div id="path-method" class="method-detail "> <a name="method-i-path"></a> <div class="method-heading"> <span class="method-name">path</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="path-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 328</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">path</span> <span class="ruby-identifier">script_name</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">path_info</span> <span class="ruby-keyword">end</span></pre> </div><!-- path-source --> </div> </div><!-- path-method --> <div id="path_info-method" class="method-detail "> <a name="method-i-path_info"></a> <div class="method-heading"> <span class="method-name">path_info</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="path_info-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 22</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">path_info</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-constant">PATH_INFO</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">end</span></pre> </div><!-- path_info-source --> </div> </div><!-- path_info-method --> <div id="path_info-3D-method" class="method-detail "> <a name="method-i-path_info-3D"></a> <div class="method-heading"> <span class="method-name">path_info=</span><span class="method-args">(s)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="path_info-3D-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 112</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">path_info=</span>(<span class="ruby-identifier">s</span>); <span class="ruby-ivar">@env</span>[<span class="ruby-string">"PATH_INFO"</span>] = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">end</span></pre> </div><!-- path_info-3D-source --> </div> </div><!-- path_info-3D-method --> <div id="port-method" class="method-detail "> <a name="method-i-port"></a> <div class="method-heading"> <span class="method-name">port</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="port-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 92</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">port</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">port</span> = <span class="ruby-identifier">host_with_port</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/:/</span>)[<span class="ruby-value">1</span>] <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">port</span> = <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_X_FORWARDED_PORT'</span>] <span class="ruby-identifier">port</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@env</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-string">"HTTP_X_FORWARDED_HOST"</span>) <span class="ruby-constant">DEFAULT_PORTS</span>[<span class="ruby-identifier">scheme</span>] <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@env</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-string">"HTTP_X_FORWARDED_PROTO"</span>) <span class="ruby-constant">DEFAULT_PORTS</span>[<span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_X_FORWARDED_PROTO'</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">','</span>)[<span class="ruby-value">0</span>]] <span class="ruby-keyword">else</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"SERVER_PORT"</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div><!-- port-source --> </div> </div><!-- port-method --> <div id="post-3F-method" class="method-detail "> <a name="method-i-post-3F"></a> <div class="method-heading"> <span class="method-name">post?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type <a href="Request.html#method-i-POST">POST</a></p> <div class="method-source-code" id="post-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 134</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">post?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-string">"POST"</span> <span class="ruby-keyword">end</span></pre> </div><!-- post-3F-source --> </div> </div><!-- post-3F-method --> <div id="put-3F-method" class="method-detail "> <a name="method-i-put-3F"></a> <div class="method-heading"> <span class="method-name">put?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type PUT</p> <div class="method-source-code" id="put-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 137</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">put?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-string">"PUT"</span> <span class="ruby-keyword">end</span></pre> </div><!-- put-3F-source --> </div> </div><!-- put-3F-method --> <div id="query_string-method" class="method-detail "> <a name="method-i-query_string"></a> <div class="method-heading"> <span class="method-name">query_string</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="query_string-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 24</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">query_string</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-constant">QUERY_STRING</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">end</span></pre> </div><!-- query_string-source --> </div> </div><!-- query_string-method --> <div id="referer-method" class="method-detail "> <a name="method-i-referer"></a> <div class="method-heading"> <span class="method-name">referer</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>the referer of the client</p> <div class="method-source-code" id="referer-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 286</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">referer</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_REFERER'</span>] <span class="ruby-keyword">end</span></pre> </div><!-- referer-source --> </div> <div class="aliases"> Also aliased as: <a href="Request.html#method-i-referrer">referrer</a> </div> </div><!-- referer-method --> <div id="referrer-method" class="method-detail method-alias"> <a name="method-i-referrer"></a> <div class="method-heading"> <span class="method-name">referrer</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="Request.html#method-i-referer">referer</a> </div> </div><!-- referrer-method --> <div id="request_method-method" class="method-detail "> <a name="method-i-request_method"></a> <div class="method-heading"> <span class="method-name">request_method</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="request_method-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 23</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">request_method</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-string">"REQUEST_METHOD"</span>] <span class="ruby-keyword">end</span></pre> </div><!-- request_method-source --> </div> </div><!-- request_method-method --> <div id="scheme-method" class="method-detail "> <a name="method-i-scheme"></a> <div class="method-heading"> <span class="method-name">scheme</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="scheme-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 66</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">scheme</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTPS'</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'on'</span> <span class="ruby-string">'https'</span> <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_X_FORWARDED_SSL'</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'on'</span> <span class="ruby-string">'https'</span> <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_X_FORWARDED_SCHEME'</span>] <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_X_FORWARDED_SCHEME'</span>] <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_X_FORWARDED_PROTO'</span>] <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_X_FORWARDED_PROTO'</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">','</span>)[<span class="ruby-value">0</span>] <span class="ruby-keyword">else</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"rack.url_scheme"</span>] <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div><!-- scheme-source --> </div> </div><!-- scheme-method --> <div id="script_name-method" class="method-detail "> <a name="method-i-script_name"></a> <div class="method-heading"> <span class="method-name">script_name</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="script_name-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 21</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">script_name</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-constant">SCRIPT_NAME</span>].<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">end</span></pre> </div><!-- script_name-source --> </div> </div><!-- script_name-method --> <div id="script_name-3D-method" class="method-detail "> <a name="method-i-script_name-3D"></a> <div class="method-heading"> <span class="method-name">script_name=</span><span class="method-args">(s)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="script_name-3D-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 111</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">script_name=</span>(<span class="ruby-identifier">s</span>); <span class="ruby-ivar">@env</span>[<span class="ruby-string">"SCRIPT_NAME"</span>] = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">end</span></pre> </div><!-- script_name-3D-source --> </div> </div><!-- script_name-3D-method --> <div id="session-method" class="method-detail "> <a name="method-i-session"></a> <div class="method-heading"> <span class="method-name">session</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="session-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 32</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">session</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-string">'rack.session'</span>] <span class="ruby-operator">||=</span> {} <span class="ruby-keyword">end</span></pre> </div><!-- session-source --> </div> </div><!-- session-method --> <div id="session_options-method" class="method-detail "> <a name="method-i-session_options"></a> <div class="method-heading"> <span class="method-name">session_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="session_options-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 33</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">session_options</span>; <span class="ruby-ivar">@env</span>[<span class="ruby-string">'rack.session.options'</span>] <span class="ruby-operator">||=</span> {} <span class="ruby-keyword">end</span></pre> </div><!-- session_options-source --> </div> </div><!-- session_options-method --> <div id="ssl-3F-method" class="method-detail "> <a name="method-i-ssl-3F"></a> <div class="method-heading"> <span class="method-name">ssl?</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="ssl-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 80</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">ssl?</span> <span class="ruby-identifier">scheme</span> <span class="ruby-operator">==</span> <span class="ruby-string">'https'</span> <span class="ruby-keyword">end</span></pre> </div><!-- ssl-3F-source --> </div> </div><!-- ssl-3F-method --> <div id="trace-3F-method" class="method-detail "> <a name="method-i-trace-3F"></a> <div class="method-heading"> <span class="method-name">trace?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type TRACE</p> <div class="method-source-code" id="trace-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 140</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">trace?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-string">"TRACE"</span> <span class="ruby-keyword">end</span></pre> </div><!-- trace-3F-source --> </div> </div><!-- trace-3F-method --> <div id="trusted_proxy-3F-method" class="method-detail "> <a name="method-i-trusted_proxy-3F"></a> <div class="method-heading"> <span class="method-name">trusted_proxy?</span><span class="method-args">(ip)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="trusted_proxy-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 344</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">trusted_proxy?</span>(<span class="ruby-identifier">ip</span>) <span class="ruby-identifier">ip</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\A127\.0\.0\.1\Z|\A(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\.|\A::1\Z|\Afd[0-9a-f]{2}:.+|\Alocalhost\Z|\Aunix\Z|\Aunix:/</span> <span class="ruby-keyword">end</span></pre> </div><!-- trusted_proxy-3F-source --> </div> </div><!-- trusted_proxy-3F-method --> <div id="unlink-3F-method" class="method-detail "> <a name="method-i-unlink-3F"></a> <div class="method-heading"> <span class="method-name">unlink?</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Checks the HTTP request method (or verb) to see if it was of type UNLINK</p> <div class="method-source-code" id="unlink-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 143</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">unlink?</span>; <span class="ruby-identifier">request_method</span> <span class="ruby-operator">==</span> <span class="ruby-string">"UNLINK"</span> <span class="ruby-keyword">end</span></pre> </div><!-- unlink-3F-source --> </div> </div><!-- unlink-3F-method --> <div id="update_param-method" class="method-detail "> <a name="method-i-update_param"></a> <div class="method-heading"> <span class="method-name">update_param</span><span class="method-args">(k, v)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Destructively update a parameter, whether it's in <a href="Request.html#method-i-GET">GET</a> and/or <a href="Request.html#method-i-POST">POST</a>. Returns nil.</p> <p>The parameter is updated wherever it was previous defined, so <a href="Request.html#method-i-GET">GET</a>, <a href="Request.html#method-i-POST">POST</a>, or both. If it wasn't previously defined, it's inserted into <a href="Request.html#method-i-GET">GET</a>.</p> <p><a href="http://'rack.input'">env</a> is not touched.</p> <div class="method-source-code" id="update_param-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 240</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">update_param</span>(<span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span>) <span class="ruby-identifier">found</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-constant">GET</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">k</span>) <span class="ruby-identifier">found</span> = <span class="ruby-keyword">true</span> <span class="ruby-keyword">self</span>.<span class="ruby-constant">GET</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-constant">POST</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">k</span>) <span class="ruby-identifier">found</span> = <span class="ruby-keyword">true</span> <span class="ruby-keyword">self</span>.<span class="ruby-constant">POST</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">found</span> <span class="ruby-keyword">self</span>.<span class="ruby-constant">GET</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span> <span class="ruby-keyword">end</span> <span class="ruby-ivar">@params</span> = <span class="ruby-keyword">nil</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">end</span></pre> </div><!-- update_param-source --> </div> </div><!-- update_param-method --> <div id="url-method" class="method-detail "> <a name="method-i-url"></a> <div class="method-heading"> <span class="method-name">url</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Tries to return a remake of the original request URL as a string.</p> <div class="method-source-code" id="url-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 324</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">url</span> <span class="ruby-identifier">base_url</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">fullpath</span> <span class="ruby-keyword">end</span></pre> </div><!-- url-source --> </div> </div><!-- url-method --> <div id="user_agent-method" class="method-detail "> <a name="method-i-user_agent"></a> <div class="method-heading"> <span class="method-name">user_agent</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="user_agent-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 291</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">user_agent</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">'HTTP_USER_AGENT'</span>] <span class="ruby-keyword">end</span></pre> </div><!-- user_agent-source --> </div> </div><!-- user_agent-method --> <div id="values_at-method" class="method-detail "> <a name="method-i-values_at"></a> <div class="method-heading"> <span class="method-name">values_at</span><span class="method-args">(*keys)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>like Hash#values_at</p> <div class="method-source-code" id="values_at-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 281</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">values_at</span>(*<span class="ruby-identifier">keys</span>) <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">params</span>[<span class="ruby-identifier">key</span>] } <span class="ruby-keyword">end</span></pre> </div><!-- values_at-source --> </div> </div><!-- values_at-method --> <div id="xhr-3F-method" class="method-detail "> <a name="method-i-xhr-3F"></a> <div class="method-heading"> <span class="method-name">xhr?</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="xhr-3F-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 313</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">xhr?</span> <span class="ruby-ivar">@env</span>[<span class="ruby-string">"HTTP_X_REQUESTED_WITH"</span>] <span class="ruby-operator">==</span> <span class="ruby-string">"XMLHttpRequest"</span> <span class="ruby-keyword">end</span></pre> </div><!-- xhr-3F-source --> </div> </div><!-- xhr-3F-method --> </div><!-- public-instance-method-details --> <div id="protected-instance-method-details" class="method-section section"> <h3 class="section-header">Protected Instance Methods</h3> <div id="parse_http_accept_header-method" class="method-detail "> <a name="method-i-parse_http_accept_header"></a> <div class="method-heading"> <span class="method-name">parse_http_accept_header</span><span class="method-args">(header)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="parse_http_accept_header-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 378</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">parse_http_accept_header</span>(<span class="ruby-identifier">header</span>) <span class="ruby-identifier">header</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\s*,\s*/</span>).<span class="ruby-identifier">map</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">part</span><span class="ruby-operator">|</span> <span class="ruby-identifier">attribute</span>, <span class="ruby-identifier">parameters</span> = <span class="ruby-identifier">part</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\s*;\s*/</span>, <span class="ruby-value">2</span>) <span class="ruby-identifier">quality</span> = <span class="ruby-value">1.0</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">parameters</span> <span class="ruby-keyword">and</span> <span class="ruby-regexp">/\Aq=([\d.]+)/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">parameters</span> <span class="ruby-identifier">quality</span> = <span class="ruby-node">$1</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-keyword">end</span> [<span class="ruby-identifier">attribute</span>, <span class="ruby-identifier">quality</span>] <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div><!-- parse_http_accept_header-source --> </div> </div><!-- parse_http_accept_header-method --> <div id="parse_multipart-method" class="method-detail "> <a name="method-i-parse_multipart"></a> <div class="method-heading"> <span class="method-name">parse_multipart</span><span class="method-args">(env)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="parse_multipart-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 374</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">parse_multipart</span>(<span class="ruby-identifier">env</span>) <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Multipart</span>.<span class="ruby-identifier">parse_multipart</span>(<span class="ruby-identifier">env</span>) <span class="ruby-keyword">end</span></pre> </div><!-- parse_multipart-source --> </div> </div><!-- parse_multipart-method --> <div id="parse_query-method" class="method-detail "> <a name="method-i-parse_query"></a> <div class="method-heading"> <span class="method-name">parse_query</span><span class="method-args">(qs)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="parse_query-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 368</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">parse_query</span>(<span class="ruby-identifier">qs</span>) <span class="ruby-identifier">d</span> = <span class="ruby-string">'&'</span> <span class="ruby-identifier">qs</span>, <span class="ruby-identifier">d</span> = <span class="ruby-identifier">qs</span>[<span class="ruby-value">:query</span>], <span class="ruby-identifier">qs</span>[<span class="ruby-value">:separator</span>] <span class="ruby-keyword">if</span> <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">qs</span> <span class="ruby-constant">Utils</span>.<span class="ruby-identifier">parse_nested_query</span>(<span class="ruby-identifier">qs</span>, <span class="ruby-identifier">d</span>) <span class="ruby-keyword">end</span></pre> </div><!-- parse_query-source --> </div> </div><!-- parse_query-method --> <div id="reject_trusted_ip_addresses-method" class="method-detail "> <a name="method-i-reject_trusted_ip_addresses"></a> <div class="method-heading"> <span class="method-name">reject_trusted_ip_addresses</span><span class="method-args">(ip_addresses)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="reject_trusted_ip_addresses-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 364</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">reject_trusted_ip_addresses</span>(<span class="ruby-identifier">ip_addresses</span>) <span class="ruby-identifier">ip_addresses</span>.<span class="ruby-identifier">reject</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">ip</span><span class="ruby-operator">|</span> <span class="ruby-identifier">trusted_proxy?</span>(<span class="ruby-identifier">ip</span>) } <span class="ruby-keyword">end</span></pre> </div><!-- reject_trusted_ip_addresses-source --> </div> </div><!-- reject_trusted_ip_addresses-method --> <div id="split_ip_addresses-method" class="method-detail "> <a name="method-i-split_ip_addresses"></a> <div class="method-heading"> <span class="method-name">split_ip_addresses</span><span class="method-args">(ip_addresses)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="split_ip_addresses-source"> <pre> <span class="ruby-comment"># File lib/rack/request.rb, line 360</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">split_ip_addresses</span>(<span class="ruby-identifier">ip_addresses</span>) <span class="ruby-identifier">ip_addresses</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">ip_addresses</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/[,\s]+/</span>) <span class="ruby-operator">:</span> [] <span class="ruby-keyword">end</span></pre> </div><!-- split_ip_addresses-source --> </div> </div><!-- split_ip_addresses-method --> </div><!-- protected-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