X7ROOT File Manager
Current Path:
/opt/cpanel/ea-ruby27/root/usr/share/gems/doc/rack-2.2.22/rdoc/Rack
opt
/
cpanel
/
ea-ruby27
/
root
/
usr
/
share
/
gems
/
doc
/
rack-2.2.22
/
rdoc
/
Rack
/
??
..
??
Auth
??
Auth.html
(2.38 KB)
??
BodyProxy.html
(9.98 KB)
??
Builder.html
(38.08 KB)
??
Cascade.html
(12.24 KB)
??
Chunked
??
Chunked.html
(10.4 KB)
??
CommonLogger.html
(14.29 KB)
??
ConditionalGet.html
(15.24 KB)
??
Config.html
(5.86 KB)
??
ContentLength.html
(7.8 KB)
??
ContentType.html
(6.74 KB)
??
Deflater
??
Deflater.html
(16.41 KB)
??
Directory
??
Directory.html
(27.38 KB)
??
ETag.html
(15 KB)
??
Events
??
Events.html
(17.78 KB)
??
File.html
(25.36 KB)
??
Files
??
Files.html
(25.36 KB)
??
ForwardRequest.html
(6.74 KB)
??
Handler
??
Handler.html
(14.41 KB)
??
Head.html
(6.18 KB)
??
Lint
??
Lint.html
(4.01 KB)
??
Lobster.html
(7.83 KB)
??
Lock.html
(7.63 KB)
??
Logger.html
(5.77 KB)
??
MediaType.html
(9.96 KB)
??
MethodOverride.html
(11.56 KB)
??
Mime.html
(13.64 KB)
??
MockRequest
??
MockRequest.html
(29.98 KB)
??
MockResponse
??
MockResponse.html
(21.32 KB)
??
Multipart
??
Multipart.html
(11.13 KB)
??
NullLogger.html
(26.91 KB)
??
QueryParser
??
QueryParser.html
(34.35 KB)
??
Recursive.html
(10.01 KB)
??
RegexpExtensions.html
(3.93 KB)
??
Reloader
??
Reloader.html
(10.95 KB)
??
Request
??
Request.html
(9.89 KB)
??
Response
??
Response.html
(26.61 KB)
??
RewindableInput.html
(16.7 KB)
??
Runtime.html
(6.83 KB)
??
Sendfile.html
(22.71 KB)
??
Server
??
Server.html
(53 KB)
??
Session
??
Session.html
(2.61 KB)
??
ShowExceptions.html
(18.03 KB)
??
ShowStatus.html
(8.99 KB)
??
Static.html
(25.86 KB)
??
TempfileReaper.html
(6.39 KB)
??
URLMap.html
(16.28 KB)
??
Utils
??
Utils.html
(73.9 KB)
Editing: Chunked.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>class Rack::Chunked - rack-2.2.22 Documentation</title> <script type="text/javascript"> var rdoc_rel_prefix = "../"; var index_rel_prefix = "../"; </script> <script src="../js/navigation.js" defer></script> <script src="../js/search.js" defer></script> <script src="../js/search_index.js" defer></script> <script src="../js/searcher.js" defer></script> <script src="../js/darkfish.js" defer></script> <link href="../css/fonts.css" rel="stylesheet"> <link href="../css/rdoc.css" rel="stylesheet"> <body id="top" role="document" class="class"> <nav role="navigation"> <div id="project-navigation"> <div id="home-section" role="region" title="Quick navigation" class="nav-section"> <h2> <a href="../index.html" rel="home">Home</a> </h2> <div id="table-of-contents-navigation"> <a href="../table_of_contents.html#pages">Pages</a> <a href="../table_of_contents.html#classes">Classes</a> <a href="../table_of_contents.html#methods">Methods</a> </div> </div> <div id="search-section" role="search" class="project-section initially-hidden"> <form action="#" method="get" accept-charset="utf-8"> <div id="search-field-wrapper"> <input id="search-field" role="combobox" aria-label="Search" aria-autocomplete="list" aria-controls="search-results" type="text" name="search" placeholder="Search" spellcheck="false" title="Type to search, Up and Down to navigate, Enter to load"> </div> <ul id="search-results" aria-label="Search Results" aria-busy="false" aria-expanded="false" aria-atomic="false" class="initially-hidden"></ul> </form> </div> </div> <div id="class-metadata"> <div id="parent-class-section" class="nav-section"> <h3>Parent</h3> <p class="link">Object </div> <div id="includes-section" class="nav-section"> <h3>Included Modules</h3> <ul class="link-list"> <li><a class="include" href="Utils.html">Rack::Utils</a> </ul> </div> <!-- Method Quickref --> <div id="method-list-section" class="nav-section"> <h3>Methods</h3> <ul class="link-list" role="directory"> <li ><a href="#method-c-new">::new</a> <li ><a href="#method-i-call">#call</a> <li ><a href="#method-i-chunkable_version-3F">#chunkable_version?</a> </ul> </div> </div> </nav> <main role="main" aria-labelledby="class-Rack::Chunked"> <h1 id="class-Rack::Chunked" class="class"> class Rack::Chunked </h1> <section class="description"> <p>Middleware that applies chunked transfer encoding to response bodies when the response does not include a Content-Length header.</p> <p>This supports the Trailer response header to allow the use of trailing headers in the chunked encoding. However, using this requires you manually specify a response body that supports a <code>trailers</code> method. Example:</p> <pre class="ruby">[<span class="ruby-value">200</span>, { <span class="ruby-string">'Trailer'</span> <span class="ruby-operator">=></span> <span class="ruby-string">'Expires'</span>}, [<span class="ruby-string">"Hello"</span>, <span class="ruby-string">"World"</span>]] <span class="ruby-comment"># error raised</span> <span class="ruby-identifier">body</span> = [<span class="ruby-string">"Hello"</span>, <span class="ruby-string">"World"</span>] <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">body</span>.<span class="ruby-identifier">trailers</span> { <span class="ruby-string">'Expires'</span> <span class="ruby-operator">=></span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_s</span> } <span class="ruby-keyword">end</span> [<span class="ruby-value">200</span>, { <span class="ruby-string">'Trailer'</span> <span class="ruby-operator">=></span> <span class="ruby-string">'Expires'</span>}, <span class="ruby-identifier">body</span>] <span class="ruby-comment"># No exception raised</span> </pre> </section> <section id="5Buntitled-5D" class="documentation-section"> <section id="public-class-5Buntitled-5D-method-details" class="method-section"> <header> <h3>Public Class Methods</h3> </header> <div id="method-c-new" class="method-detail "> <div class="method-heading"> <span class="method-name">new</span><span class="method-args">(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/chunked.rb, line 78</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">app</span>) <span class="ruby-ivar">@app</span> = <span class="ruby-identifier">app</span> <span class="ruby-keyword">end</span></pre> </div> </div> </div> </section> <section id="public-instance-5Buntitled-5D-method-details" class="method-section"> <header> <h3>Public Instance Methods</h3> </header> <div id="method-i-call" class="method-detail "> <div class="method-heading"> <span class="method-name">call</span><span class="method-args">(env)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>If the rack app returns a response that should have a body, but does not have Content-Length or Transfer-Encoding headers, modify the response to use chunked Transfer-Encoding.</p> <div class="method-source-code" id="call-source"> <pre><span class="ruby-comment"># File lib/rack/chunked.rb, line 97</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">call</span>(<span class="ruby-identifier">env</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-identifier">headers</span> = <span class="ruby-constant">HeaderHash</span>[<span class="ruby-identifier">headers</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">chunkable_version?</span>(<span class="ruby-identifier">env</span>[<span class="ruby-constant">SERVER_PROTOCOL</span>]) <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-constant">STATUS_WITH_NO_ENTITY_BODY</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">status</span>.<span class="ruby-identifier">to_i</span>) <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">headers</span>[<span class="ruby-constant">CONTENT_LENGTH</span>] <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">headers</span>[<span class="ruby-constant">TRANSFER_ENCODING</span>] <span class="ruby-identifier">headers</span>[<span class="ruby-constant">TRANSFER_ENCODING</span>] = <span class="ruby-string">'chunked'</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">headers</span>[<span class="ruby-string">'Trailer'</span>] <span class="ruby-identifier">body</span> = <span class="ruby-constant">TrailerBody</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">body</span>) <span class="ruby-keyword">else</span> <span class="ruby-identifier">body</span> = <span class="ruby-constant">Body</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">body</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span> [<span class="ruby-identifier">status</span>, <span class="ruby-identifier">headers</span>, <span class="ruby-identifier">body</span>] <span class="ruby-keyword">end</span></pre> </div> </div> </div> <div id="method-i-chunkable_version-3F" class="method-detail "> <div class="method-heading"> <span class="method-name">chunkable_version?</span><span class="method-args">(ver)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Whether the HTTP version supports chunked encoding (HTTP 1.1 does).</p> <div class="method-source-code" id="chunkable_version-3F-source"> <pre><span class="ruby-comment"># File lib/rack/chunked.rb, line 83</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">chunkable_version?</span>(<span class="ruby-identifier">ver</span>) <span class="ruby-keyword">case</span> <span class="ruby-identifier">ver</span> <span class="ruby-comment"># pre-HTTP/1.0 (informally "HTTP/0.9") HTTP requests did not have</span> <span class="ruby-comment"># a version (nor response headers)</span> <span class="ruby-keyword">when</span> <span class="ruby-string">'HTTP/1.0'</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-string">'HTTP/0.9'</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">else</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> </div> </div> </section> </section> </main> <footer id="validator-badges" role="contentinfo"> <p><a href="https://validator.w3.org/check/referer">Validate</a> <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.2.1.1. <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>. </footer>
Upload File
Create Folder