metric_tools 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/.gitignore +2 -0
  2. data/.rspec +1 -0
  3. data/.rvmrc +1 -0
  4. data/config/pref.rb +11 -16
  5. data/doc/Gemfile.html +107 -0
  6. data/doc/MetricTools/IndexTree.html +308 -0
  7. data/doc/MetricTools/S3.html +325 -0
  8. data/doc/MetricTools/Skype.html +343 -0
  9. data/doc/MetricTools/SpreadSheet.html +552 -0
  10. data/doc/MetricTools/Table.html +952 -0
  11. data/doc/MetricTools.html +158 -0
  12. data/doc/Object.html +179 -0
  13. data/doc/Pref/GoogleDocs.html +176 -0
  14. data/doc/Pref/S3.html +181 -0
  15. data/doc/Pref/Skype.html +156 -0
  16. data/doc/Pref.html +141 -0
  17. data/doc/created.rid +15 -0
  18. data/doc/images/add.png +0 -0
  19. data/doc/images/brick.png +0 -0
  20. data/doc/images/brick_link.png +0 -0
  21. data/doc/images/bug.png +0 -0
  22. data/doc/images/bullet_black.png +0 -0
  23. data/doc/images/bullet_toggle_minus.png +0 -0
  24. data/doc/images/bullet_toggle_plus.png +0 -0
  25. data/doc/images/date.png +0 -0
  26. data/doc/images/delete.png +0 -0
  27. data/doc/images/find.png +0 -0
  28. data/doc/images/loadingAnimation.gif +0 -0
  29. data/doc/images/macFFBgHack.png +0 -0
  30. data/doc/images/package.png +0 -0
  31. data/doc/images/page_green.png +0 -0
  32. data/doc/images/page_white_text.png +0 -0
  33. data/doc/images/page_white_width.png +0 -0
  34. data/doc/images/plugin.png +0 -0
  35. data/doc/images/ruby.png +0 -0
  36. data/doc/images/tag_blue.png +0 -0
  37. data/doc/images/tag_green.png +0 -0
  38. data/doc/images/transparent.png +0 -0
  39. data/doc/images/wrench.png +0 -0
  40. data/doc/images/wrench_orange.png +0 -0
  41. data/doc/images/zoom.png +0 -0
  42. data/doc/index.html +100 -0
  43. data/doc/js/darkfish.js +153 -0
  44. data/doc/js/jquery.js +18 -0
  45. data/doc/js/navigation.js +142 -0
  46. data/doc/js/search.js +94 -0
  47. data/doc/js/search_index.js +1 -0
  48. data/doc/js/searcher.js +228 -0
  49. data/doc/rdoc.css +543 -0
  50. data/doc/table_of_contents.html +176 -0
  51. data/lib/metric_tools/spread_sheet.rb +23 -1
  52. data/metric_tools.gemspec +13 -0
  53. data/spec/index_tree_spec.rb +101 -0
  54. data/spec/s3_spec.rb +80 -0
  55. data/spec/skype_spec.rb +39 -0
  56. data/spec/spread_sheet_spec.rb +165 -0
  57. data/spec/table_spec.rb +114 -0
  58. metadata +60 -6
  59. data/Gemfile.lock +0 -45
@@ -0,0 +1,325 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>class MetricTools::S3 - RDoc Documentation</title>
8
+
9
+ <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="class">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../index.html">Home</a>
28
+ <a href="../table_of_contents.html#classes">Classes</a>
29
+ <a href="../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/metric_tools/s3.rb
51
+ </ul>
52
+ </nav>
53
+
54
+
55
+ </div>
56
+
57
+ <div id="class-metadata">
58
+
59
+ <nav id="parent-class-section" class="section">
60
+ <h3 class="section-header">Parent</h3>
61
+
62
+ <p class="link"><a href="../Object.html">Object</a>
63
+
64
+ </nav>
65
+
66
+
67
+ <!-- Method Quickref -->
68
+ <nav id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+
71
+ <ul class="link-list">
72
+
73
+ <li><a href="#method-c-download">::download</a>
74
+
75
+ <li><a href="#method-c-fetch_all">::fetch_all</a>
76
+
77
+ <li><a href="#method-c-login">::login</a>
78
+
79
+ <li><a href="#method-c-login-3F">::login?</a>
80
+
81
+ </ul>
82
+ </nav>
83
+
84
+ </div>
85
+
86
+ <div id="project-metadata">
87
+ <nav id="fileindex-section" class="section project-section">
88
+ <h3 class="section-header">Pages</h3>
89
+
90
+ <ul>
91
+
92
+ <li class="file"><a href="../Gemfile.html">Gemfile</a>
93
+
94
+ <li class="file"><a href="../config/my_pref.html">my_pref</a>
95
+
96
+ </ul>
97
+ </nav>
98
+
99
+ <nav id="classindex-section" class="section project-section">
100
+ <h3 class="section-header">Class and Module Index</h3>
101
+
102
+ <ul class="link-list">
103
+
104
+ <li><a href="../MetricTools.html">MetricTools</a>
105
+
106
+ <li><a href="../MetricTools/IndexTree.html">MetricTools::IndexTree</a>
107
+
108
+ <li><a href="../MetricTools/S3.html">MetricTools::S3</a>
109
+
110
+ <li><a href="../MetricTools/Skype.html">MetricTools::Skype</a>
111
+
112
+ <li><a href="../MetricTools/SpreadSheet.html">MetricTools::SpreadSheet</a>
113
+
114
+ <li><a href="../MetricTools/Table.html">MetricTools::Table</a>
115
+
116
+ <li><a href="../Pref.html">Pref</a>
117
+
118
+ <li><a href="../Pref/GoogleDocs.html">Pref::GoogleDocs</a>
119
+
120
+ <li><a href="../Pref/S3.html">Pref::S3</a>
121
+
122
+ <li><a href="../Pref/Skype.html">Pref::Skype</a>
123
+
124
+ <li><a href="../Object.html">Object</a>
125
+
126
+ </ul>
127
+ </nav>
128
+
129
+ </div>
130
+ </nav>
131
+
132
+ <div id="documentation">
133
+ <h1 class="class">class MetricTools::S3</h1>
134
+
135
+ <div id="description" class="description">
136
+
137
+ <p>S3からログなどをDownloadするためのクラスです</p>
138
+
139
+ </div><!-- description -->
140
+
141
+
142
+
143
+
144
+ <section id="5Buntitled-5D" class="documentation-section">
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+ <!-- Methods -->
154
+
155
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
156
+ <h3 class="section-header">Public Class Methods</h3>
157
+
158
+
159
+ <div id="method-c-download" class="method-detail ">
160
+
161
+ <div class="method-heading">
162
+ <span class="method-name">download</span><span
163
+ class="method-args">(file_key, target_dir, hierarchy=false)</span>
164
+ <span class="method-click-advice">click to toggle source</span>
165
+ </div>
166
+
167
+
168
+ <div class="method-description">
169
+
170
+ <p>file_keyを指定してファイルをダウンロードします。 target_dirが存在しない場合は、勝手に作成します。
171
+ hierarchy=trueにすると、S3上のディレクトリ構造を保持してDownloadします。</p>
172
+
173
+
174
+
175
+ <div class="method-source-code" id="download-source">
176
+ <pre><span class="ruby-comment"># File lib/metric_tools/s3.rb, line 42</span>
177
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">download</span>(<span class="ruby-identifier">file_key</span>, <span class="ruby-identifier">target_dir</span>, <span class="ruby-identifier">hierarchy</span>=<span class="ruby-keyword">false</span>)
178
+ <span class="ruby-identifier">file_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">target_dir</span>, <span class="ruby-identifier">hierarchy</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">file_key</span> <span class="ruby-operator">:</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">file_key</span>))
179
+ <span class="ruby-identifier">mkdir_for_file</span>(<span class="ruby-identifier">file_path</span>)
180
+ <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;Downloading from S3 : #{file_key} =&gt; #{file_path}&quot;</span>
181
+
182
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">file_path</span>, <span class="ruby-string">&quot;w&quot;</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">fp</span><span class="ruby-operator">|</span>
183
+ <span class="ruby-constant">AWS</span><span class="ruby-operator">::</span><span class="ruby-constant">S3</span><span class="ruby-operator">::</span><span class="ruby-constant">S3Object</span>.<span class="ruby-identifier">stream</span>(<span class="ruby-identifier">file_key</span>, <span class="ruby-ivar">@bucket</span>.<span class="ruby-identifier">name</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">chunk</span><span class="ruby-operator">|</span>
184
+ <span class="ruby-identifier">fp</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">chunk</span>
185
+ }
186
+ }
187
+ <span class="ruby-keyword">end</span></pre>
188
+ </div><!-- download-source -->
189
+
190
+ </div>
191
+
192
+
193
+
194
+
195
+ </div><!-- download-method -->
196
+
197
+
198
+ <div id="method-c-fetch_all" class="method-detail ">
199
+
200
+ <div class="method-heading">
201
+ <span class="method-name">fetch_all</span><span
202
+ class="method-args">(dir_key, target_dir, force_all=false, &condition)</span>
203
+ <span class="method-click-advice">click to toggle source</span>
204
+ </div>
205
+
206
+
207
+ <div class="method-description">
208
+
209
+ <p>指定されたdir_key以下のファイル/ディレクトリをすべてDLします。
210
+ force_all=falseにすると、既にローカルにファイルが有る場合はDLしません。</p>
211
+
212
+
213
+
214
+ <div class="method-source-code" id="fetch_all-source">
215
+ <pre><span class="ruby-comment"># File lib/metric_tools/s3.rb, line 58</span>
216
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">fetch_all</span>(<span class="ruby-identifier">dir_key</span>, <span class="ruby-identifier">target_dir</span>, <span class="ruby-identifier">force_all</span>=<span class="ruby-keyword">false</span>, &amp;<span class="ruby-identifier">condition</span>)
217
+ <span class="ruby-identifier">remote_files</span> = <span class="ruby-ivar">@bucket</span>
218
+ .<span class="ruby-identifier">select</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">obj</span><span class="ruby-operator">|</span>
219
+ <span class="ruby-identifier">key</span> = <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span>
220
+ <span class="ruby-identifier">is_dir</span> = (<span class="ruby-identifier">key</span>[<span class="ruby-identifier">key</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'/'</span>)
221
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">key</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">dir_key</span>
222
+ <span class="ruby-identifier">cond</span> = <span class="ruby-identifier">condition</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">condition</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">obj</span>)
223
+ <span class="ruby-operator">!</span><span class="ruby-identifier">is_dir</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">cond</span> }
224
+ .<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">obj</span><span class="ruby-operator">|</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">key</span> }
225
+ <span class="ruby-identifier">local_files</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">target_dir</span>, <span class="ruby-string">&quot;**/*&quot;</span>))
226
+
227
+ <span class="ruby-identifier">remote_files</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
228
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">force_all</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">local_files</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">key</span>))
229
+ <span class="ruby-identifier">download</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">target_dir</span>, <span class="ruby-keyword">true</span>)
230
+ <span class="ruby-keyword">end</span>
231
+ }
232
+
233
+ <span class="ruby-keyword">end</span></pre>
234
+ </div><!-- fetch_all-source -->
235
+
236
+ </div>
237
+
238
+
239
+
240
+
241
+ </div><!-- fetch_all-method -->
242
+
243
+
244
+ <div id="method-c-login" class="method-detail ">
245
+
246
+ <div class="method-heading">
247
+ <span class="method-name">login</span><span
248
+ class="method-args">(key, secret, bucket_name)</span>
249
+ <span class="method-click-advice">click to toggle source</span>
250
+ </div>
251
+
252
+
253
+ <div class="method-description">
254
+
255
+ <p>access_key, secret_key, bucket_nameを指定してログインします。</p>
256
+
257
+
258
+
259
+ <div class="method-source-code" id="login-source">
260
+ <pre><span class="ruby-comment"># File lib/metric_tools/s3.rb, line 17</span>
261
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">login</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">secret</span>, <span class="ruby-identifier">bucket_name</span>)
262
+ <span class="ruby-ivar">@key</span> = <span class="ruby-identifier">key</span>
263
+ <span class="ruby-ivar">@secret</span> = <span class="ruby-identifier">secret</span>
264
+ <span class="ruby-ivar">@bucket_name</span> = <span class="ruby-identifier">bucket_name</span>
265
+
266
+ <span class="ruby-constant">AWS</span><span class="ruby-operator">::</span><span class="ruby-constant">S3</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>.<span class="ruby-identifier">establish_connection!</span>(
267
+ <span class="ruby-value">:access_key_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>,
268
+ <span class="ruby-value">:secret_access_key</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">secret</span>,
269
+ )
270
+ <span class="ruby-ivar">@bucket</span> = <span class="ruby-constant">AWS</span><span class="ruby-operator">::</span><span class="ruby-constant">S3</span><span class="ruby-operator">::</span><span class="ruby-constant">Service</span>.<span class="ruby-identifier">buckets</span>.<span class="ruby-identifier">find</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@bucket_name</span>}
271
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;The bucket named '#{@bucket_name}' doesn't exist.&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@bucket</span>.<span class="ruby-identifier">nil?</span>
272
+ <span class="ruby-keyword">end</span></pre>
273
+ </div><!-- login-source -->
274
+
275
+ </div>
276
+
277
+
278
+
279
+
280
+ </div><!-- login-method -->
281
+
282
+
283
+ <div id="method-c-login-3F" class="method-detail ">
284
+
285
+ <div class="method-heading">
286
+ <span class="method-name">login?</span><span
287
+ class="method-args">()</span>
288
+ <span class="method-click-advice">click to toggle source</span>
289
+ </div>
290
+
291
+
292
+ <div class="method-description">
293
+
294
+ <p>loginしているかどうかを返します</p>
295
+
296
+
297
+
298
+ <div class="method-source-code" id="login-3F-source">
299
+ <pre><span class="ruby-comment"># File lib/metric_tools/s3.rb, line 33</span>
300
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">login?</span>
301
+ <span class="ruby-keyword">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">bucket</span>.<span class="ruby-identifier">nil?</span>
302
+ <span class="ruby-keyword">end</span></pre>
303
+ </div><!-- login-3F-source -->
304
+
305
+ </div>
306
+
307
+
308
+
309
+
310
+ </div><!-- login-3F-method -->
311
+
312
+
313
+ </section><!-- public-class-method-details -->
314
+
315
+ </section><!-- 5Buntitled-5D -->
316
+
317
+ </div><!-- documentation -->
318
+
319
+
320
+ <footer id="validator-badges">
321
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
322
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
323
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
324
+ </footer>
325
+