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: Cascade.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>class Rack::Cascade - 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> <!-- 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-3C-3C">#<<</a> <li ><a href="#method-i-add">#add</a> <li ><a href="#method-i-call">#call</a> <li ><a href="#method-i-include-3F">#include?</a> </ul> </div> </div> </nav> <main role="main" aria-labelledby="class-Rack::Cascade"> <h1 id="class-Rack::Cascade" class="class"> class Rack::Cascade </h1> <section class="description"> <p><a href="Cascade.html"><code>Rack::Cascade</code></a> tries a request on several apps, and returns the first response that is not 404 or 405 (or in a list of configured status codes). If all applications tried return one of the configured status codes, return the last response.</p> </section> <section id="5Buntitled-5D" class="documentation-section"> <section class="constants-list"> <header> <h3>Constants</h3> </header> <dl> <dt id="NotFound">NotFound <dd><p>deprecated, no longer used</p> </dl> </section> <section class="attribute-method-details" class="method-section"> <header> <h3>Attributes</h3> </header> <div id="attribute-i-apps" class="method-detail"> <div class="method-heading attribute-method-heading"> <span class="method-name">apps</span><span class="attribute-access-type">[R]</span> </div> <div class="method-description"> <p>An array of applications to try in order.</p> </div> </div> </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">(apps, cascade_for = [404, 405])</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Set the apps to send requests to, and what statuses result in cascading. Arguments:</p> <p>apps: An enumerable of rack applications. cascade_for: The statuses to use cascading for. If a response is received</p> <pre>from an app, the next app is tried.</pre> <div class="method-source-code" id="new-source"> <pre><span class="ruby-comment"># File lib/rack/cascade.rb, line 22</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">apps</span>, <span class="ruby-identifier">cascade_for</span> = [<span class="ruby-value">404</span>, <span class="ruby-value">405</span>]) <span class="ruby-ivar">@apps</span> = [] <span class="ruby-identifier">apps</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">app</span><span class="ruby-operator">|</span> <span class="ruby-identifier">add</span> <span class="ruby-identifier">app</span> } <span class="ruby-ivar">@cascade_for</span> = {} [<span class="ruby-operator">*</span><span class="ruby-identifier">cascade_for</span>].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">status</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@cascade_for</span>[<span class="ruby-identifier">status</span>] = <span class="ruby-keyword">true</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-3C-3C" class="method-detail method-alias"> <div class="method-heading"> <span class="method-name"><<</span><span class="method-args">(app)</span> </div> <div class="method-description"> </div> <div class="aliases"> Alias for: <a href="Cascade.html#method-i-add">add</a> </div> </div> <div id="method-i-add" class="method-detail "> <div class="method-heading"> <span class="method-name">add</span><span class="method-args">(app)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Append an app to the list of apps to cascade. This app will be tried last.</p> <div class="method-source-code" id="add-source"> <pre><span class="ruby-comment"># File lib/rack/cascade.rb, line 57</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">add</span>(<span class="ruby-identifier">app</span>) <span class="ruby-ivar">@apps</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">app</span> <span class="ruby-keyword">end</span></pre> </div> </div> <div class="aliases"> Also aliased as: <a href="Cascade.html#method-i-3C-3C"><<</a> </div> </div> <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>Call each app in order. If the responses uses a status that requires cascading, try the next app. If all responses require cascading, return the response from the last app.</p> <div class="method-source-code" id="call-source"> <pre><span class="ruby-comment"># File lib/rack/cascade.rb, line 33</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">call</span>(<span class="ruby-identifier">env</span>) <span class="ruby-keyword">return</span> [<span class="ruby-value">404</span>, { <span class="ruby-constant">CONTENT_TYPE</span> <span class="ruby-operator">=></span> <span class="ruby-string">"text/plain"</span> }, []] <span class="ruby-keyword">if</span> <span class="ruby-ivar">@apps</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-identifier">result</span> = <span class="ruby-keyword">nil</span> <span class="ruby-identifier">last_body</span> = <span class="ruby-keyword">nil</span> <span class="ruby-ivar">@apps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">app</span><span class="ruby-operator">|</span> <span class="ruby-comment"># The SPEC says that the body must be closed after it has been iterated</span> <span class="ruby-comment"># by the server, or if it is replaced by a middleware action. Cascade</span> <span class="ruby-comment"># replaces the body each time a cascade happens. It is assumed that nil</span> <span class="ruby-comment"># does not respond to close, otherwise the previous application body</span> <span class="ruby-comment"># will be closed. The final application body will not be closed, as it</span> <span class="ruby-comment"># will be passed to the server as a result.</span> <span class="ruby-identifier">last_body</span>.<span class="ruby-identifier">close</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">last_body</span>.<span class="ruby-identifier">respond_to?</span> <span class="ruby-value">:close</span> <span class="ruby-identifier">result</span> = <span class="ruby-identifier">app</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">env</span>) <span class="ruby-keyword">return</span> <span class="ruby-identifier">result</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@cascade_for</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">result</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">to_i</span>) <span class="ruby-identifier">last_body</span> = <span class="ruby-identifier">result</span>[<span class="ruby-value">2</span>] <span class="ruby-keyword">end</span> <span class="ruby-identifier">result</span> <span class="ruby-keyword">end</span></pre> </div> </div> </div> <div id="method-i-include-3F" class="method-detail "> <div class="method-heading"> <span class="method-name">include?</span><span class="method-args">(app)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Whether the given app is one of the apps to cascade to.</p> <div class="method-source-code" id="include-3F-source"> <pre><span class="ruby-comment"># File lib/rack/cascade.rb, line 62</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">include?</span>(<span class="ruby-identifier">app</span>) <span class="ruby-ivar">@apps</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">app</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