diff options
Diffstat (limited to 'classes/Net/SSH/Multi/ServerList.html')
-rw-r--r-- | classes/Net/SSH/Multi/ServerList.html | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/classes/Net/SSH/Multi/ServerList.html b/classes/Net/SSH/Multi/ServerList.html new file mode 100644 index 0000000..5c29cac --- /dev/null +++ b/classes/Net/SSH/Multi/ServerList.html @@ -0,0 +1,224 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html lang='en'> + <head> + <title>: Net::SSH::Multi::ServerList [Control multiple Net::SSH connections via a single interface.]</title> + <meta content='text/html; charset=utf-8' http-equiv='Content-Type'> + <link href='../../../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'> + <script type='text/javascript'> + //<![CDATA[ + function popupCode(url) { + window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400") + } + + function toggleCode(id) { + var code = document.getElementById(id) + + code.style.display = code.style.display != 'block' ? 'block' : 'none' + return true + } + + // Make codeblocks hidden by default + document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>') + //]]> + </script> + </head> + <body class='page'> + <div class='class' id='wrapper'> + <div class='header'> + <h1 class='name'> + <span class='type'>Class</span> + Net::SSH::Multi::ServerList + </h1> + <ol class='paths'> + <li> + <a href="../../../../files/lib/net/ssh/multi/server_list_rb.html">lib/net/ssh/multi/server_list.rb</a> + </li> + </ol> + <div class='parent'> + Parent: + <strong>Object</strong> + </div> + </div> + <div id='content'> + <div id='text'> + <div id='description'> + <p> + Encapsulates a list of server objects, both dynamic (<a + href="DynamicServer.html">Net::SSH::Multi::DynamicServer</a>) and static + (<a href="Server.html">Net::SSH::Multi::Server</a>). It attempts to make it + transparent whether a dynamic server set has been evaluated or not. Note + that a <a href="ServerList.html">ServerList</a> is NOT an Array, though it + is Enumerable. + </p> + </div> + <div id='method-list'> + <h2>Methods</h2> + <h3>public class</h3> + <ol> + <li><a href="#M000059">new</a></li> + </ol> + <h3>public instance</h3> + <ol> + <li><a href="#M000060">add</a></li> + <li><a href="#M000061">concat</a></li> + <li><a href="#M000062">each</a></li> + <li><a href="#M000064">flatten</a></li> + <li><a href="#M000063">select</a></li> + <li><a href="#M000065">to_ary</a></li> + </ol> + </div> + <div id='context'> + <div id='includes'> + <h2>Included modules</h2> + <ol> + <li>Enumerable</li> + </ol> + </div> + </div> + <div id='section'> + <div id='methods'> + <h2>Public class methods</h2> + <div class='method public-class' id='method-M000059'> + <a name='M000059'> </a> + <div class='synopsis'> + <span class='name'>new</span> + <span class='arguments'>(list=[])</span> + </div> + <div class='description'> + <p> + Create a new <a href="ServerList.html">ServerList</a> that wraps the given + server list. Duplicate entries will be discarded. + </p> + </div> + <div class='source'> + <a class='source-toggle' href='#' onclick="toggleCode('M000059-source'); return false"> + [show source] + </a> + <pre id='M000059-source'> <span class="ruby-comment cmt"># File lib/net/ssh/multi/server_list.rb, line 15</span>
15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">list</span>=[])
16: <span class="ruby-ivar">@list</span> = <span class="ruby-identifier">list</span>.<span class="ruby-identifier">uniq</span>
17: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + <h2>Public instance methods</h2> + <div class='method public-instance' id='method-M000060'> + <a name='M000060'> </a> + <div class='synopsis'> + <span class='name'>add</span> + <span class='arguments'>(server)</span> + </div> + <div class='description'> + <p> + Adds the given server to the list, and returns the argument. If an + identical server definition already exists in the collection, the argument + is <em>not</em> added, and the existing server record is returned instead. + </p> + </div> + <div class='source'> + <a class='source-toggle' href='#' onclick="toggleCode('M000060-source'); return false"> + [show source] + </a> + <pre id='M000060-source'> <span class="ruby-comment cmt"># File lib/net/ssh/multi/server_list.rb, line 23</span>
23: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-identifier">server</span>)
24: <span class="ruby-identifier">index</span> = <span class="ruby-ivar">@list</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">server</span>)
25: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span>
26: <span class="ruby-identifier">server</span> = <span class="ruby-ivar">@list</span>[<span class="ruby-identifier">index</span>]
27: <span class="ruby-keyword kw">else</span>
28: <span class="ruby-ivar">@list</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">server</span>)
29: <span class="ruby-keyword kw">end</span>
30: <span class="ruby-identifier">server</span>
31: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + <div class='method public-instance' id='method-M000061'> + <a name='M000061'> </a> + <div class='synopsis'> + <span class='name'>concat</span> + <span class='arguments'>(servers)</span> + </div> + <div class='description'> + <p> + Adds an array (or otherwise Enumerable list) of servers to this list, by + calling <a href="ServerList.html#M000060">add</a> for each argument. + Returns <tt>self</tt>. + </p> + </div> + <div class='source'> + <a class='source-toggle' href='#' onclick="toggleCode('M000061-source'); return false"> + [show source] + </a> + <pre id='M000061-source'> <span class="ruby-comment cmt"># File lib/net/ssh/multi/server_list.rb, line 35</span>
35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">concat</span>(<span class="ruby-identifier">servers</span>)
36: <span class="ruby-identifier">servers</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span> <span class="ruby-identifier">add</span>(<span class="ruby-identifier">server</span>) }
37: <span class="ruby-keyword kw">self</span>
38: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + <div class='method public-instance' id='method-M000062'> + <a name='M000062'> </a> + <div class='synopsis'> + <span class='name'>each</span> + <span class='arguments'>() {|server| ...}</span> + </div> + <div class='description'> + <p> + Iterates over each distinct server record in the collection. This will + correctly iterate over server records instantiated by a <a + href="DynamicServer.html">DynamicServer</a> as well, but only if the + dynamic server has been “evaluated” (see <a + href="DynamicServer.html#M000034">Net::SSH::Multi::DynamicServer#evaluate!</a>). + </p> + </div> + <div class='source'> + <a class='source-toggle' href='#' onclick="toggleCode('M000062-source'); return false"> + [show source] + </a> + <pre id='M000062-source'> <span class="ruby-comment cmt"># File lib/net/ssh/multi/server_list.rb, line 44</span>
44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
45: <span class="ruby-ivar">@list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
46: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">server</span>
47: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Server</span> <span class="ruby-keyword kw">then</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">server</span>
48: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">DynamicServer</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">server</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">item</span> }
49: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"server list contains non-server: #{server.class}"</span>
50: <span class="ruby-keyword kw">end</span>
51: <span class="ruby-keyword kw">end</span>
52: <span class="ruby-keyword kw">self</span>
53: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + <div class='method public-instance' id='method-M000064'> + <a name='M000064'> </a> + <div class='synopsis'> + <span class='name'>flatten</span> + <span class='arguments'>()</span> + </div> + <div class='description'> + <p> + Returns an array of all servers in the list, with dynamic server records + expanded. The result is an array of distinct server records (duplicates are + removed from the result). + </p> + </div> + <div class='source'> + <a class='source-toggle' href='#' onclick="toggleCode('M000064-source'); return false"> + [show source] + </a> + <pre id='M000064-source'> <span class="ruby-comment cmt"># File lib/net/ssh/multi/server_list.rb, line 65</span>
65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">flatten</span>
66: <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@list</span>.<span class="ruby-identifier">inject</span>([]) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">aggregator</span>, <span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
67: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">server</span>
68: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Server</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">aggregator</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">server</span>)
69: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">DynamicServer</span> <span class="ruby-keyword kw">then</span> <span class="ruby-identifier">aggregator</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">server</span>)
70: <span class="ruby-keyword kw">else</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"server list contains non-server: #{server.class}"</span>
71: <span class="ruby-keyword kw">end</span>
72: <span class="ruby-keyword kw">end</span>
73: 
74: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">uniq</span>
75: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + <div class='method public-instance' id='method-M000063'> + <a name='M000063'> </a> + <div class='synopsis'> + <span class='name'>select</span> + <span class='arguments'>() {|i| ...}</span> + </div> + <div class='description'> + <p> + Works exactly as Enumerable#select, but returns the result as a new <a + href="ServerList.html">ServerList</a> instance. + </p> + </div> + <div class='source'> + <a class='source-toggle' href='#' onclick="toggleCode('M000063-source'); return false"> + [show source] + </a> + <pre id='M000063-source'> <span class="ruby-comment cmt"># File lib/net/ssh/multi/server_list.rb, line 57</span>
57: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">select</span>
58: <span class="ruby-identifier">subset</span> = <span class="ruby-ivar">@list</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">i</span> }
59: <span class="ruby-constant">ServerList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">subset</span>)
60: <span class="ruby-keyword kw">end</span></pre> + </div> + </div> + <div class='method public-instance' id='method-M000065'> + <a name='M000065'> </a> + <div class='synopsis'> + <span class='name'>to_ary</span> + <span class='arguments'>()</span> + </div> + <div class='description'> + <p> + Alias for <a href="ServerList.html#M000064">flatten</a> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + <div id='footer-push'></div> + </div> + <div id='footer'> + <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a> + </div> + </body> +</html> |