Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / Dir.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: Dir</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">Dir</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../files/lib/mcollective/monkey_patches_rb.html">
59                 lib/mcollective/monkey_patches.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
82
83    </div>
84
85     <div id="method-list">
86       <h3 class="section-bar">Methods</h3>
87
88       <div class="name-list">
89       <a href="#M000011">mktmpdir</a>&nbsp;&nbsp;
90       <a href="#M000012">tmpdir</a>&nbsp;&nbsp;
91       </div>
92     </div>
93
94   </div>
95
96
97     <!-- if includes -->
98
99     <div id="section">
100
101
102
103
104
105       
106
107
108     <!-- if method_list -->
109     <div id="methods">
110       <h3 class="section-bar">Public Class methods</h3>
111
112       <div id="method-M000011" class="method-detail">
113         <a name="M000011"></a>
114
115         <div class="method-heading">
116           <a href="#M000011" class="method-signature">
117           <span class="method-name">mktmpdir</span><span class="method-args">(prefix_suffix=nil, tmpdir=nil) {|path| ...}</span>
118           </a>
119         </div>
120       
121         <div class="method-description">
122           <p><a class="source-toggle" href="#"
123             onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
124           <div class="method-source-code" id="M000011-source">
125 <pre>
126      <span class="ruby-comment cmt"># File lib/mcollective/monkey_patches.rb, line 72</span>
127  72:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">mktmpdir</span>(<span class="ruby-identifier">prefix_suffix</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">tmpdir</span>=<span class="ruby-keyword kw">nil</span>)
128  73:     <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">prefix_suffix</span>
129  74:     <span class="ruby-keyword kw">when</span> <span class="ruby-keyword kw">nil</span>
130  75:       <span class="ruby-identifier">prefix</span> = <span class="ruby-value str">&quot;d&quot;</span>
131  76:       <span class="ruby-identifier">suffix</span> = <span class="ruby-value str">&quot;&quot;</span>
132  77:     <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
133  78:       <span class="ruby-identifier">prefix</span> = <span class="ruby-identifier">prefix_suffix</span>
134  79:       <span class="ruby-identifier">suffix</span> = <span class="ruby-value str">&quot;&quot;</span>
135  80:     <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
136  81:       <span class="ruby-identifier">prefix</span> = <span class="ruby-identifier">prefix_suffix</span>[<span class="ruby-value">0</span>]
137  82:       <span class="ruby-identifier">suffix</span> = <span class="ruby-identifier">prefix_suffix</span>[<span class="ruby-value">1</span>]
138  83:     <span class="ruby-keyword kw">else</span>
139  84:       <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;unexpected prefix_suffix: #{prefix_suffix.inspect}&quot;</span>
140  85:     <span class="ruby-keyword kw">end</span>
141  86:     <span class="ruby-identifier">tmpdir</span> <span class="ruby-operator">||=</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">tmpdir</span>
142  87:     <span class="ruby-identifier">t</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y%m%d&quot;</span>)
143  88:     <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">nil</span>
144  89:     <span class="ruby-keyword kw">begin</span>
145  90:       <span class="ruby-identifier">path</span> = <span class="ruby-node">&quot;#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}&quot;</span>
146  91:       <span class="ruby-identifier">path</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;-#{n}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">n</span>
147  92:       <span class="ruby-identifier">path</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">suffix</span>
148  93:       <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span>(<span class="ruby-identifier">path</span>, <span class="ruby-value">0700</span>)
149  94:     <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">EEXIST</span>
150  95:       <span class="ruby-identifier">n</span> <span class="ruby-operator">||=</span> <span class="ruby-value">0</span>
151  96:       <span class="ruby-identifier">n</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
152  97:       <span class="ruby-keyword kw">retry</span>
153  98:     <span class="ruby-keyword kw">end</span>
154  99: 
155 100:     <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
156 101:       <span class="ruby-keyword kw">begin</span>
157 102:         <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">path</span>
158 103:       <span class="ruby-keyword kw">ensure</span>
159 104:         <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">remove_entry_secure</span> <span class="ruby-identifier">path</span>
160 105:       <span class="ruby-keyword kw">end</span>
161 106:     <span class="ruby-keyword kw">else</span>
162 107:       <span class="ruby-identifier">path</span>
163 108:     <span class="ruby-keyword kw">end</span>
164 109:   <span class="ruby-keyword kw">end</span>
165 </pre>
166           </div>
167         </div>
168       </div>
169
170       <div id="method-M000012" class="method-detail">
171         <a name="M000012"></a>
172
173         <div class="method-heading">
174           <a href="#M000012" class="method-signature">
175           <span class="method-name">tmpdir</span><span class="method-args">()</span>
176           </a>
177         </div>
178       
179         <div class="method-description">
180           <p><a class="source-toggle" href="#"
181             onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
182           <div class="method-source-code" id="M000012-source">
183 <pre>
184      <span class="ruby-comment cmt"># File lib/mcollective/monkey_patches.rb, line 111</span>
185 111:   <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">tmpdir</span>
186 112:     <span class="ruby-identifier">tmp</span> = <span class="ruby-value str">'.'</span>
187 113:     <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">dir</span> <span class="ruby-keyword kw">in</span> [<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TMPDIR'</span>], <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TMP'</span>], <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'TEMP'</span>], <span class="ruby-value str">'/tmp'</span>]
188 114:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">dir</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">stat</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">dir</span>) <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">stat</span>.<span class="ruby-identifier">directory?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">stat</span>.<span class="ruby-identifier">writable?</span>
189 115:         <span class="ruby-identifier">tmp</span> = <span class="ruby-identifier">dir</span>
190 116:         <span class="ruby-keyword kw">break</span>
191 117:       <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
192 118:     <span class="ruby-keyword kw">end</span>
193 119:     <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">tmp</span>)
194 120:   <span class="ruby-keyword kw">end</span>
195 </pre>
196           </div>
197         </div>
198       </div>
199
200
201     </div>
202
203
204   </div>
205
206
207 <div id="validator-badges">
208   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
209 </div>
210
211 </body>
212 </html>