Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / RPC / Progress.html
1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <!DOCTYPE html 
3      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7 <head>
8   <title>Class: MCollective::RPC::Progress</title>
9   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10   <meta http-equiv="Content-Script-Type" content="text/javascript" />
11   <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12   <script type="text/javascript">
13   // <![CDATA[
14
15   function popupCode( url ) {
16     window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17   }
18
19   function toggleCode( id ) {
20     if ( document.getElementById )
21       elem = document.getElementById( id );
22     else if ( document.all )
23       elem = eval( "document.all." + id );
24     else
25       return false;
26
27     elemStyle = elem.style;
28     
29     if ( elemStyle.display != "block" ) {
30       elemStyle.display = "block"
31     } else {
32       elemStyle.display = "none"
33     }
34
35     return true;
36   }
37   
38   // Make codeblocks hidden by default
39   document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40   
41   // ]]>
42   </script>
43
44 </head>
45 <body>
46
47
48
49     <div id="classHeader">
50         <table class="header-table">
51         <tr class="top-aligned-row">
52           <td><strong>Class</strong></td>
53           <td class="class-name-in-header">MCollective::RPC::Progress</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../../files/lib/mcollective/rpc/progress_rb.html">
59                 lib/mcollective/rpc/progress.rb
60                 </a>
61         <br />
62             </td>
63         </tr>
64
65         <tr class="top-aligned-row">
66             <td><strong>Parent:</strong></td>
67             <td>
68                 Object
69             </td>
70         </tr>
71         </table>
72     </div>
73   <!-- banner header -->
74
75   <div id="bodyContent">
76
77
78
79   <div id="contextContent">
80
81     <div id="description">
82       <p>
83 Class that shows a progress bar, currently only supports a twirling
84 progress bar.
85 </p>
86 <p>
87 You can specify a size for the progress bar if you want if you dont it will
88 use the helper functions to figure out terminal dimensions and draw an
89 appropriately sized bar
90 </p>
91 <p>
92 p = <a href="Progress.html#M000051">Progress.new</a> 100.times {|i| print
93 p.twirl(i+1, 100) + &quot;\r&quot;};puts
94 </p>
95 <pre>
96  * [ ==================================================&gt; ] 100 / 100
97 </pre>
98
99     </div>
100
101
102    </div>
103
104     <div id="method-list">
105       <h3 class="section-bar">Methods</h3>
106
107       <div class="name-list">
108       <a href="#M000051">new</a>&nbsp;&nbsp;
109       <a href="#M000052">twirl</a>&nbsp;&nbsp;
110       </div>
111     </div>
112
113   </div>
114
115
116     <!-- if includes -->
117
118     <div id="section">
119
120
121
122
123
124       
125
126
127     <!-- if method_list -->
128     <div id="methods">
129       <h3 class="section-bar">Public Class methods</h3>
130
131       <div id="method-M000051" class="method-detail">
132         <a name="M000051"></a>
133
134         <div class="method-heading">
135           <a href="#M000051" class="method-signature">
136           <span class="method-name">new</span><span class="method-args">(size=nil)</span>
137           </a>
138         </div>
139       
140         <div class="method-description">
141           <p><a class="source-toggle" href="#"
142             onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
143           <div class="method-source-code" id="M000051-source">
144 <pre>
145     <span class="ruby-comment cmt"># File lib/mcollective/rpc/progress.rb, line 15</span>
146 15:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">size</span>=<span class="ruby-keyword kw">nil</span>)
147 16:         <span class="ruby-ivar">@twirl</span> = [<span class="ruby-value str">'|'</span>, <span class="ruby-value str">'/'</span>, <span class="ruby-value str">'-'</span>, <span class="ruby-value str">&quot;\\&quot;</span>, <span class="ruby-value str">'|'</span>, <span class="ruby-value str">'/'</span>, <span class="ruby-value str">'-'</span>, <span class="ruby-value str">&quot;\\&quot;</span>]
148 17:         <span class="ruby-ivar">@twirldex</span> = <span class="ruby-value">0</span>
149 18: 
150 19:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">size</span>
151 20:           <span class="ruby-ivar">@size</span> = <span class="ruby-identifier">size</span>
152 21:         <span class="ruby-keyword kw">else</span>
153 22:           <span class="ruby-identifier">cols</span> = <span class="ruby-constant">Util</span>.<span class="ruby-identifier">terminal_dimensions</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">-</span> <span class="ruby-value">22</span>
154 23: 
155 24:           <span class="ruby-comment cmt"># Defaults back to old behavior if it</span>
156 25:           <span class="ruby-comment cmt"># couldn't figure out the size or if</span>
157 26:           <span class="ruby-comment cmt"># its more than 60 wide</span>
158 27:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cols</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">0</span>
159 28:             <span class="ruby-ivar">@size</span> = <span class="ruby-value">0</span>
160 29:           <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">cols</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">60</span>
161 30:             <span class="ruby-ivar">@size</span> = <span class="ruby-value">60</span>
162 31:           <span class="ruby-keyword kw">else</span>
163 32:             <span class="ruby-ivar">@size</span> = <span class="ruby-identifier">cols</span>
164 33:           <span class="ruby-keyword kw">end</span>
165 34:         <span class="ruby-keyword kw">end</span>
166 35:       <span class="ruby-keyword kw">end</span>
167 </pre>
168           </div>
169         </div>
170       </div>
171
172       <h3 class="section-bar">Public Instance methods</h3>
173
174       <div id="method-M000052" class="method-detail">
175         <a name="M000052"></a>
176
177         <div class="method-heading">
178           <a href="#M000052" class="method-signature">
179           <span class="method-name">twirl</span><span class="method-args">(current, total)</span>
180           </a>
181         </div>
182       
183         <div class="method-description">
184           <p><a class="source-toggle" href="#"
185             onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
186           <div class="method-source-code" id="M000052-source">
187 <pre>
188     <span class="ruby-comment cmt"># File lib/mcollective/rpc/progress.rb, line 37</span>
189 37:       <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">twirl</span>(<span class="ruby-identifier">current</span>, <span class="ruby-identifier">total</span>)
190 38:         <span class="ruby-comment cmt"># if the size is negative there is just not enough</span>
191 39:         <span class="ruby-comment cmt"># space on the terminal, return a simpler version</span>
192 40:         <span class="ruby-keyword kw">return</span> <span class="ruby-node">&quot;\r#{current} / #{total}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
193 41: 
194 42:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">total</span>
195 43:           <span class="ruby-identifier">txt</span> = <span class="ruby-value str">&quot;\r %s [ &quot;</span> <span class="ruby-operator">%</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:green</span>, <span class="ruby-value str">&quot;*&quot;</span>)
196 44:         <span class="ruby-keyword kw">else</span>
197 45:           <span class="ruby-identifier">txt</span> = <span class="ruby-value str">&quot;\r %s [ &quot;</span> <span class="ruby-operator">%</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:red</span>, <span class="ruby-ivar">@twirl</span>[<span class="ruby-ivar">@twirldex</span>])
198 46:         <span class="ruby-keyword kw">end</span>
199 47: 
200 48:         <span class="ruby-identifier">dashes</span> = ((<span class="ruby-identifier">current</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">total</span>) <span class="ruby-operator">*</span> <span class="ruby-ivar">@size</span>).<span class="ruby-identifier">round</span>
201 49: 
202 50:         <span class="ruby-identifier">dashes</span>.<span class="ruby-identifier">times</span> { <span class="ruby-identifier">txt</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;=&quot;</span> }
203 51:         <span class="ruby-identifier">txt</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&gt;&quot;</span>
204 52: 
205 53:         (<span class="ruby-ivar">@size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">dashes</span>).<span class="ruby-identifier">times</span> { <span class="ruby-identifier">txt</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; &quot;</span> }
206 54: 
207 55:         <span class="ruby-identifier">txt</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; ] #{current} / #{total}&quot;</span>
208 56: 
209 57:         <span class="ruby-ivar">@twirldex</span> <span class="ruby-operator">==</span> <span class="ruby-value">7</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@twirldex</span> = <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@twirldex</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
210 58: 
211 59:         <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">txt</span>
212 60:       <span class="ruby-keyword kw">end</span>
213 </pre>
214           </div>
215         </div>
216       </div>
217
218
219     </div>
220
221
222   </div>
223
224
225 <div id="validator-badges">
226   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
227 </div>
228
229 </body>
230 </html>