mir 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/doc/Mir.html +353 -0
- data/doc/Mir/Application.html +1067 -0
- data/doc/Mir/Config.html +660 -0
- data/doc/Mir/Disk.html +211 -0
- data/doc/Mir/Disk/Amazon.html +1563 -0
- data/doc/Mir/Disk/IncompleteTransmission.html +116 -0
- data/doc/Mir/Disk/MultiPartFile.html +586 -0
- data/doc/Mir/Disk/RemoteFileNotFound.html +116 -0
- data/doc/Mir/Index.html +785 -0
- data/doc/Mir/Models.html +108 -0
- data/doc/Mir/Models/AppSetting.html +370 -0
- data/doc/Mir/Models/Resource.html +1140 -0
- data/doc/Mir/Options.html +297 -0
- data/doc/Mir/UndefinedConfigValue.html +116 -0
- data/doc/Mir/Utils.html +582 -0
- data/doc/_index.html +263 -0
- data/doc/class_list.html +47 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +53 -0
- data/doc/css/style.css +320 -0
- data/doc/file.README.html +134 -0
- data/doc/file_list.html +49 -0
- data/doc/frames.html +13 -0
- data/doc/index.html +134 -0
- data/doc/js/app.js +205 -0
- data/doc/js/full_list.js +150 -0
- data/doc/js/jquery.js +16 -0
- data/doc/method_list.html +590 -0
- data/doc/top-level-namespace.html +103 -0
- data/lib/mir/application.rb +92 -82
- data/lib/mir/config.rb +8 -6
- data/lib/mir/disk.rb +1 -0
- data/lib/mir/disk/amazon.rb +33 -8
- data/lib/mir/index.rb +24 -7
- data/lib/mir/logger.rb +5 -0
- data/lib/mir/models/resource.rb +5 -3
- data/lib/mir/utils.rb +9 -3
- data/lib/mir/version.rb +1 -1
- metadata +30 -1
data/.gitignore
CHANGED
data/doc/Mir.html
ADDED
@@ -0,0 +1,353 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Module: Mir
|
8
|
+
|
9
|
+
— Documentation by YARD 0.7.2
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
relpath = '';
|
19
|
+
if (relpath != '') relpath += '/';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
25
|
+
|
26
|
+
|
27
|
+
</head>
|
28
|
+
<body>
|
29
|
+
<script type="text/javascript" charset="utf-8">
|
30
|
+
if (window.top.frames.main) document.body.className = 'frames';
|
31
|
+
</script>
|
32
|
+
|
33
|
+
<div id="header">
|
34
|
+
<div id="menu">
|
35
|
+
|
36
|
+
<a href="_index.html">Index (M)</a> »
|
37
|
+
|
38
|
+
|
39
|
+
<span class="title">Mir</span>
|
40
|
+
|
41
|
+
|
42
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
<div id="search">
|
46
|
+
|
47
|
+
<a id="class_list_link" href="#">Class List</a>
|
48
|
+
|
49
|
+
<a id="method_list_link" href="#">Method List</a>
|
50
|
+
|
51
|
+
<a id="file_list_link" href="#">File List</a>
|
52
|
+
|
53
|
+
</div>
|
54
|
+
<div class="clear"></div>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<iframe id="search_frame"></iframe>
|
58
|
+
|
59
|
+
<div id="content"><h1>Module: Mir
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
</h1>
|
64
|
+
|
65
|
+
<dl class="box">
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
<dt class="r1 last">Defined in:</dt>
|
75
|
+
<dd class="r1 last">lib/mir/disk.rb<span class="defines">,<br />
|
76
|
+
lib/mir.rb,<br /> lib/mir/utils.rb,<br /> lib/mir/index.rb,<br /> lib/mir/config.rb,<br /> lib/mir/logger.rb,<br /> lib/mir/version.rb,<br /> lib/mir/options.rb,<br /> lib/mir/disk/amazon.rb,<br /> lib/mir/application.rb,<br /> lib/mir/models/resource.rb,<br /> lib/mir/models/app_setting.rb</span>
|
77
|
+
</dd>
|
78
|
+
|
79
|
+
</dl>
|
80
|
+
<div class="clear"></div>
|
81
|
+
|
82
|
+
<h2>Overview</h2><div class="docstring">
|
83
|
+
<div class="discussion">
|
84
|
+
<p>
|
85
|
+
Represents a local file asset
|
86
|
+
</p>
|
87
|
+
|
88
|
+
|
89
|
+
</div>
|
90
|
+
</div>
|
91
|
+
<div class="tags">
|
92
|
+
|
93
|
+
</div><h2>Defined Under Namespace</h2>
|
94
|
+
<p class="children">
|
95
|
+
|
96
|
+
|
97
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Mir/Disk.html" title="Mir::Disk (module)">Disk</a></span>, <span class='object_link'><a href="Mir/Models.html" title="Mir::Models (module)">Models</a></span>, <span class='object_link'><a href="Mir/Utils.html" title="Mir::Utils (module)">Utils</a></span>
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Mir/Application.html" title="Mir::Application (class)">Application</a></span>, <span class='object_link'><a href="Mir/Config.html" title="Mir::Config (class)">Config</a></span>, <span class='object_link'><a href="Mir/Index.html" title="Mir::Index (class)">Index</a></span>, <span class='object_link'><a href="Mir/Options.html" title="Mir::Options (class)">Options</a></span>, <span class='object_link'><a href="Mir/UndefinedConfigValue.html" title="Mir::UndefinedConfigValue (class)">UndefinedConfigValue</a></span>
|
102
|
+
|
103
|
+
|
104
|
+
</p>
|
105
|
+
|
106
|
+
<h2>Constant Summary</h2>
|
107
|
+
|
108
|
+
<dl class="constants">
|
109
|
+
|
110
|
+
<dt id="VERSION-constant" class="">VERSION =
|
111
|
+
|
112
|
+
</dt>
|
113
|
+
<dd><pre class="code"><span class='lbracket'>[</span><span class='int'>0</span><span class='comma'>,</span><span class='int'>1</span><span class='comma'>,</span><span class='int'>4</span><span class='rbracket'>]</span></pre></dd>
|
114
|
+
|
115
|
+
</dl>
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
<h2>
|
124
|
+
Class Method Summary
|
125
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
126
|
+
</h2>
|
127
|
+
|
128
|
+
<ul class="summary">
|
129
|
+
|
130
|
+
<li class="public ">
|
131
|
+
<span class="summary_signature">
|
132
|
+
|
133
|
+
<a href="#logger-class_method" title="logger (class method)">+ (Logger) <strong>logger</strong> </a>
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
</span>
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
<span class="summary_desc"><div class='inline'><p>
|
147
|
+
Returns the global logger instance.
|
148
|
+
</p>
|
149
|
+
</div></span>
|
150
|
+
|
151
|
+
</li>
|
152
|
+
|
153
|
+
|
154
|
+
<li class="public ">
|
155
|
+
<span class="summary_signature">
|
156
|
+
|
157
|
+
<a href="#logger%3D-class_method" title="logger= (class method)">+ (Object) <strong>logger=</strong>(logger) </a>
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
</span>
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
<span class="summary_desc"><div class='inline'><p>
|
171
|
+
Assigns a global logger.
|
172
|
+
</p>
|
173
|
+
</div></span>
|
174
|
+
|
175
|
+
</li>
|
176
|
+
|
177
|
+
|
178
|
+
<li class="public ">
|
179
|
+
<span class="summary_signature">
|
180
|
+
|
181
|
+
<a href="#version-class_method" title="version (class method)">+ (Object) <strong>version</strong> </a>
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
</span>
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
195
|
+
|
196
|
+
</li>
|
197
|
+
|
198
|
+
|
199
|
+
</ul>
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
<div id="class_method_details" class="method_details_list">
|
205
|
+
<h2>Class Method Details</h2>
|
206
|
+
|
207
|
+
|
208
|
+
<div class="method_details first">
|
209
|
+
<p class="signature first" id="logger-class_method">
|
210
|
+
|
211
|
+
+ (<tt>Logger</tt>) <strong>logger</strong>
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
</p><div class="docstring">
|
216
|
+
<div class="discussion">
|
217
|
+
<p>
|
218
|
+
Returns the global logger instance
|
219
|
+
</p>
|
220
|
+
|
221
|
+
|
222
|
+
</div>
|
223
|
+
</div>
|
224
|
+
<div class="tags">
|
225
|
+
<h3>Returns:</h3>
|
226
|
+
<ul class="return">
|
227
|
+
|
228
|
+
<li>
|
229
|
+
|
230
|
+
|
231
|
+
<span class='type'>(<tt>Logger</tt>)</span>
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
</li>
|
236
|
+
|
237
|
+
</ul>
|
238
|
+
|
239
|
+
</div><table class="source_code">
|
240
|
+
<tr>
|
241
|
+
<td>
|
242
|
+
<pre class="lines">
|
243
|
+
|
244
|
+
|
245
|
+
12
|
246
|
+
13
|
247
|
+
14</pre>
|
248
|
+
</td>
|
249
|
+
<td>
|
250
|
+
<pre class="code"><span class="info file"># File 'lib/mir/logger.rb', line 12</span>
|
251
|
+
|
252
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id logger'>logger</span>
|
253
|
+
<span class='cvar'>@@logger</span>
|
254
|
+
<span class='kw'>end</span></pre>
|
255
|
+
</td>
|
256
|
+
</tr>
|
257
|
+
</table>
|
258
|
+
</div>
|
259
|
+
|
260
|
+
<div class="method_details ">
|
261
|
+
<p class="signature " id="logger=-class_method">
|
262
|
+
|
263
|
+
+ (<tt>Object</tt>) <strong>logger=</strong>(logger)
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
</p><div class="docstring">
|
268
|
+
<div class="discussion">
|
269
|
+
<p>
|
270
|
+
Assigns a global logger
|
271
|
+
</p>
|
272
|
+
|
273
|
+
|
274
|
+
</div>
|
275
|
+
</div>
|
276
|
+
<div class="tags">
|
277
|
+
<h3>Parameters:</h3>
|
278
|
+
<ul class="param">
|
279
|
+
|
280
|
+
<li>
|
281
|
+
|
282
|
+
<span class='name'>logger</span>
|
283
|
+
|
284
|
+
|
285
|
+
<span class='type'>(<tt>Logger</tt>)</span>
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
</li>
|
290
|
+
|
291
|
+
</ul>
|
292
|
+
|
293
|
+
</div><table class="source_code">
|
294
|
+
<tr>
|
295
|
+
<td>
|
296
|
+
<pre class="lines">
|
297
|
+
|
298
|
+
|
299
|
+
6
|
300
|
+
7
|
301
|
+
8</pre>
|
302
|
+
</td>
|
303
|
+
<td>
|
304
|
+
<pre class="code"><span class="info file"># File 'lib/mir/logger.rb', line 6</span>
|
305
|
+
|
306
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id logger='>logger=</span><span class='lparen'>(</span><span class='id logger'>logger</span><span class='rparen'>)</span>
|
307
|
+
<span class='cvar'>@@logger</span> <span class='op'>=</span> <span class='id logger'>logger</span>
|
308
|
+
<span class='kw'>end</span></pre>
|
309
|
+
</td>
|
310
|
+
</tr>
|
311
|
+
</table>
|
312
|
+
</div>
|
313
|
+
|
314
|
+
<div class="method_details ">
|
315
|
+
<p class="signature " id="version-class_method">
|
316
|
+
|
317
|
+
+ (<tt>Object</tt>) <strong>version</strong>
|
318
|
+
|
319
|
+
|
320
|
+
|
321
|
+
</p><table class="source_code">
|
322
|
+
<tr>
|
323
|
+
<td>
|
324
|
+
<pre class="lines">
|
325
|
+
|
326
|
+
|
327
|
+
4
|
328
|
+
5
|
329
|
+
6</pre>
|
330
|
+
</td>
|
331
|
+
<td>
|
332
|
+
<pre class="code"><span class="info file"># File 'lib/mir/version.rb', line 4</span>
|
333
|
+
|
334
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id version'>version</span>
|
335
|
+
<span class='const'>VERSION</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>.</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
336
|
+
<span class='kw'>end</span></pre>
|
337
|
+
</td>
|
338
|
+
</tr>
|
339
|
+
</table>
|
340
|
+
</div>
|
341
|
+
|
342
|
+
</div>
|
343
|
+
|
344
|
+
</div>
|
345
|
+
|
346
|
+
<div id="footer">
|
347
|
+
Generated on Fri Sep 23 18:24:38 2011 by
|
348
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
349
|
+
0.7.2 (ruby-1.9.2).
|
350
|
+
</div>
|
351
|
+
|
352
|
+
</body>
|
353
|
+
</html>
|
@@ -0,0 +1,1067 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Class: Mir::Application
|
8
|
+
|
9
|
+
— Documentation by YARD 0.7.2
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
relpath = '..';
|
19
|
+
if (relpath != '') relpath += '/';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
25
|
+
|
26
|
+
|
27
|
+
</head>
|
28
|
+
<body>
|
29
|
+
<script type="text/javascript" charset="utf-8">
|
30
|
+
if (window.top.frames.main) document.body.className = 'frames';
|
31
|
+
</script>
|
32
|
+
|
33
|
+
<div id="header">
|
34
|
+
<div id="menu">
|
35
|
+
|
36
|
+
<a href="../_index.html">Index (A)</a> »
|
37
|
+
<span class='title'><span class='object_link'><a href="../Mir.html" title="Mir (module)">Mir</a></span></span>
|
38
|
+
»
|
39
|
+
<span class="title">Application</span>
|
40
|
+
|
41
|
+
|
42
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
<div id="search">
|
46
|
+
|
47
|
+
<a id="class_list_link" href="#">Class List</a>
|
48
|
+
|
49
|
+
<a id="method_list_link" href="#">Method List</a>
|
50
|
+
|
51
|
+
<a id="file_list_link" href="#">File List</a>
|
52
|
+
|
53
|
+
</div>
|
54
|
+
<div class="clear"></div>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<iframe id="search_frame"></iframe>
|
58
|
+
|
59
|
+
<div id="content"><h1>Class: Mir::Application
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
</h1>
|
64
|
+
|
65
|
+
<dl class="box">
|
66
|
+
|
67
|
+
<dt class="r1">Inherits:</dt>
|
68
|
+
<dd class="r1">
|
69
|
+
<span class="inheritName">Object</span>
|
70
|
+
|
71
|
+
<ul class="fullTree">
|
72
|
+
<li>Object</li>
|
73
|
+
|
74
|
+
<li class="next">Mir::Application</li>
|
75
|
+
|
76
|
+
</ul>
|
77
|
+
<a href="#" class="inheritanceTree">show all</a>
|
78
|
+
|
79
|
+
</dd>
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
<dt class="r2 last">Defined in:</dt>
|
90
|
+
<dd class="r2 last">lib/mir/application.rb</dd>
|
91
|
+
|
92
|
+
</dl>
|
93
|
+
<div class="clear"></div>
|
94
|
+
|
95
|
+
|
96
|
+
<h2>Constant Summary</h2>
|
97
|
+
|
98
|
+
<dl class="constants">
|
99
|
+
|
100
|
+
<dt id="DEFAULT_SETTINGS_FILE_NAME-constant" class="">DEFAULT_SETTINGS_FILE_NAME =
|
101
|
+
|
102
|
+
</dt>
|
103
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>mir_settings.yml</span><span class='tstring_end'>"</span></span></pre></dd>
|
104
|
+
|
105
|
+
<dt id="DEFAULT_BATCH_SIZE-constant" class="">DEFAULT_BATCH_SIZE =
|
106
|
+
|
107
|
+
</dt>
|
108
|
+
<dd><pre class="code"><span class='int'>100</span></pre></dd>
|
109
|
+
|
110
|
+
</dl>
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
<h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
|
115
|
+
<ul class="summary">
|
116
|
+
|
117
|
+
<li class="public ">
|
118
|
+
<span class="summary_signature">
|
119
|
+
|
120
|
+
<a href="#disk-instance_method" title="#disk (instance method)">- (Object) <strong>disk</strong> </a>
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
</span>
|
125
|
+
|
126
|
+
|
127
|
+
<span class="note title readonly">readonly</span>
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
<span class="summary_desc"><div class='inline'><p>
|
137
|
+
Returns the value of attribute disk.
|
138
|
+
</p>
|
139
|
+
</div></span>
|
140
|
+
|
141
|
+
</li>
|
142
|
+
|
143
|
+
|
144
|
+
<li class="public ">
|
145
|
+
<span class="summary_signature">
|
146
|
+
|
147
|
+
<a href="#index-instance_method" title="#index (instance method)">- (Object) <strong>index</strong> </a>
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
</span>
|
152
|
+
|
153
|
+
|
154
|
+
<span class="note title readonly">readonly</span>
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
<span class="summary_desc"><div class='inline'><p>
|
164
|
+
Returns the value of attribute index.
|
165
|
+
</p>
|
166
|
+
</div></span>
|
167
|
+
|
168
|
+
</li>
|
169
|
+
|
170
|
+
|
171
|
+
<li class="public ">
|
172
|
+
<span class="summary_signature">
|
173
|
+
|
174
|
+
<a href="#options-instance_method" title="#options (instance method)">- (Object) <strong>options</strong> </a>
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
</span>
|
179
|
+
|
180
|
+
|
181
|
+
<span class="note title readonly">readonly</span>
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
<span class="summary_desc"><div class='inline'><p>
|
191
|
+
Returns the value of attribute options.
|
192
|
+
</p>
|
193
|
+
</div></span>
|
194
|
+
|
195
|
+
</li>
|
196
|
+
|
197
|
+
|
198
|
+
</ul>
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
<h2>
|
205
|
+
Class Method Summary
|
206
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
207
|
+
</h2>
|
208
|
+
|
209
|
+
<ul class="summary">
|
210
|
+
|
211
|
+
<li class="public ">
|
212
|
+
<span class="summary_signature">
|
213
|
+
|
214
|
+
<a href="#config-class_method" title="config (class method)">+ (Mir::Config) <strong>config</strong> </a>
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
</span>
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
<span class="summary_desc"><div class='inline'><p>
|
228
|
+
Returns a global configuration instance.
|
229
|
+
</p>
|
230
|
+
</div></span>
|
231
|
+
|
232
|
+
</li>
|
233
|
+
|
234
|
+
|
235
|
+
<li class="public ">
|
236
|
+
<span class="summary_signature">
|
237
|
+
|
238
|
+
<a href="#start-class_method" title="start (class method)">+ (void) <strong>start</strong> </a>
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
</span>
|
243
|
+
|
244
|
+
|
245
|
+
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
<span class="summary_desc"><div class='inline'><p>
|
252
|
+
Creates a new Mir instance and starts the main execution thread.
|
253
|
+
</p>
|
254
|
+
</div></span>
|
255
|
+
|
256
|
+
</li>
|
257
|
+
|
258
|
+
|
259
|
+
</ul>
|
260
|
+
|
261
|
+
<h2>
|
262
|
+
Instance Method Summary
|
263
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
264
|
+
</h2>
|
265
|
+
|
266
|
+
<ul class="summary">
|
267
|
+
|
268
|
+
<li class="public ">
|
269
|
+
<span class="summary_signature">
|
270
|
+
|
271
|
+
<a href="#config-instance_method" title="#config (instance method)">- (Object) <strong>config</strong> </a>
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
</span>
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
<span class="summary_desc"><div class='inline'><p>
|
285
|
+
Alias for +config.
|
286
|
+
</p>
|
287
|
+
</div></span>
|
288
|
+
|
289
|
+
</li>
|
290
|
+
|
291
|
+
|
292
|
+
<li class="public ">
|
293
|
+
<span class="summary_signature">
|
294
|
+
|
295
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Mir::Application) <strong>initialize</strong> </a>
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
</span>
|
300
|
+
|
301
|
+
<span class="note title constructor">constructor</span>
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
|
310
|
+
<span class="summary_desc"><div class='inline'><p>
|
311
|
+
Creates a new Mir instance.
|
312
|
+
</p>
|
313
|
+
</div></span>
|
314
|
+
|
315
|
+
</li>
|
316
|
+
|
317
|
+
|
318
|
+
<li class="public ">
|
319
|
+
<span class="summary_signature">
|
320
|
+
|
321
|
+
<a href="#pull-instance_method" title="#pull (instance method)">- (void) <strong>pull</strong>(target) </a>
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
</span>
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
<span class="summary_desc"><div class='inline'><p>
|
335
|
+
Copy the remote disk contents into the specified directory.
|
336
|
+
</p>
|
337
|
+
</div></span>
|
338
|
+
|
339
|
+
</li>
|
340
|
+
|
341
|
+
|
342
|
+
<li class="public ">
|
343
|
+
<span class="summary_signature">
|
344
|
+
|
345
|
+
<a href="#push-instance_method" title="#push (instance method)">- (void) <strong>push</strong>(target) </a>
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
</span>
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
<span class="summary_desc"><div class='inline'><p>
|
359
|
+
Synchronize the target directory to the remote disk.
|
360
|
+
</p>
|
361
|
+
</div></span>
|
362
|
+
|
363
|
+
</li>
|
364
|
+
|
365
|
+
|
366
|
+
<li class="public ">
|
367
|
+
<span class="summary_signature">
|
368
|
+
|
369
|
+
<a href="#start-instance_method" title="#start (instance method)">- (void) <strong>start</strong> </a>
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
</span>
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
<span class="summary_desc"><div class='inline'><p>
|
383
|
+
Begins the synchronization operation after initializing the file index and
|
384
|
+
remote storage container.
|
385
|
+
</p>
|
386
|
+
</div></span>
|
387
|
+
|
388
|
+
</li>
|
389
|
+
|
390
|
+
|
391
|
+
</ul>
|
392
|
+
|
393
|
+
|
394
|
+
<div id="constructor_details" class="method_details_list">
|
395
|
+
<h2>Constructor Details</h2>
|
396
|
+
|
397
|
+
<div class="method_details first">
|
398
|
+
<p class="signature first" id="initialize-instance_method">
|
399
|
+
|
400
|
+
- (<tt><span class='object_link'><a href="" title="Mir::Application (class)">Mir::Application</a></span></tt>) <strong>initialize</strong>
|
401
|
+
|
402
|
+
|
403
|
+
|
404
|
+
</p><div class="docstring">
|
405
|
+
<div class="discussion">
|
406
|
+
<p>
|
407
|
+
Creates a new Mir instance. Parses any command line arguments provided to
|
408
|
+
the application
|
409
|
+
</p>
|
410
|
+
|
411
|
+
|
412
|
+
</div>
|
413
|
+
</div>
|
414
|
+
<div class="tags">
|
415
|
+
|
416
|
+
</div><table class="source_code">
|
417
|
+
<tr>
|
418
|
+
<td>
|
419
|
+
<pre class="lines">
|
420
|
+
|
421
|
+
|
422
|
+
22
|
423
|
+
23
|
424
|
+
24
|
425
|
+
25
|
426
|
+
26
|
427
|
+
27
|
428
|
+
28
|
429
|
+
29
|
430
|
+
30</pre>
|
431
|
+
</td>
|
432
|
+
<td>
|
433
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 22</span>
|
434
|
+
|
435
|
+
<span class='kw'>def</span> <span class='id initialize'>initialize</span>
|
436
|
+
<span class='ivar'>@options</span> <span class='op'>=</span> <span class='const'>Mir</span><span class='op'>::</span><span class='const'>Options</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='const'>ARGV</span><span class='rparen'>)</span>
|
437
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span> <span class='op'>=</span> <span class='const'>Logger</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id options'>options</span><span class='period'>.</span><span class='id log_destination'>log_destination</span><span class='rparen'>)</span>
|
438
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id level'>level</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id options'>options</span><span class='period'>.</span><span class='id debug'>debug</span>
|
439
|
+
<span class='const'>Logger</span><span class='op'>::</span><span class='const'>DEBUG</span>
|
440
|
+
<span class='kw'>else</span>
|
441
|
+
<span class='const'>Logger</span><span class='op'>::</span><span class='const'>ERROR</span>
|
442
|
+
<span class='kw'>end</span>
|
443
|
+
<span class='kw'>end</span></pre>
|
444
|
+
</td>
|
445
|
+
</tr>
|
446
|
+
</table>
|
447
|
+
</div>
|
448
|
+
|
449
|
+
</div>
|
450
|
+
|
451
|
+
<div id="instance_attr_details" class="attr_details">
|
452
|
+
<h2>Instance Attribute Details</h2>
|
453
|
+
|
454
|
+
|
455
|
+
<span id=""></span>
|
456
|
+
<span id="disk-instance_method"></span>
|
457
|
+
<div class="method_details first">
|
458
|
+
<p class="signature first" id="disk-instance_method">
|
459
|
+
|
460
|
+
- (<tt>Object</tt>) <strong>disk</strong> <span class="extras">(readonly)</span>
|
461
|
+
|
462
|
+
|
463
|
+
|
464
|
+
</p><div class="docstring">
|
465
|
+
<div class="discussion">
|
466
|
+
<p>
|
467
|
+
Returns the value of attribute disk
|
468
|
+
</p>
|
469
|
+
|
470
|
+
|
471
|
+
</div>
|
472
|
+
</div>
|
473
|
+
<div class="tags">
|
474
|
+
|
475
|
+
</div><table class="source_code">
|
476
|
+
<tr>
|
477
|
+
<td>
|
478
|
+
<pre class="lines">
|
479
|
+
|
480
|
+
|
481
|
+
18
|
482
|
+
19
|
483
|
+
20</pre>
|
484
|
+
</td>
|
485
|
+
<td>
|
486
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 18</span>
|
487
|
+
|
488
|
+
<span class='kw'>def</span> <span class='id disk'>disk</span>
|
489
|
+
<span class='ivar'>@disk</span>
|
490
|
+
<span class='kw'>end</span></pre>
|
491
|
+
</td>
|
492
|
+
</tr>
|
493
|
+
</table>
|
494
|
+
</div>
|
495
|
+
|
496
|
+
|
497
|
+
<span id=""></span>
|
498
|
+
<span id="index-instance_method"></span>
|
499
|
+
<div class="method_details ">
|
500
|
+
<p class="signature " id="index-instance_method">
|
501
|
+
|
502
|
+
- (<tt>Object</tt>) <strong>index</strong> <span class="extras">(readonly)</span>
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
</p><div class="docstring">
|
507
|
+
<div class="discussion">
|
508
|
+
<p>
|
509
|
+
Returns the value of attribute index
|
510
|
+
</p>
|
511
|
+
|
512
|
+
|
513
|
+
</div>
|
514
|
+
</div>
|
515
|
+
<div class="tags">
|
516
|
+
|
517
|
+
</div><table class="source_code">
|
518
|
+
<tr>
|
519
|
+
<td>
|
520
|
+
<pre class="lines">
|
521
|
+
|
522
|
+
|
523
|
+
18
|
524
|
+
19
|
525
|
+
20</pre>
|
526
|
+
</td>
|
527
|
+
<td>
|
528
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 18</span>
|
529
|
+
|
530
|
+
<span class='kw'>def</span> <span class='id index'>index</span>
|
531
|
+
<span class='ivar'>@index</span>
|
532
|
+
<span class='kw'>end</span></pre>
|
533
|
+
</td>
|
534
|
+
</tr>
|
535
|
+
</table>
|
536
|
+
</div>
|
537
|
+
|
538
|
+
|
539
|
+
<span id=""></span>
|
540
|
+
<span id="options-instance_method"></span>
|
541
|
+
<div class="method_details ">
|
542
|
+
<p class="signature " id="options-instance_method">
|
543
|
+
|
544
|
+
- (<tt>Object</tt>) <strong>options</strong> <span class="extras">(readonly)</span>
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
</p><div class="docstring">
|
549
|
+
<div class="discussion">
|
550
|
+
<p>
|
551
|
+
Returns the value of attribute options
|
552
|
+
</p>
|
553
|
+
|
554
|
+
|
555
|
+
</div>
|
556
|
+
</div>
|
557
|
+
<div class="tags">
|
558
|
+
|
559
|
+
</div><table class="source_code">
|
560
|
+
<tr>
|
561
|
+
<td>
|
562
|
+
<pre class="lines">
|
563
|
+
|
564
|
+
|
565
|
+
18
|
566
|
+
19
|
567
|
+
20</pre>
|
568
|
+
</td>
|
569
|
+
<td>
|
570
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 18</span>
|
571
|
+
|
572
|
+
<span class='kw'>def</span> <span class='id options'>options</span>
|
573
|
+
<span class='ivar'>@options</span>
|
574
|
+
<span class='kw'>end</span></pre>
|
575
|
+
</td>
|
576
|
+
</tr>
|
577
|
+
</table>
|
578
|
+
</div>
|
579
|
+
|
580
|
+
</div>
|
581
|
+
|
582
|
+
|
583
|
+
<div id="class_method_details" class="method_details_list">
|
584
|
+
<h2>Class Method Details</h2>
|
585
|
+
|
586
|
+
|
587
|
+
<div class="method_details first">
|
588
|
+
<p class="signature first" id="config-class_method">
|
589
|
+
|
590
|
+
+ (<tt><span class='object_link'><a href="Config.html" title="Mir::Config (class)">Mir::Config</a></span></tt>) <strong>config</strong>
|
591
|
+
|
592
|
+
|
593
|
+
|
594
|
+
</p><div class="docstring">
|
595
|
+
<div class="discussion">
|
596
|
+
<p>
|
597
|
+
Returns a global configuration instance
|
598
|
+
</p>
|
599
|
+
|
600
|
+
|
601
|
+
</div>
|
602
|
+
</div>
|
603
|
+
<div class="tags">
|
604
|
+
<h3>Returns:</h3>
|
605
|
+
<ul class="return">
|
606
|
+
|
607
|
+
<li>
|
608
|
+
|
609
|
+
|
610
|
+
<span class='type'>(<tt><span class='object_link'><a href="Config.html" title="Mir::Config (class)">Mir::Config</a></span></tt>)</span>
|
611
|
+
|
612
|
+
|
613
|
+
|
614
|
+
</li>
|
615
|
+
|
616
|
+
</ul>
|
617
|
+
|
618
|
+
</div><table class="source_code">
|
619
|
+
<tr>
|
620
|
+
<td>
|
621
|
+
<pre class="lines">
|
622
|
+
|
623
|
+
|
624
|
+
61
|
625
|
+
62
|
626
|
+
63</pre>
|
627
|
+
</td>
|
628
|
+
<td>
|
629
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 61</span>
|
630
|
+
|
631
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id config'>config</span>
|
632
|
+
<span class='cvar'>@@config</span>
|
633
|
+
<span class='kw'>end</span></pre>
|
634
|
+
</td>
|
635
|
+
</tr>
|
636
|
+
</table>
|
637
|
+
</div>
|
638
|
+
|
639
|
+
<div class="method_details ">
|
640
|
+
<p class="signature " id="start-class_method">
|
641
|
+
|
642
|
+
+ (<tt>void</tt>) <strong>start</strong>
|
643
|
+
|
644
|
+
|
645
|
+
|
646
|
+
</p><div class="docstring">
|
647
|
+
<div class="discussion">
|
648
|
+
<p class="note returns_void">This method returns an undefined value.</p><p>
|
649
|
+
Creates a new Mir instance and starts the main execution thread
|
650
|
+
</p>
|
651
|
+
|
652
|
+
|
653
|
+
</div>
|
654
|
+
</div>
|
655
|
+
<div class="tags">
|
656
|
+
|
657
|
+
</div><table class="source_code">
|
658
|
+
<tr>
|
659
|
+
<td>
|
660
|
+
<pre class="lines">
|
661
|
+
|
662
|
+
|
663
|
+
14
|
664
|
+
15
|
665
|
+
16</pre>
|
666
|
+
</td>
|
667
|
+
<td>
|
668
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 14</span>
|
669
|
+
|
670
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id start'>start</span>
|
671
|
+
<span class='id new'>new</span><span class='period'>.</span><span class='id start'>start</span>
|
672
|
+
<span class='kw'>end</span></pre>
|
673
|
+
</td>
|
674
|
+
</tr>
|
675
|
+
</table>
|
676
|
+
</div>
|
677
|
+
|
678
|
+
</div>
|
679
|
+
|
680
|
+
<div id="instance_method_details" class="method_details_list">
|
681
|
+
<h2>Instance Method Details</h2>
|
682
|
+
|
683
|
+
|
684
|
+
<div class="method_details first">
|
685
|
+
<p class="signature first" id="config-instance_method">
|
686
|
+
|
687
|
+
- (<tt>Object</tt>) <strong>config</strong>
|
688
|
+
|
689
|
+
|
690
|
+
|
691
|
+
</p><div class="docstring">
|
692
|
+
<div class="discussion">
|
693
|
+
<p>
|
694
|
+
Alias for +config
|
695
|
+
</p>
|
696
|
+
|
697
|
+
|
698
|
+
</div>
|
699
|
+
</div>
|
700
|
+
<div class="tags">
|
701
|
+
|
702
|
+
</div><table class="source_code">
|
703
|
+
<tr>
|
704
|
+
<td>
|
705
|
+
<pre class="lines">
|
706
|
+
|
707
|
+
|
708
|
+
67
|
709
|
+
68
|
710
|
+
69</pre>
|
711
|
+
</td>
|
712
|
+
<td>
|
713
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 67</span>
|
714
|
+
|
715
|
+
<span class='kw'>def</span> <span class='id config'>config</span>
|
716
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id config'>config</span>
|
717
|
+
<span class='kw'>end</span></pre>
|
718
|
+
</td>
|
719
|
+
</tr>
|
720
|
+
</table>
|
721
|
+
</div>
|
722
|
+
|
723
|
+
<div class="method_details ">
|
724
|
+
<p class="signature " id="pull-instance_method">
|
725
|
+
|
726
|
+
- (<tt>void</tt>) <strong>pull</strong>(target)
|
727
|
+
|
728
|
+
|
729
|
+
|
730
|
+
</p><div class="docstring">
|
731
|
+
<div class="discussion">
|
732
|
+
<p class="note returns_void">This method returns an undefined value.</p><p>
|
733
|
+
Copy the remote disk contents into the specified directory
|
734
|
+
</p>
|
735
|
+
|
736
|
+
|
737
|
+
</div>
|
738
|
+
</div>
|
739
|
+
<div class="tags">
|
740
|
+
<h3>Parameters:</h3>
|
741
|
+
<ul class="param">
|
742
|
+
|
743
|
+
<li>
|
744
|
+
|
745
|
+
<span class='name'>target</span>
|
746
|
+
|
747
|
+
|
748
|
+
<span class='type'>(<tt>String</tt>)</span>
|
749
|
+
|
750
|
+
|
751
|
+
|
752
|
+
—
|
753
|
+
<div class='inline'><p>
|
754
|
+
the absolute path to the destination of the S3 disk contents
|
755
|
+
</p>
|
756
|
+
</div>
|
757
|
+
|
758
|
+
</li>
|
759
|
+
|
760
|
+
</ul>
|
761
|
+
|
762
|
+
</div><table class="source_code">
|
763
|
+
<tr>
|
764
|
+
<td>
|
765
|
+
<pre class="lines">
|
766
|
+
|
767
|
+
|
768
|
+
107
|
769
|
+
108
|
770
|
+
109
|
771
|
+
110
|
772
|
+
111
|
773
|
+
112
|
774
|
+
113
|
775
|
+
114
|
776
|
+
115
|
777
|
+
116
|
778
|
+
117
|
779
|
+
118
|
780
|
+
119
|
781
|
+
120
|
782
|
+
121
|
783
|
+
122
|
784
|
+
123
|
785
|
+
124
|
786
|
+
125
|
787
|
+
126
|
788
|
+
127
|
789
|
+
128
|
790
|
+
129
|
791
|
+
130
|
792
|
+
131
|
793
|
+
132
|
794
|
+
133
|
795
|
+
134
|
796
|
+
135
|
797
|
+
136
|
798
|
+
137
|
799
|
+
138
|
800
|
+
139
|
801
|
+
140
|
802
|
+
141
|
803
|
+
142
|
804
|
+
143
|
805
|
+
144
|
806
|
+
145
|
807
|
+
146
|
808
|
+
147
|
809
|
+
148
|
810
|
+
149
|
811
|
+
150
|
812
|
+
151
|
813
|
+
152
|
814
|
+
153
|
815
|
+
154
|
816
|
+
155</pre>
|
817
|
+
</td>
|
818
|
+
<td>
|
819
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 107</span>
|
820
|
+
|
821
|
+
<span class='kw'>def</span> <span class='id pull'>pull</span><span class='lparen'>(</span><span class='id target'>target</span><span class='rparen'>)</span>
|
822
|
+
<span class='id write_dir'>write_dir</span> <span class='op'>=</span> <span class='const'>Utils</span><span class='period'>.</span><span class='id try_create_dir'>try_create_dir</span><span class='lparen'>(</span><span class='id target'>target</span><span class='rparen'>)</span>
|
823
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id info'>info</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Copying remote disk to </span><span class='embexpr_beg'>#{</span><span class='id write_dir'>write_dir</span><span class='period'>.</span><span class='id path'>path</span><span class='rbrace'>}</span><span class='tstring_content'> using </span><span class='embexpr_beg'>#{</span><span class='id config'>config</span><span class='period'>.</span><span class='id max_threads'>max_threads</span><span class='rbrace'>}</span><span class='tstring_content'> threads</span><span class='tstring_end'>"</span></span>
|
824
|
+
<span class='id failed_downloads'>failed_downloads</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
825
|
+
|
826
|
+
<span class='id time'>time</span> <span class='op'>=</span> <span class='const'>Benchmark</span><span class='period'>.</span><span class='id measure'>measure</span> <span class='kw'>do</span>
|
827
|
+
<span class='id queue'>queue</span> <span class='op'>=</span> <span class='const'>WorkQueue</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id config'>config</span><span class='period'>.</span><span class='id max_threads'>max_threads</span><span class='rparen'>)</span>
|
828
|
+
|
829
|
+
<span class='const'>Models</span><span class='op'>::</span><span class='const'>Resource</span><span class='period'>.</span><span class='id ordered_groups'>ordered_groups</span><span class='lparen'>(</span><span class='const'>DEFAULT_BATCH_SIZE</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id resources'>resources</span><span class='op'>|</span>
|
830
|
+
<span class='comment'># Track the number of download attempts made per resource
|
831
|
+
</span> <span class='id batch'>batch</span> <span class='op'>=</span> <span class='id resources'>resources</span><span class='period'>.</span><span class='id inject'>inject</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id set'>set</span><span class='comma'>,</span> <span class='id resource'>resource</span><span class='op'>|</span> <span class='id set'>set</span><span class='lbracket'>[</span><span class='id resource'>resource</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='int'>0</span><span class='semicolon'>;</span> <span class='id set'>set</span> <span class='rbrace'>}</span>
|
832
|
+
|
833
|
+
<span class='kw'>while</span> <span class='op'>!</span><span class='id batch'>batch</span><span class='period'>.</span><span class='id empty?'>empty?</span> <span class='kw'>do</span>
|
834
|
+
<span class='id batch'>batch</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id resource'>resource</span><span class='comma'>,</span> <span class='id attempts'>attempts</span><span class='op'>|</span>
|
835
|
+
<span class='id dest'>dest</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='id write_dir'>write_dir</span><span class='period'>.</span><span class='id path'>path</span><span class='comma'>,</span> <span class='id resource'>resource</span><span class='period'>.</span><span class='id filename'>filename</span><span class='rparen'>)</span>
|
836
|
+
<span class='kw'>if</span> <span class='id resource'>resource</span><span class='period'>.</span><span class='id is_directory?'>is_directory?</span>
|
837
|
+
<span class='const'>Utils</span><span class='period'>.</span><span class='id try_create_dir'>try_create_dir</span><span class='lparen'>(</span><span class='id dest'>dest</span><span class='rparen'>)</span>
|
838
|
+
<span class='id batch'>batch</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='rparen'>)</span>
|
839
|
+
<span class='kw'>elsif</span> <span class='id attempts'>attempts</span> <span class='op'>>=</span> <span class='id config'>config</span><span class='period'>.</span><span class='id max_download_attempts'>max_download_attempts</span>
|
840
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id info'>info</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Resource </span><span class='embexpr_beg'>#{</span><span class='id resource'>resource</span><span class='period'>.</span><span class='id abs_path'>abs_path</span><span class='rbrace'>}</span><span class='tstring_content'> failed to download</span><span class='tstring_end'>"</span></span>
|
841
|
+
<span class='id failed_downloads'>failed_downloads</span> <span class='op'><<</span> <span class='id resource'>resource</span>
|
842
|
+
<span class='id batch'>batch</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='rparen'>)</span>
|
843
|
+
<span class='kw'>elsif</span> <span class='id resource'>resource</span><span class='period'>.</span><span class='id synchronized?'>synchronized?</span> <span class='id dest'>dest</span>
|
844
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id debug'>debug</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Skipping already downloaded file </span><span class='embexpr_beg'>#{</span><span class='id resource'>resource</span><span class='period'>.</span><span class='id abs_path'>abs_path</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
845
|
+
<span class='id batch'>batch</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='rparen'>)</span>
|
846
|
+
<span class='kw'>else</span>
|
847
|
+
<span class='id batch'>batch</span><span class='lbracket'>[</span><span class='id resource'>resource</span><span class='rbracket'>]</span> <span class='op'>+=</span> <span class='int'>1</span>
|
848
|
+
<span class='id queue'>queue</span><span class='period'>.</span><span class='id enqueue_b'>enqueue_b</span> <span class='kw'>do</span>
|
849
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id debug'>debug</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Beginning download of </span><span class='embexpr_beg'>#{</span><span class='id resource'>resource</span><span class='period'>.</span><span class='id abs_path'>abs_path</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
850
|
+
<span class='id disk'>disk</span><span class='period'>.</span><span class='id copy'>copy</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='period'>.</span><span class='id abs_path'>abs_path</span><span class='comma'>,</span> <span class='id dest'>dest</span><span class='rparen'>)</span>
|
851
|
+
<span class='kw'>if</span> <span class='id resource'>resource</span><span class='period'>.</span><span class='id synchronized?'>synchronized?</span> <span class='id dest'>dest</span>
|
852
|
+
<span class='const'>FileUtils</span><span class='period'>.</span><span class='id chmod_R'>chmod_R</span> <span class='int'>0755</span><span class='comma'>,</span> <span class='id dest'>dest</span> <span class='comment'># allow binaries to execute
|
853
|
+
</span> <span class='id puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Pulled </span><span class='embexpr_beg'>#{</span><span class='id dest'>dest</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
854
|
+
<span class='id batch'>batch</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id resource'>resource</span><span class='rparen'>)</span>
|
855
|
+
<span class='kw'>end</span>
|
856
|
+
<span class='kw'>end</span>
|
857
|
+
<span class='kw'>end</span>
|
858
|
+
<span class='kw'>end</span>
|
859
|
+
<span class='id queue'>queue</span><span class='period'>.</span><span class='id join'>join</span>
|
860
|
+
<span class='kw'>end</span>
|
861
|
+
<span class='kw'>end</span>
|
862
|
+
<span class='kw'>end</span>
|
863
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id info'>info</span> <span class='id time'>time</span>
|
864
|
+
<span class='id puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Completed pull operation </span><span class='embexpr_beg'>#{</span><span class='id time'>time</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
865
|
+
<span class='kw'>unless</span> <span class='id failed_downloads'>failed_downloads</span><span class='period'>.</span><span class='id empty?'>empty?</span>
|
866
|
+
<span class='id puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>The following files failed to download after several attempts:\n}</span><span class='tstring_end'>"</span></span>
|
867
|
+
<span class='id puts'>puts</span> <span class='id failed_downloads'>failed_downloads</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>\n</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
868
|
+
<span class='kw'>end</span>
|
869
|
+
<span class='kw'>end</span></pre>
|
870
|
+
</td>
|
871
|
+
</tr>
|
872
|
+
</table>
|
873
|
+
</div>
|
874
|
+
|
875
|
+
<div class="method_details ">
|
876
|
+
<p class="signature " id="push-instance_method">
|
877
|
+
|
878
|
+
- (<tt>void</tt>) <strong>push</strong>(target)
|
879
|
+
|
880
|
+
|
881
|
+
|
882
|
+
</p><div class="docstring">
|
883
|
+
<div class="discussion">
|
884
|
+
<p class="note returns_void">This method returns an undefined value.</p><p>
|
885
|
+
Synchronize the target directory to the remote disk. Will create a file
|
886
|
+
index if one does not already exist
|
887
|
+
</p>
|
888
|
+
|
889
|
+
|
890
|
+
</div>
|
891
|
+
</div>
|
892
|
+
<div class="tags">
|
893
|
+
<h3>Parameters:</h3>
|
894
|
+
<ul class="param">
|
895
|
+
|
896
|
+
<li>
|
897
|
+
|
898
|
+
<span class='name'>target</span>
|
899
|
+
|
900
|
+
|
901
|
+
<span class='type'>(<tt>String</tt>)</span>
|
902
|
+
|
903
|
+
|
904
|
+
|
905
|
+
—
|
906
|
+
<div class='inline'><p>
|
907
|
+
the absolute path of the folder that will be synchronized remotely
|
908
|
+
</p>
|
909
|
+
</div>
|
910
|
+
|
911
|
+
</li>
|
912
|
+
|
913
|
+
</ul>
|
914
|
+
|
915
|
+
</div><table class="source_code">
|
916
|
+
<tr>
|
917
|
+
<td>
|
918
|
+
<pre class="lines">
|
919
|
+
|
920
|
+
|
921
|
+
76
|
922
|
+
77
|
923
|
+
78
|
924
|
+
79
|
925
|
+
80
|
926
|
+
81
|
927
|
+
82
|
928
|
+
83
|
929
|
+
84
|
930
|
+
85
|
931
|
+
86
|
932
|
+
87
|
933
|
+
88
|
934
|
+
89
|
935
|
+
90
|
936
|
+
91
|
937
|
+
92
|
938
|
+
93
|
939
|
+
94
|
940
|
+
95
|
941
|
+
96
|
942
|
+
97
|
943
|
+
98
|
944
|
+
99
|
945
|
+
100
|
946
|
+
101</pre>
|
947
|
+
</td>
|
948
|
+
<td>
|
949
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 76</span>
|
950
|
+
|
951
|
+
<span class='kw'>def</span> <span class='id push'>push</span><span class='lparen'>(</span><span class='id target'>target</span><span class='rparen'>)</span>
|
952
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id info'>info</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Starting push operation</span><span class='tstring_end'>"</span></span>
|
953
|
+
|
954
|
+
<span class='kw'>if</span> <span class='const'>Models</span><span class='op'>::</span><span class='const'>AppSetting</span><span class='period'>.</span><span class='id backup_path'>backup_path</span> <span class='op'>!=</span> <span class='id target'>target</span>
|
955
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Target does not match directory stored in index</span><span class='tstring_end'>"</span></span>
|
956
|
+
<span class='id exit'>exit</span>
|
957
|
+
<span class='kw'>end</span>
|
958
|
+
|
959
|
+
<span class='id index'>index</span><span class='period'>.</span><span class='id update'>update</span>
|
960
|
+
|
961
|
+
<span class='id time'>time</span> <span class='op'>=</span> <span class='const'>Benchmark</span><span class='period'>.</span><span class='id measure'>measure</span> <span class='kw'>do</span>
|
962
|
+
<span class='id queue'>queue</span> <span class='op'>=</span> <span class='const'>WorkQueue</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id config'>config</span><span class='period'>.</span><span class='id max_threads'>max_threads</span><span class='rparen'>)</span>
|
963
|
+
<span class='kw'>while</span> <span class='const'>Models</span><span class='op'>::</span><span class='const'>Resource</span><span class='period'>.</span><span class='id pending_jobs?'>pending_jobs?</span> <span class='kw'>do</span>
|
964
|
+
<span class='const'>Models</span><span class='op'>::</span><span class='const'>Resource</span><span class='period'>.</span><span class='id pending_sync_groups'>pending_sync_groups</span><span class='lparen'>(</span><span class='const'>DEFAULT_BATCH_SIZE</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id resources'>resources</span><span class='op'>|</span>
|
965
|
+
<span class='id push_group'>push_group</span><span class='lparen'>(</span><span class='id queue'>queue</span><span class='comma'>,</span> <span class='id resources'>resources</span><span class='rparen'>)</span>
|
966
|
+
<span class='id handle_push_failures'>handle_push_failures</span><span class='lparen'>(</span><span class='id resources'>resources</span><span class='rparen'>)</span>
|
967
|
+
<span class='kw'>end</span>
|
968
|
+
<span class='kw'>end</span>
|
969
|
+
<span class='kw'>end</span>
|
970
|
+
|
971
|
+
<span class='comment'># If any assets have been deleted locally, also remove them from remote disk
|
972
|
+
</span> <span class='id index'>index</span><span class='period'>.</span><span class='id orphans'>orphans</span><span class='period'>.</span><span class='id each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id orphan'>orphan</span><span class='op'>|</span> <span class='id disk'>disk</span><span class='period'>.</span><span class='id delete'>delete</span><span class='lparen'>(</span><span class='id orphan'>orphan</span><span class='period'>.</span><span class='id abs_path'>abs_path</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
973
|
+
<span class='id index'>index</span><span class='period'>.</span><span class='id clean!'>clean!</span> <span class='comment'># Remove orphans from index
|
974
|
+
</span> <span class='id puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Completed push operation </span><span class='embexpr_beg'>#{</span><span class='id time'>time</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
975
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id info'>info</span> <span class='id time'>time</span>
|
976
|
+
<span class='kw'>end</span></pre>
|
977
|
+
</td>
|
978
|
+
</tr>
|
979
|
+
</table>
|
980
|
+
</div>
|
981
|
+
|
982
|
+
<div class="method_details ">
|
983
|
+
<p class="signature " id="start-instance_method">
|
984
|
+
|
985
|
+
- (<tt>void</tt>) <strong>start</strong>
|
986
|
+
|
987
|
+
|
988
|
+
|
989
|
+
</p><div class="docstring">
|
990
|
+
<div class="discussion">
|
991
|
+
<p class="note returns_void">This method returns an undefined value.</p><p>
|
992
|
+
Begins the synchronization operation after initializing the file index and
|
993
|
+
remote storage container
|
994
|
+
</p>
|
995
|
+
|
996
|
+
|
997
|
+
</div>
|
998
|
+
</div>
|
999
|
+
<div class="tags">
|
1000
|
+
|
1001
|
+
</div><table class="source_code">
|
1002
|
+
<tr>
|
1003
|
+
<td>
|
1004
|
+
<pre class="lines">
|
1005
|
+
|
1006
|
+
|
1007
|
+
36
|
1008
|
+
37
|
1009
|
+
38
|
1010
|
+
39
|
1011
|
+
40
|
1012
|
+
41
|
1013
|
+
42
|
1014
|
+
43
|
1015
|
+
44
|
1016
|
+
45
|
1017
|
+
46
|
1018
|
+
47
|
1019
|
+
48
|
1020
|
+
49
|
1021
|
+
50
|
1022
|
+
51
|
1023
|
+
52
|
1024
|
+
53
|
1025
|
+
54
|
1026
|
+
55</pre>
|
1027
|
+
</td>
|
1028
|
+
<td>
|
1029
|
+
<pre class="code"><span class="info file"># File 'lib/mir/application.rb', line 36</span>
|
1030
|
+
|
1031
|
+
<span class='kw'>def</span> <span class='id start'>start</span>
|
1032
|
+
<span class='kw'>if</span> <span class='id options'>options</span><span class='period'>.</span><span class='id copy'>copy</span> <span class='op'>&&</span> <span class='id options'>options</span><span class='period'>.</span><span class='id flush'>flush</span>
|
1033
|
+
<span class='const'>Mir</span><span class='period'>.</span><span class='id logger'>logger</span><span class='period'>.</span><span class='id error'>error</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Conflicting options: Cannot copy from remote source with an empty file index</span><span class='tstring_end'>"</span></span>
|
1034
|
+
<span class='id exit'>exit</span>
|
1035
|
+
<span class='kw'>end</span>
|
1036
|
+
|
1037
|
+
<span class='cvar'>@@config</span> <span class='op'>=</span> <span class='const'>Config</span><span class='period'>.</span><span class='id new'>new</span> <span class='id find_settings_file'>find_settings_file</span>
|
1038
|
+
<span class='id param_path'>param_path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id expand_path'>expand_path</span><span class='lparen'>(</span><span class='const'>ARGV</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1039
|
+
<span class='id exit'>exit</span> <span class='kw'>unless</span> <span class='id config'>config</span><span class='period'>.</span><span class='id valid?'>valid?</span>
|
1040
|
+
|
1041
|
+
<span class='comment'># Initialize our remote disk
|
1042
|
+
</span> <span class='ivar'>@disk</span> <span class='op'>=</span> <span class='const'>Disk</span><span class='period'>.</span><span class='id fetch'>fetch</span><span class='lparen'>(</span><span class='id config'>config</span><span class='period'>.</span><span class='id cloud_provider'>cloud_provider</span><span class='rparen'>)</span>
|
1043
|
+
<span class='id exit'>exit</span> <span class='kw'>unless</span> <span class='ivar'>@disk</span><span class='period'>.</span><span class='id connected?'>connected?</span>
|
1044
|
+
|
1045
|
+
<span class='comment'># Initialize our local index
|
1046
|
+
</span> <span class='ivar'>@index</span> <span class='op'>=</span> <span class='const'>Index</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id param_path'>param_path</span><span class='comma'>,</span> <span class='id config'>config</span><span class='period'>.</span><span class='id database'>database</span><span class='rparen'>)</span>
|
1047
|
+
<span class='ivar'>@index</span><span class='period'>.</span><span class='id setup'>setup</span><span class='lparen'>(</span><span class='symbol'>:verbose</span> <span class='op'>=></span> <span class='id options'>options</span><span class='period'>.</span><span class='id verbose'>verbose</span><span class='comma'>,</span> <span class='symbol'>:force_flush</span> <span class='op'>=></span> <span class='id options'>options</span><span class='period'>.</span><span class='id flush'>flush</span><span class='rparen'>)</span>
|
1048
|
+
|
1049
|
+
<span class='id options'>options</span><span class='period'>.</span><span class='id copy'>copy</span> <span class='op'>?</span> <span class='id pull'>pull</span><span class='lparen'>(</span><span class='id param_path'>param_path</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id push'>push</span><span class='lparen'>(</span><span class='id param_path'>param_path</span><span class='rparen'>)</span>
|
1050
|
+
<span class='kw'>end</span></pre>
|
1051
|
+
</td>
|
1052
|
+
</tr>
|
1053
|
+
</table>
|
1054
|
+
</div>
|
1055
|
+
|
1056
|
+
</div>
|
1057
|
+
|
1058
|
+
</div>
|
1059
|
+
|
1060
|
+
<div id="footer">
|
1061
|
+
Generated on Fri Sep 23 18:24:38 2011 by
|
1062
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1063
|
+
0.7.2 (ruby-1.9.2).
|
1064
|
+
</div>
|
1065
|
+
|
1066
|
+
</body>
|
1067
|
+
</html>
|