argos-ruby 1.2.5 → 1.2.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,383 @@
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: Argos::Download
8
+
9
+ &mdash; Documentation by YARD 0.8.7.6
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../';
20
+ framesUrl = "../frames.html#!Argos/Download.html";
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../_index.html">Index (D)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../Argos.html" title="Argos (module)">Argos</a></span></span>
36
+ &raquo;
37
+ <span class="title">Download</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Class: Argos::Download
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Object</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">Argos::Download</li>
82
+
83
+ </ul>
84
+ <a href="#" class="inheritanceTree">show all</a>
85
+
86
+ </dd>
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ <dt class="r2 last">Defined in:</dt>
97
+ <dd class="r2 last">lib/argos/download.rb</dd>
98
+
99
+ </dl>
100
+ <div class="clear"></div>
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+ <h2>
111
+ Class Method Summary
112
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
113
+ </h2>
114
+
115
+ <ul class="summary">
116
+
117
+ <li class="public ">
118
+ <span class="summary_signature">
119
+
120
+ <a href="#download-class_method" title="download (class method)">+ (Object) <strong>download</strong>(username, password, archive, log, days = 20) </a>
121
+
122
+
123
+
124
+ </span>
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+ <span class="summary_desc"><div class='inline'></div></span>
135
+
136
+ </li>
137
+
138
+
139
+ </ul>
140
+
141
+
142
+
143
+
144
+ <div id="class_method_details" class="method_details_list">
145
+ <h2>Class Method Details</h2>
146
+
147
+
148
+ <div class="method_details first">
149
+ <h3 class="signature first" id="download-class_method">
150
+
151
+ + (<tt>Object</tt>) <strong>download</strong>(username, password, archive, log, days = 20)
152
+
153
+
154
+
155
+
156
+
157
+ </h3><table class="source_code">
158
+ <tr>
159
+ <td>
160
+ <pre class="lines">
161
+
162
+
163
+ 23
164
+ 24
165
+ 25
166
+ 26
167
+ 27
168
+ 28
169
+ 29
170
+ 30
171
+ 31
172
+ 32
173
+ 33
174
+ 34
175
+ 35
176
+ 36
177
+ 37
178
+ 38
179
+ 39
180
+ 40
181
+ 41
182
+ 42
183
+ 43
184
+ 44
185
+ 45
186
+ 46
187
+ 47
188
+ 48
189
+ 49
190
+ 50
191
+ 51
192
+ 52
193
+ 53
194
+ 54
195
+ 55
196
+ 56
197
+ 57
198
+ 58
199
+ 59
200
+ 60
201
+ 61
202
+ 62
203
+ 63
204
+ 64
205
+ 65
206
+ 66
207
+ 67
208
+ 68
209
+ 69
210
+ 70
211
+ 71
212
+ 72
213
+ 73
214
+ 74
215
+ 75
216
+ 76
217
+ 77
218
+ 78
219
+ 79
220
+ 80
221
+ 81
222
+ 82
223
+ 83
224
+ 84
225
+ 85
226
+ 86
227
+ 87
228
+ 88
229
+ 89
230
+ 90
231
+ 91
232
+ 92
233
+ 93
234
+ 94
235
+ 95
236
+ 96
237
+ 97
238
+ 98
239
+ 99
240
+ 100
241
+ 101
242
+ 102
243
+ 103
244
+ 104
245
+ 105
246
+ 106
247
+ 107
248
+ 108
249
+ 109
250
+ 110
251
+ 111
252
+ 112
253
+ 113
254
+ 114
255
+ 115
256
+ 116
257
+ 117
258
+ 118
259
+ 119
260
+ 120
261
+ 121
262
+ 122</pre>
263
+ </td>
264
+ <td>
265
+ <pre class="code"><span class="info file"># File 'lib/argos/download.rb', line 23</span>
266
+
267
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_download'>download</span><span class='lparen'>(</span><span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='id identifier rubyid_password'>password</span><span class='comma'>,</span> <span class='id identifier rubyid_archive'>archive</span><span class='comma'>,</span> <span class='id identifier rubyid_log'>log</span><span class='comma'>,</span> <span class='id identifier rubyid_days'>days</span><span class='op'>=</span><span class='int'>20</span><span class='rparen'>)</span>
268
+
269
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Starting download of Argos XML to </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_archive'>archive</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
270
+
271
+ <span class='id identifier rubyid_soap'>soap</span> <span class='op'>=</span> <span class='const'>Argos</span><span class='op'>::</span><span class='const'>Soap</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='label'>username:</span> <span class='id identifier rubyid_username'>username</span><span class='comma'>,</span> <span class='label'>password:</span> <span class='id identifier rubyid_password'>password</span><span class='rbrace'>}</span><span class='rparen'>)</span>
272
+ <span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_log'>log</span> <span class='op'>=</span> <span class='id identifier rubyid_log'>log</span>
273
+
274
+ <span class='id identifier rubyid_programs'>programs</span> <span class='op'>=</span> <span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_programs'>programs</span>
275
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Programs for </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_username'>username</span><span class='embexpr_end'>}</span><span class='tstring_content'>: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_programs'>programs</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
276
+ <span class='id identifier rubyid_year'>year</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='period'>.</span><span class='id identifier rubyid_year'>year</span>
277
+
278
+ <span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_getPlatformList'>getPlatformList</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>data</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>program</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_program'>program</span><span class='op'>|</span>
279
+ <span class='id identifier rubyid_programNumber'>programNumber</span> <span class='op'>=</span> <span class='id identifier rubyid_program'>program</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>programNumber</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
280
+ <span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_programNumber'>programNumber</span> <span class='op'>=</span> <span class='id identifier rubyid_programNumber'>programNumber</span>
281
+
282
+ <span class='id identifier rubyid_platforms'>platforms</span> <span class='op'>=</span> <span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_platforms'>platforms</span>
283
+
284
+ <span class='comment'># inactive (no last collect)
285
+ </span> <span class='id identifier rubyid_inactive'>inactive</span> <span class='op'>=</span> <span class='id identifier rubyid_program'>program</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>platform</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
286
+
287
+ <span class='id identifier rubyid_active'>active</span> <span class='op'>=</span> <span class='id identifier rubyid_program'>program</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>platform</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_platform'>platform</span><span class='op'>|</span>
288
+ <span class='id identifier rubyid_platform'>platform</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>lastCollectDate</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>and</span> <span class='id identifier rubyid_platform'>platform</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>lastLocationDate</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_platform'>platform</span><span class='op'>|</span>
289
+
290
+ <span class='id identifier rubyid_lastCollectDate'>lastCollectDate</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_platform'>platform</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>lastCollectDate</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
291
+ <span class='id identifier rubyid_lastLocationDate'>lastLocationDate</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_platform'>platform</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>lastLocationDate</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
292
+
293
+ <span class='id identifier rubyid_twentydays'>twentydays</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='lparen'>(</span><span class='const'>Date</span><span class='period'>.</span><span class='id identifier rubyid_today'>today</span><span class='op'>-</span><span class='int'>20</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
294
+
295
+ <span class='lparen'>(</span><span class='id identifier rubyid_lastCollectDate'>lastCollectDate</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_twentydays'>twentydays</span> <span class='kw'>or</span> <span class='id identifier rubyid_lastLocationDate'>lastLocationDate</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_twentydays'>twentydays</span><span class='rparen'>)</span>
296
+
297
+ <span class='rbrace'>}</span>
298
+ <span class='comment'># inactive = platforms where last collect date is missing or &gt; 20 days
299
+ </span> <span class='id identifier rubyid_inactive'>inactive</span> <span class='op'>=</span> <span class='id identifier rubyid_program'>program</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>platform</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>-</span> <span class='id identifier rubyid_active'>active</span>
300
+
301
+ <span class='id identifier rubyid_active'>active</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='comma'>,</span><span class='id identifier rubyid_m'>m</span><span class='op'>|</span>
302
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Active [</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_m'>m</span><span class='op'>+</span><span class='int'>1</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_active'>active</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'>]: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_a'>a</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_k'>k</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>location</span><span class='regexp_end'>/i</span></span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
303
+ <span class='kw'>end</span>
304
+ <span class='id identifier rubyid_inactive'>inactive</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='comma'>,</span><span class='id identifier rubyid_n'>n</span><span class='op'>|</span>
305
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Inactive [</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_n'>n</span><span class='op'>+</span><span class='int'>1</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_inactive'>inactive</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'>]: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_i'>i</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span><span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_k'>k</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>location</span><span class='regexp_end'>/i</span></span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
306
+ <span class='kw'>end</span>
307
+ <span class='id identifier rubyid_active'>active</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span> <span class='id identifier rubyid_platform'>platform</span><span class='comma'>,</span> <span class='id identifier rubyid_idx'>idx</span> <span class='op'>|</span>
308
+
309
+
310
+ <span class='id identifier rubyid_platformId'>platformId</span> <span class='op'>=</span> <span class='id identifier rubyid_platform'>platform</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>platformId</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
311
+ <span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_platformId'>platformId</span> <span class='op'>=</span> <span class='id identifier rubyid_platformId'>platformId</span>
312
+
313
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>About to download program: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_programNumber'>programNumber</span><span class='embexpr_end'>}</span><span class='tstring_content'>, platform: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_platformId'>platformId</span><span class='embexpr_end'>}</span><span class='tstring_content'> [</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_idx'>idx</span><span class='op'>+</span><span class='int'>1</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_active'>active</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'>], lastCollectDate: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_platform'>platform</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>lastCollectDate</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
314
+
315
+ <span class='int'>20</span><span class='period'>.</span><span class='id identifier rubyid_downto'>downto</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_daysago'>daysago</span><span class='op'>|</span>
316
+
317
+ <span class='id identifier rubyid_date'>date</span> <span class='op'>=</span> <span class='const'>Date</span><span class='period'>.</span><span class='id identifier rubyid_today'>today</span><span class='op'>-</span><span class='id identifier rubyid_daysago'>daysago</span>
318
+
319
+ <span class='id identifier rubyid_destination'>destination</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_archive'>archive</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_year'>year</span><span class='embexpr_end'>}</span><span class='tstring_content'>/program-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_programNumber'>programNumber</span><span class='embexpr_end'>}</span><span class='tstring_content'>/platform-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_platformId'>platformId</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
320
+
321
+ <span class='kw'>begin</span>
322
+ <span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_period'>period</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>startDate:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date'>date</span><span class='embexpr_end'>}</span><span class='tstring_content'>T00:00:00Z</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>endDate:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date'>date</span><span class='embexpr_end'>}</span><span class='tstring_content'>T23:59:59.999Z</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span>
323
+ <span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_getXml'>getXml</span>
324
+
325
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id identifier rubyid_mkdir_p'>mkdir_p</span><span class='lparen'>(</span><span class='id identifier rubyid_destination'>destination</span><span class='rparen'>)</span>
326
+ <span class='id identifier rubyid_filename'>filename</span> <span class='op'>=</span> <span class='id identifier rubyid_destination'>destination</span><span class='op'>+</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/argos-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date'>date</span><span class='embexpr_end'>}</span><span class='tstring_content'>-platform-</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_platformId'>platformId</span><span class='embexpr_end'>}</span><span class='tstring_content'>.xml</span><span class='tstring_end'>&quot;</span></span>
327
+
328
+ <span class='kw'>if</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exists?'>exists?</span> <span class='id identifier rubyid_filename'>filename</span>
329
+ <span class='id identifier rubyid_existing_sha1'>existing_sha1</span> <span class='op'>=</span> <span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA1</span><span class='period'>.</span><span class='id identifier rubyid_file'>file</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span>
330
+ <span class='id identifier rubyid_existing_errors'>existing_errors</span> <span class='op'>=</span> <span class='const'>Argos</span><span class='op'>::</span><span class='const'>Soap</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_validate'>validate</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span><span class='rparen'>)</span>
331
+ <span class='kw'>if</span> <span class='id identifier rubyid_existing_errors'>existing_errors</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
332
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Validation error for existing data </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_content'> (</span><span class='embexpr_beg'>#{</span><span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'> bytes): </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_existing_errors'>existing_errors</span><span class='period'>.</span><span class='id identifier rubyid_uniq'>uniq</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
333
+ <span class='kw'>end</span>
334
+ <span class='comment'>#log.debug &quot;Keeping existing file #{filename} from #{File.mtime(filename)}, fresh data is identical&quot;
335
+ </span> <span class='kw'>end</span>
336
+
337
+ <span class='id identifier rubyid_new_xml_ng'>new_xml_ng</span> <span class='op'>=</span> <span class='const'>Nokogiri</span><span class='op'>::</span><span class='const'>XML</span><span class='lparen'>(</span><span class='id identifier rubyid_soap'>soap</span><span class='period'>.</span><span class='id identifier rubyid_xml'>xml</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='const'>Nokogiri</span><span class='op'>::</span><span class='const'>XML</span><span class='op'>::</span><span class='const'>ParseOptions</span><span class='op'>::</span><span class='const'>NOBLANKS</span> <span class='op'>|</span> <span class='const'>Nokogiri</span><span class='op'>::</span><span class='const'>XML</span><span class='op'>::</span><span class='const'>ParseOptions</span><span class='op'>::</span><span class='const'>NOCDATA</span> <span class='op'>|</span> <span class='const'>Nokogiri</span><span class='op'>::</span><span class='const'>XML</span><span class='op'>::</span><span class='const'>ParseOptions</span><span class='op'>::</span><span class='const'>STRICT</span><span class='rparen'>)</span>
338
+ <span class='id identifier rubyid_new_xml'>new_xml</span> <span class='op'>=</span> <span class='id identifier rubyid_new_xml_ng'>new_xml_ng</span><span class='period'>.</span><span class='id identifier rubyid_canonicalize'>canonicalize</span>
339
+ <span class='id identifier rubyid_new_sha1'>new_sha1</span> <span class='op'>=</span> <span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA1</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_new_xml'>new_xml</span><span class='rparen'>)</span>
340
+
341
+ <span class='kw'>if</span> <span class='id identifier rubyid_existing_sha1'>existing_sha1</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>or</span> <span class='id identifier rubyid_existing_errors'>existing_errors</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='kw'>or</span> <span class='id identifier rubyid_existing_sha1'>existing_sha1</span> <span class='op'>!=</span> <span class='id identifier rubyid_new_sha1'>new_sha1</span>
342
+
343
+ <span class='kw'>if</span> <span class='id identifier rubyid_errors'>errors</span> <span class='op'>=</span> <span class='const'>Argos</span><span class='op'>::</span><span class='const'>Soap</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_validate'>validate</span><span class='lparen'>(</span><span class='id identifier rubyid_new_xml_ng'>new_xml_ng</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
344
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Failed XML schema validation</span><span class='tstring_end'>&quot;</span></span>
345
+ <span class='kw'>else</span>
346
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>wb</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_file'>file</span><span class='op'>|</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='id identifier rubyid_new_xml'>new_xml</span><span class='rparen'>)</span><span class='rbrace'>}</span>
347
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Validated and saved new data: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
348
+ <span class='kw'>end</span>
349
+
350
+ <span class='kw'>end</span>
351
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Day -</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_daysago'>daysago</span><span class='embexpr_end'>}</span><span class='tstring_content'>: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date'>date</span><span class='embexpr_end'>}</span><span class='tstring_content'>: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_new_xml_ng'>new_xml_ng</span><span class='period'>.</span><span class='id identifier rubyid_xpath'>xpath</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>//message</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'> message(s) (program </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_programNumber'>programNumber</span><span class='embexpr_end'>}</span><span class='tstring_content'>, platform </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_platformId'>platformId</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
352
+ <span class='kw'>rescue</span> <span class='const'>Argos</span><span class='op'>::</span><span class='const'>NodataException</span>
353
+ <span class='comment'># noop
354
+ </span> <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Day -</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_daysago'>daysago</span><span class='embexpr_end'>}</span><span class='tstring_content'>: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date'>date</span><span class='embexpr_end'>}</span><span class='tstring_content'>: No data for (program </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_programNumber'>programNumber</span><span class='embexpr_end'>}</span><span class='tstring_content'>, platform </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_platformId'>platformId</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
355
+ <span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
356
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_error'>error</span> <span class='id identifier rubyid_e'>e</span>
357
+ <span class='kw'>end</span>
358
+
359
+ <span class='kw'>end</span>
360
+
361
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Completed download of </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_platformId'>platformId</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
362
+
363
+ <span class='kw'>end</span>
364
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Completed download for </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_username'>username</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
365
+ <span class='kw'>end</span>
366
+ <span class='kw'>end</span></pre>
367
+ </td>
368
+ </tr>
369
+ </table>
370
+ </div>
371
+
372
+ </div>
373
+
374
+ </div>
375
+
376
+ <div id="footer">
377
+ Generated on Wed Nov 26 17:02:39 2014 by
378
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
379
+ 0.8.7.6 (ruby-2.1.1).
380
+ </div>
381
+
382
+ </body>
383
+ </html>
@@ -0,0 +1,2604 @@
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: Argos::Ds
8
+
9
+ &mdash; Documentation by YARD 0.8.7.6
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../';
20
+ framesUrl = "../frames.html#!Argos/Ds.html";
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../_index.html">Index (D)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../Argos.html" title="Argos (module)">Argos</a></span></span>
36
+ &raquo;
37
+ <span class="title">Ds</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Class: Argos::Ds
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">Array</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">Array</li>
82
+
83
+ <li class="next">Argos::Ds</li>
84
+
85
+ </ul>
86
+ <a href="#" class="inheritanceTree">show all</a>
87
+
88
+ </dd>
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dt class="r2">Includes:</dt>
96
+ <dd class="r2"><span class='object_link'><a href="Ascii.html" title="Argos::Ascii (module)">Ascii</a></span></dd>
97
+
98
+
99
+
100
+
101
+
102
+ <dt class="r1 last">Defined in:</dt>
103
+ <dd class="r1 last">lib/argos/ds.rb</dd>
104
+
105
+ </dl>
106
+ <div class="clear"></div>
107
+
108
+ <h2>Overview</h2><div class="docstring">
109
+ <div class="discussion">
110
+
111
+ <p>Argos DS|DAT file parser</p>
112
+
113
+ <p>Usage</p>
114
+
115
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_ds'>ds</span> <span class='op'>=</span> <span class='const'>Argos</span><span class='op'>::</span><span class='const'>Ds</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
116
+ <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_ds'>ds</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span></code></pre>
117
+
118
+
119
+ </div>
120
+ </div>
121
+ <div class="tags">
122
+
123
+ <p class="tag_title">Author:</p>
124
+ <ul class="author">
125
+
126
+ <li>
127
+
128
+
129
+
130
+
131
+
132
+ <div class='inline'>
133
+ <p>Espen Egeland</p>
134
+ </div>
135
+
136
+ </li>
137
+
138
+ <li>
139
+
140
+
141
+
142
+
143
+
144
+ <div class='inline'>
145
+ <p>Conrad Helgeland</p>
146
+ </div>
147
+
148
+ </li>
149
+
150
+ </ul>
151
+
152
+ </div>
153
+ <h2>Constant Summary</h2>
154
+
155
+ <dl class="constants">
156
+
157
+ <dt id="START_REGEX-constant" class="">START_REGEX =
158
+
159
+ </dt>
160
+ <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^\d{5} \d{5,6} +\d+ +\d+</span><span class='regexp_end'>/</span></span></pre></dd>
161
+
162
+ <dt id="START_REGEX_LEGACY-constant" class="">START_REGEX_LEGACY =
163
+
164
+ </dt>
165
+ <dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s+\d\.\d{3}\s\d{9}\s+\w{4}$</span><span class='regexp_end'>/</span></span></pre></dd>
166
+
167
+ <dt id="LOCATION_CLASS-constant" class="">LOCATION_CLASS =
168
+
169
+ </dt>
170
+ <dd><pre class="code"><span class='lbracket'>[</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>A</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>B</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>G</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Z</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span></pre></dd>
171
+
172
+ </dl>
173
+
174
+
175
+
176
+
177
+
178
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
179
+ <ul class="summary">
180
+
181
+ <li class="public ">
182
+ <span class="summary_signature">
183
+
184
+ <a href="#bundle-instance_method" title="#bundle (instance method)">- (Object) <strong>bundle</strong> </a>
185
+
186
+
187
+
188
+ </span>
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+ <span class="summary_desc"><div class='inline'>
202
+ <p>Returns the value of attribute bundle.</p>
203
+ </div></span>
204
+
205
+ </li>
206
+
207
+
208
+ <li class="public ">
209
+ <span class="summary_signature">
210
+
211
+ <a href="#errors-instance_method" title="#errors (instance method)">- (Object) <strong>errors</strong> </a>
212
+
213
+
214
+
215
+ </span>
216
+
217
+
218
+
219
+
220
+ <span class="note title readonly">readonly</span>
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+ <span class="summary_desc"><div class='inline'>
231
+ <p>Returns the value of attribute errors.</p>
232
+ </div></span>
233
+
234
+ </li>
235
+
236
+
237
+ <li class="public ">
238
+ <span class="summary_signature">
239
+
240
+ <a href="#filename-instance_method" title="#filename (instance method)">- (Object) <strong>filename</strong> </a>
241
+
242
+
243
+
244
+ </span>
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+ <span class="summary_desc"><div class='inline'>
258
+ <p>Returns the value of attribute filename.</p>
259
+ </div></span>
260
+
261
+ </li>
262
+
263
+
264
+ <li class="public ">
265
+ <span class="summary_signature">
266
+
267
+ <a href="#filesize-instance_method" title="#filesize (instance method)">- (Object) <strong>filesize</strong> </a>
268
+
269
+
270
+
271
+ </span>
272
+
273
+
274
+
275
+
276
+ <span class="note title readonly">readonly</span>
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+ <span class="summary_desc"><div class='inline'>
287
+ <p>Returns the value of attribute filesize.</p>
288
+ </div></span>
289
+
290
+ </li>
291
+
292
+
293
+ <li class="public ">
294
+ <span class="summary_signature">
295
+
296
+ <a href="#filter-instance_method" title="#filter (instance method)">- (Object) <strong>filter</strong> </a>
297
+
298
+
299
+
300
+ </span>
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+ <span class="summary_desc"><div class='inline'>
314
+ <p>Returns the value of attribute filter.</p>
315
+ </div></span>
316
+
317
+ </li>
318
+
319
+
320
+ <li class="public ">
321
+ <span class="summary_signature">
322
+
323
+ <a href="#filtername-instance_method" title="#filtername (instance method)">- (Object) <strong>filtername</strong> </a>
324
+
325
+
326
+
327
+ </span>
328
+
329
+
330
+
331
+
332
+ <span class="note title readonly">readonly</span>
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+ <span class="summary_desc"><div class='inline'>
343
+ <p>Returns the value of attribute filtername.</p>
344
+ </div></span>
345
+
346
+ </li>
347
+
348
+
349
+ <li class="public ">
350
+ <span class="summary_signature">
351
+
352
+ <a href="#log-instance_method" title="#log (instance method)">- (Object) <strong>log</strong> </a>
353
+
354
+
355
+
356
+ </span>
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+ <span class="summary_desc"><div class='inline'></div></span>
370
+
371
+ </li>
372
+
373
+
374
+ <li class="public ">
375
+ <span class="summary_signature">
376
+
377
+ <a href="#messages-instance_method" title="#messages (instance method)">- (Object) <strong>messages</strong> </a>
378
+
379
+
380
+
381
+ </span>
382
+
383
+
384
+
385
+
386
+ <span class="note title readonly">readonly</span>
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+ <span class="summary_desc"><div class='inline'>
397
+ <p>Returns the value of attribute messages.</p>
398
+ </div></span>
399
+
400
+ </li>
401
+
402
+
403
+ <li class="public ">
404
+ <span class="summary_signature">
405
+
406
+ <a href="#multiplicates-instance_method" title="#multiplicates (instance method)">- (Object) <strong>multiplicates</strong> </a>
407
+
408
+
409
+
410
+ </span>
411
+
412
+
413
+
414
+
415
+ <span class="note title readonly">readonly</span>
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+ <span class="summary_desc"><div class='inline'>
426
+ <p>Returns the value of attribute multiplicates.</p>
427
+ </div></span>
428
+
429
+ </li>
430
+
431
+
432
+ <li class="public ">
433
+ <span class="summary_signature">
434
+
435
+ <a href="#sha1-instance_method" title="#sha1 (instance method)">- (Object) <strong>sha1</strong> </a>
436
+
437
+
438
+
439
+ </span>
440
+
441
+
442
+
443
+
444
+ <span class="note title readonly">readonly</span>
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+ <span class="summary_desc"><div class='inline'>
455
+ <p>Returns the value of attribute sha1.</p>
456
+ </div></span>
457
+
458
+ </li>
459
+
460
+
461
+ <li class="public ">
462
+ <span class="summary_signature">
463
+
464
+ <a href="#updated-instance_method" title="#updated (instance method)">- (Object) <strong>updated</strong> </a>
465
+
466
+
467
+
468
+ </span>
469
+
470
+
471
+
472
+
473
+ <span class="note title readonly">readonly</span>
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+ <span class="summary_desc"><div class='inline'>
484
+ <p>Returns the value of attribute updated.</p>
485
+ </div></span>
486
+
487
+ </li>
488
+
489
+
490
+ <li class="public ">
491
+ <span class="summary_signature">
492
+
493
+ <a href="#valid-instance_method" title="#valid (instance method)">- (Object) <strong>valid</strong> </a>
494
+
495
+
496
+
497
+ </span>
498
+
499
+
500
+
501
+
502
+ <span class="note title readonly">readonly</span>
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+ <span class="summary_desc"><div class='inline'>
513
+ <p>Returns the value of attribute valid.</p>
514
+ </div></span>
515
+
516
+ </li>
517
+
518
+
519
+ </ul>
520
+
521
+
522
+
523
+
524
+
525
+ <h2>
526
+ Instance Method Summary
527
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
528
+ </h2>
529
+
530
+ <ul class="summary">
531
+
532
+ <li class="public ">
533
+ <span class="summary_signature">
534
+
535
+ <a href="#combine_header_with_transmission-instance_method" title="#combine_header_with_transmission (instance method)">- (Object) <strong>combine_header_with_transmission</strong>(measurements, header) </a>
536
+
537
+
538
+
539
+ </span>
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+ <span class="summary_desc"><div class='inline'>
550
+ <p>Header is is a space-separated string containing [0] Program number
551
+ [1] Platform number [2] Number of lines of data per satellite pass [3]
552
+ Number of sensors [4] Satellite identifier [5] Location class (lc)
553
+ [6] Location date 2007-03-02 [7] Location UTC time [8] Latitude
554
+ (decimal degrees) [9] Longitude, may be &gt; 180 like 255.452°,
555
+ equivalent to 255.452 - 360 = -104.548 (°E) [10] Altitude (km) [11]
556
+ Frequency (calculated).</p>
557
+ </div></span>
558
+
559
+ </li>
560
+
561
+
562
+ <li class="public ">
563
+ <span class="summary_signature">
564
+
565
+ <a href="#filter%3F-instance_method" title="#filter? (instance method)">- (Boolean) <strong>filter?</strong> </a>
566
+
567
+
568
+
569
+ </span>
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+ <span class="summary_desc"><div class='inline'></div></span>
580
+
581
+ </li>
582
+
583
+
584
+ <li class="public ">
585
+ <span class="summary_signature">
586
+
587
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (Ds) <strong>initialize</strong> </a>
588
+
589
+
590
+
591
+ </span>
592
+
593
+
594
+ <span class="note title constructor">constructor</span>
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+ <span class="summary_desc"><div class='inline'>
604
+ <p>A new instance of Ds.</p>
605
+ </div></span>
606
+
607
+ </li>
608
+
609
+
610
+ <li class="public ">
611
+ <span class="summary_signature">
612
+
613
+ <a href="#merge-instance_method" title="#merge (instance method)">- (Array) <strong>merge</strong>(ds, measurement) </a>
614
+
615
+
616
+
617
+ </span>
618
+
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+
627
+ <span class="summary_desc"><div class='inline'>
628
+ <p>Merges a DS header hash into each measurement.</p>
629
+ </div></span>
630
+
631
+ </li>
632
+
633
+
634
+ <li class="public ">
635
+ <span class="summary_signature">
636
+
637
+ <a href="#parse-instance_method" title="#parse (instance method)">- (Argos::Ds) <strong>parse</strong>(filename = nil) </a>
638
+
639
+
640
+
641
+ </span>
642
+
643
+
644
+
645
+
646
+
647
+
648
+
649
+
650
+
651
+ <span class="summary_desc"><div class='inline'>
652
+ <p>Parses Argos DS file and returns Argos::Ds -&gt; Array.</p>
653
+ </div></span>
654
+
655
+ </li>
656
+
657
+
658
+ <li class="public ">
659
+ <span class="summary_signature">
660
+
661
+ <a href="#parse_message-instance_method" title="#parse_message (instance method)">- (Object) <strong>parse_message</strong>(contact) </a>
662
+
663
+
664
+
665
+ </span>
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+ <span class="summary_desc"><div class='inline'>
676
+ <p>Pare one DS segment.</p>
677
+ </div></span>
678
+
679
+ </li>
680
+
681
+
682
+ <li class="public ">
683
+ <span class="summary_signature">
684
+
685
+ <a href="#process_item_body-instance_method" title="#process_item_body (instance method)">- (Object) <strong>process_item_body</strong>(body_arr) </a>
686
+
687
+
688
+
689
+ </span>
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+
699
+ <span class="summary_desc"><div class='inline'></div></span>
700
+
701
+ </li>
702
+
703
+
704
+ <li class="public ">
705
+ <span class="summary_signature">
706
+
707
+ <a href="#recursive_transmission_parse-instance_method" title="#recursive_transmission_parse (instance method)">- (Aray) <strong>recursive_transmission_parse</strong>(body_arr) </a>
708
+
709
+
710
+
711
+ </span>
712
+
713
+
714
+
715
+
716
+
717
+
718
+
719
+
720
+
721
+ <span class="summary_desc"><div class='inline'>
722
+ <p> @param [Array] body_arr.</p>
723
+ </div></span>
724
+
725
+ </li>
726
+
727
+
728
+ <li class="public ">
729
+ <span class="summary_signature">
730
+
731
+ <a href="#source-instance_method" title="#source (instance method)">- (Object) <strong>source</strong> </a>
732
+
733
+
734
+
735
+ </span>
736
+
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+
745
+ <span class="summary_desc"><div class='inline'></div></span>
746
+
747
+ </li>
748
+
749
+
750
+ <li class="public ">
751
+ <span class="summary_signature">
752
+
753
+ <a href="#start-instance_method" title="#start (instance method)">- (Object) <strong>start</strong> </a>
754
+
755
+
756
+
757
+ </span>
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+ <span class="summary_desc"><div class='inline'></div></span>
768
+
769
+ </li>
770
+
771
+
772
+ <li class="public ">
773
+ <span class="summary_signature">
774
+
775
+ <a href="#stop-instance_method" title="#stop (instance method)">- (Object) <strong>stop</strong> </a>
776
+
777
+
778
+
779
+ </span>
780
+
781
+
782
+
783
+
784
+
785
+
786
+
787
+
788
+
789
+ <span class="summary_desc"><div class='inline'></div></span>
790
+
791
+ </li>
792
+
793
+
794
+ <li class="public ">
795
+ <span class="summary_signature">
796
+
797
+ <a href="#transmission_package-instance_method" title="#transmission_package (instance method)">- (Object) <strong>transmission_package</strong>(data) </a>
798
+
799
+
800
+
801
+ </span>
802
+
803
+
804
+
805
+
806
+
807
+
808
+
809
+
810
+
811
+ <span class="summary_desc"><div class='inline'></div></span>
812
+
813
+ </li>
814
+
815
+
816
+ <li class="public ">
817
+ <span class="summary_signature">
818
+
819
+ <a href="#type-instance_method" title="#type (instance method)">- (Object) <strong>type</strong> </a>
820
+
821
+
822
+
823
+ </span>
824
+
825
+
826
+
827
+
828
+
829
+
830
+
831
+
832
+
833
+ <span class="summary_desc"><div class='inline'></div></span>
834
+
835
+ </li>
836
+
837
+
838
+ <li class="public ">
839
+ <span class="summary_signature">
840
+
841
+ <a href="#unfold-instance_method" title="#unfold (instance method)">- (Object) <strong>unfold</strong> </a>
842
+
843
+
844
+
845
+ </span>
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+ <span class="summary_desc"><div class='inline'>
856
+ <p>Merge position and all other top-level DS fields with each measurement line
857
+ (containing sensor data) The 3 lines below will unfold to
858
+ <strong>2</strong> documents, each with “positioned”:2010-03-05T14:19:06Z,
859
+ “platform”: “23695”, “latitude”:“79.989”, etc.</p>
860
+ </div></span>
861
+
862
+ </li>
863
+
864
+
865
+ </ul>
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Ascii.html" title="Argos::Ascii (module)">Ascii</a></span></h3>
878
+ <p class="inherited"><span class='object_link'><a href="Ascii.html#argos%3F-class_method" title="Argos::Ascii.argos? (method)">argos?</a></span>, <span class='object_link'><a href="Ascii.html#factory-class_method" title="Argos::Ascii.factory (method)">factory</a></span>, <span class='object_link'><a href="Ascii.html#latitudes-instance_method" title="Argos::Ascii#latitudes (method)">#latitudes</a></span>, <span class='object_link'><a href="Ascii.html#longitudes-instance_method" title="Argos::Ascii#longitudes (method)">#longitudes</a></span>, <span class='object_link'><a href="Ascii.html#platforms-instance_method" title="Argos::Ascii#platforms (method)">#platforms</a></span>, <span class='object_link'><a href="Ascii.html#programs-instance_method" title="Argos::Ascii#programs (method)">#programs</a></span>, <span class='object_link'><a href="Ascii.html#source-class_method" title="Argos::Ascii.source (method)">source</a></span>, <span class='object_link'><a href="Ascii.html#type-class_method" title="Argos::Ascii.type (method)">type</a></span></p>
879
+
880
+ <div id="constructor_details" class="method_details_list">
881
+ <h2>Constructor Details</h2>
882
+
883
+ <div class="method_details first">
884
+ <h3 class="signature first" id="initialize-instance_method">
885
+
886
+ - (<tt><span class='object_link'><a href="" title="Argos::Ds (class)">Ds</a></span></tt>) <strong>initialize</strong>
887
+
888
+
889
+
890
+
891
+
892
+ </h3><div class="docstring">
893
+ <div class="discussion">
894
+
895
+ <p>Returns a new instance of Ds</p>
896
+
897
+
898
+ </div>
899
+ </div>
900
+ <div class="tags">
901
+
902
+
903
+ </div><table class="source_code">
904
+ <tr>
905
+ <td>
906
+ <pre class="lines">
907
+
908
+
909
+ 26
910
+ 27
911
+ 28
912
+ 29</pre>
913
+ </td>
914
+ <td>
915
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 26</span>
916
+
917
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
918
+ <span class='ivar'>@errors</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
919
+ <span class='ivar'>@log</span> <span class='op'>=</span> <span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>STDERR</span><span class='rparen'>)</span>
920
+ <span class='kw'>end</span></pre>
921
+ </td>
922
+ </tr>
923
+ </table>
924
+ </div>
925
+
926
+ </div>
927
+
928
+ <div id="instance_attr_details" class="attr_details">
929
+ <h2>Instance Attribute Details</h2>
930
+
931
+
932
+ <span id="bundle=-instance_method"></span>
933
+ <div class="method_details first">
934
+ <h3 class="signature first" id="bundle-instance_method">
935
+
936
+ - (<tt>Object</tt>) <strong>bundle</strong>
937
+
938
+
939
+
940
+
941
+
942
+ </h3><div class="docstring">
943
+ <div class="discussion">
944
+
945
+ <p>Returns the value of attribute bundle</p>
946
+
947
+
948
+ </div>
949
+ </div>
950
+ <div class="tags">
951
+
952
+
953
+ </div><table class="source_code">
954
+ <tr>
955
+ <td>
956
+ <pre class="lines">
957
+
958
+
959
+ 18
960
+ 19
961
+ 20</pre>
962
+ </td>
963
+ <td>
964
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
965
+
966
+ <span class='kw'>def</span> <span class='id identifier rubyid_bundle'>bundle</span>
967
+ <span class='ivar'>@bundle</span>
968
+ <span class='kw'>end</span></pre>
969
+ </td>
970
+ </tr>
971
+ </table>
972
+ </div>
973
+
974
+
975
+ <span id=""></span>
976
+ <div class="method_details ">
977
+ <h3 class="signature " id="errors-instance_method">
978
+
979
+ - (<tt>Object</tt>) <strong>errors</strong> <span class="extras">(readonly)</span>
980
+
981
+
982
+
983
+
984
+
985
+ </h3><div class="docstring">
986
+ <div class="discussion">
987
+
988
+ <p>Returns the value of attribute errors</p>
989
+
990
+
991
+ </div>
992
+ </div>
993
+ <div class="tags">
994
+
995
+
996
+ </div><table class="source_code">
997
+ <tr>
998
+ <td>
999
+ <pre class="lines">
1000
+
1001
+
1002
+ 18
1003
+ 19
1004
+ 20</pre>
1005
+ </td>
1006
+ <td>
1007
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1008
+
1009
+ <span class='kw'>def</span> <span class='id identifier rubyid_errors'>errors</span>
1010
+ <span class='ivar'>@errors</span>
1011
+ <span class='kw'>end</span></pre>
1012
+ </td>
1013
+ </tr>
1014
+ </table>
1015
+ </div>
1016
+
1017
+
1018
+ <span id="filename=-instance_method"></span>
1019
+ <div class="method_details ">
1020
+ <h3 class="signature " id="filename-instance_method">
1021
+
1022
+ - (<tt>Object</tt>) <strong>filename</strong>
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+ </h3><div class="docstring">
1029
+ <div class="discussion">
1030
+
1031
+ <p>Returns the value of attribute filename</p>
1032
+
1033
+
1034
+ </div>
1035
+ </div>
1036
+ <div class="tags">
1037
+
1038
+
1039
+ </div><table class="source_code">
1040
+ <tr>
1041
+ <td>
1042
+ <pre class="lines">
1043
+
1044
+
1045
+ 18
1046
+ 19
1047
+ 20</pre>
1048
+ </td>
1049
+ <td>
1050
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1051
+
1052
+ <span class='kw'>def</span> <span class='id identifier rubyid_filename'>filename</span>
1053
+ <span class='ivar'>@filename</span>
1054
+ <span class='kw'>end</span></pre>
1055
+ </td>
1056
+ </tr>
1057
+ </table>
1058
+ </div>
1059
+
1060
+
1061
+ <span id=""></span>
1062
+ <div class="method_details ">
1063
+ <h3 class="signature " id="filesize-instance_method">
1064
+
1065
+ - (<tt>Object</tt>) <strong>filesize</strong> <span class="extras">(readonly)</span>
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+ </h3><div class="docstring">
1072
+ <div class="discussion">
1073
+
1074
+ <p>Returns the value of attribute filesize</p>
1075
+
1076
+
1077
+ </div>
1078
+ </div>
1079
+ <div class="tags">
1080
+
1081
+
1082
+ </div><table class="source_code">
1083
+ <tr>
1084
+ <td>
1085
+ <pre class="lines">
1086
+
1087
+
1088
+ 18
1089
+ 19
1090
+ 20</pre>
1091
+ </td>
1092
+ <td>
1093
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1094
+
1095
+ <span class='kw'>def</span> <span class='id identifier rubyid_filesize'>filesize</span>
1096
+ <span class='ivar'>@filesize</span>
1097
+ <span class='kw'>end</span></pre>
1098
+ </td>
1099
+ </tr>
1100
+ </table>
1101
+ </div>
1102
+
1103
+
1104
+ <span id="filter=-instance_method"></span>
1105
+ <div class="method_details ">
1106
+ <h3 class="signature " id="filter-instance_method">
1107
+
1108
+ - (<tt>Object</tt>) <strong>filter</strong>
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+ </h3><div class="docstring">
1115
+ <div class="discussion">
1116
+
1117
+ <p>Returns the value of attribute filter</p>
1118
+
1119
+
1120
+ </div>
1121
+ </div>
1122
+ <div class="tags">
1123
+
1124
+
1125
+ </div><table class="source_code">
1126
+ <tr>
1127
+ <td>
1128
+ <pre class="lines">
1129
+
1130
+
1131
+ 18
1132
+ 19
1133
+ 20</pre>
1134
+ </td>
1135
+ <td>
1136
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1137
+
1138
+ <span class='kw'>def</span> <span class='id identifier rubyid_filter'>filter</span>
1139
+ <span class='ivar'>@filter</span>
1140
+ <span class='kw'>end</span></pre>
1141
+ </td>
1142
+ </tr>
1143
+ </table>
1144
+ </div>
1145
+
1146
+
1147
+ <span id=""></span>
1148
+ <div class="method_details ">
1149
+ <h3 class="signature " id="filtername-instance_method">
1150
+
1151
+ - (<tt>Object</tt>) <strong>filtername</strong> <span class="extras">(readonly)</span>
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+ </h3><div class="docstring">
1158
+ <div class="discussion">
1159
+
1160
+ <p>Returns the value of attribute filtername</p>
1161
+
1162
+
1163
+ </div>
1164
+ </div>
1165
+ <div class="tags">
1166
+
1167
+
1168
+ </div><table class="source_code">
1169
+ <tr>
1170
+ <td>
1171
+ <pre class="lines">
1172
+
1173
+
1174
+ 18
1175
+ 19
1176
+ 20</pre>
1177
+ </td>
1178
+ <td>
1179
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1180
+
1181
+ <span class='kw'>def</span> <span class='id identifier rubyid_filtername'>filtername</span>
1182
+ <span class='ivar'>@filtername</span>
1183
+ <span class='kw'>end</span></pre>
1184
+ </td>
1185
+ </tr>
1186
+ </table>
1187
+ </div>
1188
+
1189
+
1190
+ <span id="log=-instance_method"></span>
1191
+ <div class="method_details ">
1192
+ <h3 class="signature " id="log-instance_method">
1193
+
1194
+ - (<tt>Object</tt>) <strong>log</strong>
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+ </h3><table class="source_code">
1201
+ <tr>
1202
+ <td>
1203
+ <pre class="lines">
1204
+
1205
+
1206
+ 44
1207
+ 45
1208
+ 46
1209
+ 47
1210
+ 48
1211
+ 49</pre>
1212
+ </td>
1213
+ <td>
1214
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 44</span>
1215
+
1216
+ <span class='kw'>def</span> <span class='id identifier rubyid_log'>log</span>
1217
+ <span class='kw'>if</span> <span class='ivar'>@log</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1218
+ <span class='ivar'>@log</span> <span class='op'>=</span> <span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>STDERR</span><span class='rparen'>)</span>
1219
+ <span class='kw'>end</span>
1220
+ <span class='ivar'>@log</span>
1221
+ <span class='kw'>end</span></pre>
1222
+ </td>
1223
+ </tr>
1224
+ </table>
1225
+ </div>
1226
+
1227
+
1228
+ <span id=""></span>
1229
+ <div class="method_details ">
1230
+ <h3 class="signature " id="messages-instance_method">
1231
+
1232
+ - (<tt>Object</tt>) <strong>messages</strong> <span class="extras">(readonly)</span>
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+ </h3><div class="docstring">
1239
+ <div class="discussion">
1240
+
1241
+ <p>Returns the value of attribute messages</p>
1242
+
1243
+
1244
+ </div>
1245
+ </div>
1246
+ <div class="tags">
1247
+
1248
+
1249
+ </div><table class="source_code">
1250
+ <tr>
1251
+ <td>
1252
+ <pre class="lines">
1253
+
1254
+
1255
+ 18
1256
+ 19
1257
+ 20</pre>
1258
+ </td>
1259
+ <td>
1260
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1261
+
1262
+ <span class='kw'>def</span> <span class='id identifier rubyid_messages'>messages</span>
1263
+ <span class='ivar'>@messages</span>
1264
+ <span class='kw'>end</span></pre>
1265
+ </td>
1266
+ </tr>
1267
+ </table>
1268
+ </div>
1269
+
1270
+
1271
+ <span id=""></span>
1272
+ <div class="method_details ">
1273
+ <h3 class="signature " id="multiplicates-instance_method">
1274
+
1275
+ - (<tt>Object</tt>) <strong>multiplicates</strong> <span class="extras">(readonly)</span>
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+ </h3><div class="docstring">
1282
+ <div class="discussion">
1283
+
1284
+ <p>Returns the value of attribute multiplicates</p>
1285
+
1286
+
1287
+ </div>
1288
+ </div>
1289
+ <div class="tags">
1290
+
1291
+
1292
+ </div><table class="source_code">
1293
+ <tr>
1294
+ <td>
1295
+ <pre class="lines">
1296
+
1297
+
1298
+ 18
1299
+ 19
1300
+ 20</pre>
1301
+ </td>
1302
+ <td>
1303
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1304
+
1305
+ <span class='kw'>def</span> <span class='id identifier rubyid_multiplicates'>multiplicates</span>
1306
+ <span class='ivar'>@multiplicates</span>
1307
+ <span class='kw'>end</span></pre>
1308
+ </td>
1309
+ </tr>
1310
+ </table>
1311
+ </div>
1312
+
1313
+
1314
+ <span id=""></span>
1315
+ <div class="method_details ">
1316
+ <h3 class="signature " id="sha1-instance_method">
1317
+
1318
+ - (<tt>Object</tt>) <strong>sha1</strong> <span class="extras">(readonly)</span>
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+ </h3><div class="docstring">
1325
+ <div class="discussion">
1326
+
1327
+ <p>Returns the value of attribute sha1</p>
1328
+
1329
+
1330
+ </div>
1331
+ </div>
1332
+ <div class="tags">
1333
+
1334
+
1335
+ </div><table class="source_code">
1336
+ <tr>
1337
+ <td>
1338
+ <pre class="lines">
1339
+
1340
+
1341
+ 18
1342
+ 19
1343
+ 20</pre>
1344
+ </td>
1345
+ <td>
1346
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1347
+
1348
+ <span class='kw'>def</span> <span class='id identifier rubyid_sha1'>sha1</span>
1349
+ <span class='ivar'>@sha1</span>
1350
+ <span class='kw'>end</span></pre>
1351
+ </td>
1352
+ </tr>
1353
+ </table>
1354
+ </div>
1355
+
1356
+
1357
+ <span id=""></span>
1358
+ <div class="method_details ">
1359
+ <h3 class="signature " id="updated-instance_method">
1360
+
1361
+ - (<tt>Object</tt>) <strong>updated</strong> <span class="extras">(readonly)</span>
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+ </h3><div class="docstring">
1368
+ <div class="discussion">
1369
+
1370
+ <p>Returns the value of attribute updated</p>
1371
+
1372
+
1373
+ </div>
1374
+ </div>
1375
+ <div class="tags">
1376
+
1377
+
1378
+ </div><table class="source_code">
1379
+ <tr>
1380
+ <td>
1381
+ <pre class="lines">
1382
+
1383
+
1384
+ 18
1385
+ 19
1386
+ 20</pre>
1387
+ </td>
1388
+ <td>
1389
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1390
+
1391
+ <span class='kw'>def</span> <span class='id identifier rubyid_updated'>updated</span>
1392
+ <span class='ivar'>@updated</span>
1393
+ <span class='kw'>end</span></pre>
1394
+ </td>
1395
+ </tr>
1396
+ </table>
1397
+ </div>
1398
+
1399
+
1400
+ <span id=""></span>
1401
+ <div class="method_details ">
1402
+ <h3 class="signature " id="valid-instance_method">
1403
+
1404
+ - (<tt>Object</tt>) <strong>valid</strong> <span class="extras">(readonly)</span>
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+ </h3><div class="docstring">
1411
+ <div class="discussion">
1412
+
1413
+ <p>Returns the value of attribute valid</p>
1414
+
1415
+
1416
+ </div>
1417
+ </div>
1418
+ <div class="tags">
1419
+
1420
+
1421
+ </div><table class="source_code">
1422
+ <tr>
1423
+ <td>
1424
+ <pre class="lines">
1425
+
1426
+
1427
+ 18
1428
+ 19
1429
+ 20</pre>
1430
+ </td>
1431
+ <td>
1432
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 18</span>
1433
+
1434
+ <span class='kw'>def</span> <span class='id identifier rubyid_valid'>valid</span>
1435
+ <span class='ivar'>@valid</span>
1436
+ <span class='kw'>end</span></pre>
1437
+ </td>
1438
+ </tr>
1439
+ </table>
1440
+ </div>
1441
+
1442
+ </div>
1443
+
1444
+
1445
+ <div id="instance_method_details" class="method_details_list">
1446
+ <h2>Instance Method Details</h2>
1447
+
1448
+
1449
+ <div class="method_details first">
1450
+ <h3 class="signature first" id="combine_header_with_transmission-instance_method">
1451
+
1452
+ - (<tt>Object</tt>) <strong>combine_header_with_transmission</strong>(measurements, header)
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+ </h3><div class="docstring">
1459
+ <div class="discussion">
1460
+
1461
+ <p>Header is is a space-separated string containing</p>
1462
+
1463
+ <pre class="code ruby"><code class="ruby"> [0] Program number
1464
+ [1] Platform number
1465
+ [2] Number of lines of data per satellite pass
1466
+ [3] Number of sensors
1467
+ [4] Satellite identifier
1468
+ [5] Location class (lc)
1469
+ [6] Location date 2007-03-02
1470
+ [7] Location UTC time
1471
+ [8] Latitude (decimal degrees)
1472
+ [9] Longitude, may be &gt; 180 like 255.452°, equivalent to 255.452 - 360 = -104.548 (°E)
1473
+ [10] Altitude (km)
1474
+ [11] Frequency (calculated)
1475
+ </code></pre>
1476
+
1477
+ <p>The header varies in information elemenet, often either 0..4|5 or 0..11.
1478
+ Header examples (plit on “ ”):</p>
1479
+
1480
+ <pre class="code ruby"><code class="ruby"><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>09660</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>10788</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>4</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>D</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1481
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>09660</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>10788</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>5</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>H</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1992-04-06</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>22:12:16</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>78.248</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>15.505</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>0.000</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>401649604</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
1482
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>09660</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>10788</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>3</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>D</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span></code></pre>
1483
+
1484
+ <p><a
1485
+ href="http://www.argos-system.org/files/pmedia/public/r363_9_argos_users_manual-v1.5.pdf">www.argos-system.org/files/pmedia/public/r363_9_argos_users_manual-v1.5.pdf</a>
1486
+ page 42</p>
1487
+
1488
+ <p>Warning, the parser does not support this header format from 1989
1489
+ [AUO89.DAT] 19890800-19891000: [“09660”, “14653”, “10”, “41”, “14”, “1”,
1490
+ “-.42155E+1”, “00”, “112”, “17DD”]</p>
1491
+
1492
+
1493
+ </div>
1494
+ </div>
1495
+ <div class="tags">
1496
+ <p class="tag_title">Parameters:</p>
1497
+ <ul class="param">
1498
+
1499
+ <li>
1500
+
1501
+ <span class='name'>header</span>
1502
+
1503
+
1504
+ <span class='type'>(<tt>String</tt>)</span>
1505
+
1506
+
1507
+
1508
+ </li>
1509
+
1510
+ </ul>
1511
+
1512
+
1513
+ </div><table class="source_code">
1514
+ <tr>
1515
+ <td>
1516
+ <pre class="lines">
1517
+
1518
+
1519
+ 195
1520
+ 196
1521
+ 197
1522
+ 198
1523
+ 199
1524
+ 200
1525
+ 201
1526
+ 202
1527
+ 203
1528
+ 204
1529
+ 205
1530
+ 206
1531
+ 207
1532
+ 208
1533
+ 209
1534
+ 210
1535
+ 211
1536
+ 212
1537
+ 213
1538
+ 214
1539
+ 215
1540
+ 216
1541
+ 217
1542
+ 218
1543
+ 219
1544
+ 220
1545
+ 221
1546
+ 222
1547
+ 223
1548
+ 224
1549
+ 225
1550
+ 226
1551
+ 227
1552
+ 228
1553
+ 229
1554
+ 230
1555
+ 231
1556
+ 232
1557
+ 233
1558
+ 234
1559
+ 235
1560
+ 236
1561
+ 237
1562
+ 238
1563
+ 239
1564
+ 240
1565
+ 241
1566
+ 242
1567
+ 243
1568
+ 244
1569
+ 245
1570
+ 246
1571
+ 247
1572
+ 248
1573
+ 249
1574
+ 250
1575
+ 251
1576
+ 252
1577
+ 253
1578
+ 254
1579
+ 255
1580
+ 256
1581
+ 257
1582
+ 258
1583
+ 259
1584
+ 260
1585
+ 261
1586
+ 262
1587
+ 263
1588
+ 264
1589
+ 265
1590
+ 266</pre>
1591
+ </td>
1592
+ <td>
1593
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 195</span>
1594
+
1595
+ <span class='kw'>def</span> <span class='id identifier rubyid_combine_header_with_transmission'>combine_header_with_transmission</span><span class='lparen'>(</span><span class='id identifier rubyid_measurements'>measurements</span><span class='comma'>,</span> <span class='id identifier rubyid_header'>header</span><span class='rparen'>)</span>
1596
+ <span class='kw'>unless</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Array</span>
1597
+ <span class='id identifier rubyid_header'>header</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1598
+ <span class='kw'>end</span>
1599
+ <span class='id identifier rubyid_latitude'>latitude</span> <span class='op'>=</span> <span class='id identifier rubyid_longitude'>longitude</span> <span class='op'>=</span> <span class='id identifier rubyid_positioned'>positioned</span> <span class='op'>=</span> <span class='kw'>nil</span>
1600
+ <span class='id identifier rubyid_warn'>warn</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1601
+ <span class='id identifier rubyid_errors'>errors</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1602
+
1603
+ <span class='id identifier rubyid_lc'>lc</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>5</span><span class='rbracket'>]</span>
1604
+
1605
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>6</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>and</span> <span class='kw'>not</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>7</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1606
+ <span class='id identifier rubyid_positioned'>positioned</span> <span class='op'>=</span> <span class='id identifier rubyid_convert_datetime'>convert_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>6</span><span class='rbracket'>]</span><span class='op'>+</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='op'>+</span><span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>7</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1607
+ <span class='kw'>end</span>
1608
+
1609
+ <span class='kw'>if</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>8</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='kw'>nil</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_valid_float?'>valid_float?</span><span class='lparen'>(</span><span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>8</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1610
+ <span class='id identifier rubyid_latitude'>latitude</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>8</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1611
+ <span class='kw'>end</span>
1612
+
1613
+ <span class='kw'>if</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>9</span><span class='rbracket'>]</span> <span class='op'>!=</span> <span class='kw'>nil</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_valid_float?'>valid_float?</span><span class='lparen'>(</span><span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>9</span><span class='rbracket'>]</span><span class='rparen'>)</span>
1614
+ <span class='id identifier rubyid_longitude'>longitude</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>9</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span>
1615
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='int'>180</span><span class='op'>..</span><span class='int'>360</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_longitude'>longitude</span>
1616
+ <span class='id identifier rubyid_longitude'>longitude</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_longitude'>longitude</span> <span class='op'>-</span> <span class='int'>360</span><span class='rparen'>)</span>
1617
+ <span class='kw'>end</span>
1618
+ <span class='kw'>end</span>
1619
+
1620
+ <span class='id identifier rubyid_altitude'>altitude</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>10</span><span class='rbracket'>]</span>
1621
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_altitude'>altitude</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1622
+ <span class='id identifier rubyid_altitude'>altitude</span> <span class='op'>=</span> <span class='id identifier rubyid_altitude'>altitude</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span><span class='op'>*</span><span class='int'>1000</span>
1623
+ <span class='kw'>end</span>
1624
+
1625
+ <span class='kw'>if</span> <span class='id identifier rubyid_positioned'>positioned</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>and</span> <span class='id identifier rubyid_measurements'>measurements</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1626
+ <span class='id identifier rubyid_warn'>warn</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>missing-time</span><span class='tstring_end'>&quot;</span></span>
1627
+ <span class='kw'>end</span>
1628
+
1629
+ <span class='kw'>if</span> <span class='id identifier rubyid_latitude'>latitude</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>or</span> <span class='id identifier rubyid_longitude'>longitude</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1630
+ <span class='id identifier rubyid_warn'>warn</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>missing-position</span><span class='tstring_end'>&quot;</span></span>
1631
+ <span class='kw'>else</span>
1632
+
1633
+ <span class='kw'>unless</span> <span class='id identifier rubyid_latitude'>latitude</span><span class='period'>.</span><span class='id identifier rubyid_between?'>between?</span><span class='lparen'>(</span><span class='op'>-</span><span class='int'>90</span><span class='comma'>,</span> <span class='int'>90</span><span class='rparen'>)</span> <span class='kw'>and</span> <span class='id identifier rubyid_longitude'>longitude</span><span class='period'>.</span><span class='id identifier rubyid_between?'>between?</span><span class='lparen'>(</span><span class='op'>-</span><span class='int'>180</span><span class='comma'>,</span> <span class='int'>180</span><span class='rparen'>)</span>
1634
+ <span class='id identifier rubyid_errors'>errors</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>invalid-position</span><span class='tstring_end'>&quot;</span></span>
1635
+ <span class='kw'>end</span>
1636
+ <span class='kw'>end</span>
1637
+
1638
+ <span class='kw'>unless</span> <span class='const'>LOCATION_CLASS</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_lc'>lc</span>
1639
+ <span class='id identifier rubyid_errors'>errors</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>invalid-lc</span><span class='tstring_end'>&quot;</span></span>
1640
+ <span class='kw'>end</span>
1641
+
1642
+ <span class='comment'># Satellites
1643
+ </span> <span class='comment'># [&quot;A&quot;, &quot;B&quot;, &quot;K&quot;, &quot;L&quot;, &quot;M&quot;, &quot;N&quot;, &quot;P&quot;, &quot;R&quot;]
1644
+ </span>
1645
+ <span class='id identifier rubyid_document'>document</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>program:</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='comma'>,</span>
1646
+ <span class='label'>platform:</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='comma'>,</span>
1647
+ <span class='label'>lines:</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='comma'>,</span>
1648
+ <span class='label'>sensors:</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>3</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='comma'>,</span>
1649
+ <span class='label'>satellite:</span> <span class='id identifier rubyid_header'>header</span><span class='lbracket'>[</span><span class='int'>4</span><span class='rbracket'>]</span><span class='comma'>,</span>
1650
+ <span class='label'>lc:</span> <span class='id identifier rubyid_lc'>lc</span><span class='comma'>,</span>
1651
+ <span class='label'>positioned:</span> <span class='id identifier rubyid_positioned'>positioned</span><span class='comma'>,</span>
1652
+ <span class='label'>latitude:</span> <span class='id identifier rubyid_latitude'>latitude</span><span class='comma'>,</span>
1653
+ <span class='label'>longitude:</span> <span class='id identifier rubyid_longitude'>longitude</span><span class='comma'>,</span>
1654
+ <span class='label'>altitude:</span> <span class='id identifier rubyid_altitude'>altitude</span><span class='comma'>,</span>
1655
+ <span class='label'>measurements:</span> <span class='id identifier rubyid_measurements'>measurements</span><span class='comma'>,</span>
1656
+ <span class='label'>headers:</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span>
1657
+ <span class='rbrace'>}</span>
1658
+ <span class='kw'>if</span> <span class='id identifier rubyid_warn'>warn</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
1659
+ <span class='id identifier rubyid_document'>document</span><span class='lbracket'>[</span><span class='symbol'>:warn</span><span class='rbracket'>]</span><span class='op'>=</span><span class='id identifier rubyid_warn'>warn</span>
1660
+ <span class='kw'>end</span>
1661
+ <span class='kw'>if</span> <span class='id identifier rubyid_errors'>errors</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
1662
+ <span class='id identifier rubyid_document'>document</span><span class='lbracket'>[</span><span class='symbol'>:errors</span><span class='rbracket'>]</span><span class='op'>=</span><span class='id identifier rubyid_errors'>errors</span>
1663
+ <span class='kw'>end</span>
1664
+
1665
+ <span class='id identifier rubyid_document'>document</span>
1666
+ <span class='kw'>end</span></pre>
1667
+ </td>
1668
+ </tr>
1669
+ </table>
1670
+ </div>
1671
+
1672
+ <div class="method_details ">
1673
+ <h3 class="signature " id="filter?-instance_method">
1674
+
1675
+ - (<tt>Boolean</tt>) <strong>filter?</strong>
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+ </h3><div class="docstring">
1682
+ <div class="discussion">
1683
+
1684
+
1685
+ </div>
1686
+ </div>
1687
+ <div class="tags">
1688
+
1689
+ <p class="tag_title">Returns:</p>
1690
+ <ul class="return">
1691
+
1692
+ <li>
1693
+
1694
+
1695
+ <span class='type'>(<tt>Boolean</tt>)</span>
1696
+
1697
+
1698
+
1699
+ </li>
1700
+
1701
+ </ul>
1702
+
1703
+ </div><table class="source_code">
1704
+ <tr>
1705
+ <td>
1706
+ <pre class="lines">
1707
+
1708
+
1709
+ 31
1710
+ 32
1711
+ 33</pre>
1712
+ </td>
1713
+ <td>
1714
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 31</span>
1715
+
1716
+ <span class='kw'>def</span> <span class='id identifier rubyid_filter?'>filter?</span>
1717
+ <span class='kw'>not</span> <span class='ivar'>@filter</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1718
+ <span class='kw'>end</span></pre>
1719
+ </td>
1720
+ </tr>
1721
+ </table>
1722
+ </div>
1723
+
1724
+ <div class="method_details ">
1725
+ <h3 class="signature " id="merge-instance_method">
1726
+
1727
+ - (<tt>Array</tt>) <strong>merge</strong>(ds, measurement)
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+ </h3><div class="docstring">
1734
+ <div class="discussion">
1735
+
1736
+ <p>Merges a DS header hash into each measurement</p>
1737
+
1738
+
1739
+ </div>
1740
+ </div>
1741
+ <div class="tags">
1742
+
1743
+ <p class="tag_title">Returns:</p>
1744
+ <ul class="return">
1745
+
1746
+ <li>
1747
+
1748
+
1749
+ <span class='type'>(<tt>Array</tt>)</span>
1750
+
1751
+
1752
+
1753
+ &mdash;
1754
+ <div class='inline'>
1755
+ <p>Measurements with header and static metadata merged in</p>
1756
+ </div>
1757
+
1758
+ </li>
1759
+
1760
+ </ul>
1761
+
1762
+ </div><table class="source_code">
1763
+ <tr>
1764
+ <td>
1765
+ <pre class="lines">
1766
+
1767
+
1768
+ 307
1769
+ 308
1770
+ 309
1771
+ 310
1772
+ 311
1773
+ 312
1774
+ 313
1775
+ 314
1776
+ 315
1777
+ 316
1778
+ 317
1779
+ 318
1780
+ 319
1781
+ 320
1782
+ 321
1783
+ 322
1784
+ 323
1785
+ 324
1786
+ 325
1787
+ 326
1788
+ 327
1789
+ 328
1790
+ 329
1791
+ 330
1792
+ 331
1793
+ 332
1794
+ 333
1795
+ 334
1796
+ 335
1797
+ 336
1798
+ 337
1799
+ 338
1800
+ 339
1801
+ 340
1802
+ 341
1803
+ 342
1804
+ 343
1805
+ 344
1806
+ 345
1807
+ 346
1808
+ 347
1809
+ 348
1810
+ 349
1811
+ 350
1812
+ 351
1813
+ 352
1814
+ 353
1815
+ 354
1816
+ 355
1817
+ 356
1818
+ 357
1819
+ 358
1820
+ 359
1821
+ 360
1822
+ 361
1823
+ 362
1824
+ 363</pre>
1825
+ </td>
1826
+ <td>
1827
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 307</span>
1828
+
1829
+ <span class='kw'>def</span> <span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_ds'>ds</span><span class='comma'>,</span> <span class='id identifier rubyid_measurement'>measurement</span><span class='rparen'>)</span>
1830
+ <span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid_ds'>ds</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span><span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_k'>k</span> <span class='op'>!=</span> <span class='symbol'>:measurements</span> <span class='kw'>and</span> <span class='id identifier rubyid_k'>k</span> <span class='op'>!=</span> <span class='symbol'>:errors</span> <span class='kw'>and</span> <span class='id identifier rubyid_k'>k</span> <span class='op'>!=</span> <span class='symbol'>:warn</span> <span class='rbrace'>}</span>
1831
+ <span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_measurement'>measurement</span><span class='rparen'>)</span>
1832
+ <span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span> <span class='lparen'>(</span><span class='lbrace'>{</span> <span class='label'>technology:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>argos</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
1833
+ <span class='label'>type:</span> <span class='id identifier rubyid_type'>type</span><span class='comma'>,</span>
1834
+ <span class='label'>file:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>file://</span><span class='tstring_end'>&quot;</span></span><span class='op'>+</span><span class='id identifier rubyid_filename'>filename</span><span class='comma'>,</span>
1835
+ <span class='label'>source:</span> <span class='id identifier rubyid_sha1'>sha1</span>
1836
+ <span class='rbrace'>}</span><span class='rparen'>)</span>
1837
+
1838
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:errors</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>and</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:errors</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
1839
+ <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:errors</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:errors</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_clone'>clone</span>
1840
+ <span class='kw'>end</span>
1841
+
1842
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:warn</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>and</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:warn</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
1843
+ <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:warn</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:warn</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_clone'>clone</span>
1844
+ <span class='kw'>end</span>
1845
+
1846
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:sensor_data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>and</span> <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:sensor_data</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>!=</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:sensors</span><span class='rbracket'>]</span>
1847
+ <span class='kw'>if</span> <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:warn</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1848
+ <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:warn</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
1849
+ <span class='kw'>end</span>
1850
+ <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:warn</span><span class='rbracket'>]</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>sensors-count-mismatch</span><span class='tstring_end'>&quot;</span></span>
1851
+ <span class='kw'>end</span>
1852
+
1853
+ <span class='comment'># Create id as SHA1 hash of measurement minus stuff that may vary (like filename)
1854
+ </span> <span class='comment'>#
1855
+ </span> <span class='comment'># Possible improvement for is to base id on a static list of keys
1856
+ </span> <span class='comment'># :program,
1857
+ </span> <span class='comment'># :platform,
1858
+ </span> <span class='comment'># :lines,
1859
+ </span> <span class='comment'># :sensors,
1860
+ </span> <span class='comment'># :satellite,
1861
+ </span> <span class='comment'># :lc,
1862
+ </span> <span class='comment'># :positioned,
1863
+ </span> <span class='comment'># :latitude,
1864
+ </span> <span class='comment'># :longitude,
1865
+ </span> <span class='comment'># :altitude,
1866
+ </span> <span class='comment'># :headers,
1867
+ </span> <span class='comment'># :measured,
1868
+ </span> <span class='comment'># :identical,
1869
+ </span> <span class='comment'># :sensor_data,
1870
+ </span> <span class='comment'># :technology,
1871
+ </span> <span class='comment'># :type,
1872
+ </span> <span class='comment'># :source
1873
+ </span>
1874
+ <span class='id identifier rubyid_idbase'>idbase</span> <span class='op'>=</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_clone'>clone</span>
1875
+ <span class='id identifier rubyid_idbase'>idbase</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span> <span class='symbol'>:errors</span>
1876
+ <span class='id identifier rubyid_idbase'>idbase</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span> <span class='symbol'>:file</span>
1877
+ <span class='id identifier rubyid_idbase'>idbase</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span> <span class='symbol'>:warn</span>
1878
+
1879
+ <span class='id identifier rubyid_id'>id</span> <span class='op'>=</span> <span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA1</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span><span class='lparen'>(</span><span class='id identifier rubyid_idbase'>idbase</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span><span class='rparen'>)</span>
1880
+
1881
+ <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:parser</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'>Argos</span><span class='period'>.</span><span class='id identifier rubyid_library_version'>library_version</span>
1882
+ <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_id'>id</span>
1883
+ <span class='id identifier rubyid_m'>m</span><span class='lbracket'>[</span><span class='symbol'>:bundle</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_bundle'>bundle</span>
1884
+ <span class='id identifier rubyid_m'>m</span>
1885
+ <span class='kw'>end</span></pre>
1886
+ </td>
1887
+ </tr>
1888
+ </table>
1889
+ </div>
1890
+
1891
+ <div class="method_details ">
1892
+ <h3 class="signature " id="parse-instance_method">
1893
+
1894
+ - (<tt><span class='object_link'><a href="" title="Argos::Ds (class)">Argos::Ds</a></span></tt>) <strong>parse</strong>(filename = nil)
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+ </h3><div class="docstring">
1901
+ <div class="discussion">
1902
+
1903
+ <p>Parses Argos DS file and returns Argos::Ds -&gt; Array</p>
1904
+
1905
+ <p>The parser loops all messages (stored in @messages), before #unfold
1906
+ creates a sorted Array of measurements</p>
1907
+
1908
+
1909
+ </div>
1910
+ </div>
1911
+ <div class="tags">
1912
+ <p class="tag_title">Parameters:</p>
1913
+ <ul class="param">
1914
+
1915
+ <li>
1916
+
1917
+ <span class='name'>filename</span>
1918
+
1919
+
1920
+ <span class='type'>(<tt>String</tt>)</span>
1921
+
1922
+
1923
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1924
+
1925
+
1926
+ &mdash;
1927
+ <div class='inline'>
1928
+ <p>Filename of Argos DS file</p>
1929
+ </div>
1930
+
1931
+ </li>
1932
+
1933
+ </ul>
1934
+
1935
+ <p class="tag_title">Returns:</p>
1936
+ <ul class="return">
1937
+
1938
+ <li>
1939
+
1940
+
1941
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Argos::Ds (class)">Argos::Ds</a></span></tt>)</span>
1942
+
1943
+
1944
+
1945
+ </li>
1946
+
1947
+ </ul>
1948
+
1949
+ </div><table class="source_code">
1950
+ <tr>
1951
+ <td>
1952
+ <pre class="lines">
1953
+
1954
+
1955
+ 58
1956
+ 59
1957
+ 60
1958
+ 61
1959
+ 62
1960
+ 63
1961
+ 64
1962
+ 65
1963
+ 66
1964
+ 67
1965
+ 68
1966
+ 69
1967
+ 70
1968
+ 71
1969
+ 72
1970
+ 73
1971
+ 74
1972
+ 75
1973
+ 76
1974
+ 77
1975
+ 78
1976
+ 79
1977
+ 80
1978
+ 81
1979
+ 82
1980
+ 83
1981
+ 84
1982
+ 85
1983
+ 86
1984
+ 87
1985
+ 88
1986
+ 89
1987
+ 90
1988
+ 91
1989
+ 92
1990
+ 93
1991
+ 94
1992
+ 95
1993
+ 96
1994
+ 97
1995
+ 98
1996
+ 99
1997
+ 100
1998
+ 101
1999
+ 102
2000
+ 103
2001
+ 104
2002
+ 105
2003
+ 106
2004
+ 107
2005
+ 108
2006
+ 109
2007
+ 110
2008
+ 111
2009
+ 112
2010
+ 113
2011
+ 114
2012
+ 115
2013
+ 116
2014
+ 117
2015
+ 118
2016
+ 119
2017
+ 120
2018
+ 121
2019
+ 122
2020
+ 123
2021
+ 124
2022
+ 125
2023
+ 126
2024
+ 127
2025
+ 128
2026
+ 129
2027
+ 130
2028
+ 131
2029
+ 132
2030
+ 133
2031
+ 134
2032
+ 135
2033
+ 136
2034
+ 137
2035
+ 138
2036
+ 139
2037
+ 140
2038
+ 141
2039
+ 142
2040
+ 143
2041
+ 144
2042
+ 145
2043
+ 146
2044
+ 147
2045
+ 148
2046
+ 149
2047
+ 150
2048
+ 151
2049
+ 152
2050
+ 153
2051
+ 154
2052
+ 155
2053
+ 156
2054
+ 157</pre>
2055
+ </td>
2056
+ <td>
2057
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 58</span>
2058
+
2059
+ <span class='kw'>def</span> <span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
2060
+
2061
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span> <span class='comment'># Needed if you parse multiple times
2062
+ </span> <span class='ivar'>@messages</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
2063
+ <span class='ivar'>@valid</span> <span class='op'>=</span> <span class='kw'>false</span>
2064
+
2065
+ <span class='kw'>if</span> <span class='id identifier rubyid_filename'>filename</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2066
+ <span class='id identifier rubyid_filename'>filename</span> <span class='op'>=</span> <span class='ivar'>@filename</span>
2067
+ <span class='kw'>end</span>
2068
+
2069
+
2070
+ <span class='id identifier rubyid_filename'>filename</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_realpath'>realpath</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span>
2071
+ <span class='ivar'>@filename</span> <span class='op'>=</span> <span class='id identifier rubyid_filename'>filename</span>
2072
+ <span class='kw'>if</span> <span class='id identifier rubyid_filename'>filename</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>or</span> <span class='kw'>not</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exists?'>exists?</span> <span class='id identifier rubyid_filename'>filename</span>
2073
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Missing ARGOS DS file: \&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_content'>\&quot;</span><span class='tstring_end'>&quot;</span></span>
2074
+ <span class='kw'>end</span>
2075
+ <span class='ivar'>@sha1</span> <span class='op'>=</span> <span class='const'>Digest</span><span class='op'>::</span><span class='const'>SHA1</span><span class='period'>.</span><span class='id identifier rubyid_file'>file</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_hexdigest'>hexdigest</span>
2076
+
2077
+ <span class='id identifier rubyid_contact'>contact</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
2078
+ <span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='id identifier rubyid_filename'>filename</span><span class='rparen'>)</span>
2079
+ <span class='ivar'>@filesize</span> <span class='op'>=</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span>
2080
+ <span class='ivar'>@updated</span> <span class='op'>=</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_mtime'>mtime</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span>
2081
+
2082
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Parsing ARGOS DS file </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_content'> source:</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_sha1'>sha1</span><span class='embexpr_end'>}</span><span class='tstring_content'> (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filesize'>filesize</span><span class='embexpr_end'>}</span><span class='tstring_content'> bytes)</span><span class='tstring_end'>&quot;</span></span>
2083
+ <span class='kw'>if</span> <span class='id identifier rubyid_filter?'>filter?</span>
2084
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Using filter: </span><span class='embexpr_beg'>#{</span><span class='ivar'>@filtername</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_filter'>filter</span> <span class='op'>:</span> <span class='ivar'>@filtername</span> <span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
2085
+ <span class='kw'>end</span>
2086
+
2087
+ <span class='id identifier rubyid_firstline'>firstline</span> <span class='op'>=</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_readline'>readline</span>
2088
+ <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_rewind'>rewind</span>
2089
+
2090
+ <span class='kw'>if</span> <span class='id identifier rubyid_firstline'>firstline</span> <span class='op'>=~</span> <span class='const'>START_REGEX_LEGACY</span>
2091
+ <span class='kw'>return</span> <span class='id identifier rubyid_parse_legacy'>parse_legacy</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span>
2092
+ <span class='kw'>end</span>
2093
+
2094
+ <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_line'>line</span><span class='comma'>,</span> <span class='id identifier rubyid_c'>c</span><span class='op'>|</span>
2095
+ <span class='id identifier rubyid_line'>line</span> <span class='op'>=</span> <span class='id identifier rubyid_line'>line</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
2096
+
2097
+ <span class='comment'>#if (c+1) % 1000 == 0
2098
+ </span> <span class='comment'># log.debug &quot;Line: #{c+1}&quot;
2099
+ </span> <span class='comment'>#end
2100
+ </span>
2101
+ <span class='kw'>if</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>=~</span> <span class='const'>START_REGEX</span>
2102
+
2103
+ <span class='ivar'>@valid</span> <span class='op'>=</span> <span class='kw'>true</span>
2104
+
2105
+ <span class='kw'>if</span> <span class='id identifier rubyid_contact'>contact</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
2106
+ <span class='id identifier rubyid_item'>item</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_message'>parse_message</span><span class='lparen'>(</span><span class='id identifier rubyid_contact'>contact</span><span class='rparen'>)</span>
2107
+
2108
+ <span class='kw'>if</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_valid_item?'>valid_item?</span> <span class='id identifier rubyid_item'>item</span>
2109
+
2110
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_filter?'>filter?</span> <span class='kw'>or</span> <span class='id identifier rubyid_filter'>filter</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_item'>item</span><span class='rparen'>)</span>
2111
+ <span class='ivar'>@messages</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_item'>item</span>
2112
+ <span class='kw'>end</span>
2113
+
2114
+ <span class='kw'>else</span>
2115
+ <span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Argos DS message </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_content'>:</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_c'>c</span><span class='embexpr_end'>}</span><span class='tstring_content'> lacks required program and/or platform</span><span class='tstring_end'>&quot;</span></span>
2116
+ <span class='kw'>end</span>
2117
+ <span class='kw'>end</span>
2118
+
2119
+ <span class='id identifier rubyid_contact'>contact</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='id identifier rubyid_line'>line</span><span class='rbracket'>]</span>
2120
+
2121
+ <span class='kw'>else</span>
2122
+ <span class='comment'># 2010-12-14 15:11:34 1 00 37 01 52
2123
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_contact'>contact</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='kw'>and</span> <span class='id identifier rubyid_line'>line</span> <span class='op'>!=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
2124
+ <span class='id identifier rubyid_contact'>contact</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_line'>line</span>
2125
+ <span class='kw'>end</span>
2126
+ <span class='kw'>end</span>
2127
+ <span class='kw'>end</span>
2128
+
2129
+ <span class='kw'>if</span> <span class='kw'>false</span> <span class='op'>==</span> <span class='ivar'>@valid</span>
2130
+ <span class='comment'>#log.debug file.read
2131
+ </span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cannot parse file: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
2132
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span>
2133
+ <span class='kw'>end</span>
2134
+
2135
+ <span class='id identifier rubyid_last'>last</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_message'>parse_message</span><span class='lparen'>(</span><span class='id identifier rubyid_contact'>contact</span><span class='rparen'>)</span>
2136
+
2137
+ <span class='comment'># The last message
2138
+ </span> <span class='kw'>if</span> <span class='id identifier rubyid_last'>last</span>
2139
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_filter?'>filter?</span> <span class='kw'>or</span> <span class='id identifier rubyid_filter'>filter</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_last'>last</span><span class='rparen'>)</span>
2140
+ <span class='ivar'>@messages</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_last'>last</span>
2141
+ <span class='kw'>end</span>
2142
+ <span class='kw'>end</span>
2143
+
2144
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Parsed </span><span class='embexpr_beg'>#{</span><span class='ivar'>@messages</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'> Argos DS messages into </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_content'> Array</span><span class='tstring_end'>&quot;</span></span>
2145
+ <span class='ivar'>@segments</span> <span class='op'>=</span> <span class='ivar'>@messages</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span>
2146
+ <span class='id identifier rubyid_unfold'>unfold</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_d'>d</span><span class='op'>|</span>
2147
+ <span class='kw'>self</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_d'>d</span>
2148
+ <span class='kw'>end</span>
2149
+
2150
+ <span class='ivar'>@multiplicates</span> <span class='op'>=</span> <span class='id identifier rubyid_group_by'>group_by</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_e'>e</span><span class='op'>|</span> <span class='id identifier rubyid_e'>e</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_k'>k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>&gt;</span> <span class='int'>1</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='symbol'>:first</span><span class='rparen'>)</span>
2151
+ <span class='kw'>if</span> <span class='id identifier rubyid_multiplicates'>multiplicates</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span>
2152
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_multiplicates'>multiplicates</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'> multiplicates in source sha1 </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_sha1'>sha1</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_content'>): </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_multiplicates'>multiplicates</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='op'>|</span><span class='id identifier rubyid_a'>a</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='rbrace'>}</span> <span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
2153
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_uniq!'>uniq!</span>
2154
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unique DS messages: </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'> sha1: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_sha1'>sha1</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
2155
+ <span class='kw'>end</span>
2156
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_sort_by!'>sort_by!</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_ds'>ds</span><span class='op'>|</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:measured</span><span class='rbracket'>]</span><span class='rbrace'>}</span>
2157
+ <span class='kw'>self</span>
2158
+ <span class='kw'>end</span></pre>
2159
+ </td>
2160
+ </tr>
2161
+ </table>
2162
+ </div>
2163
+
2164
+ <div class="method_details ">
2165
+ <h3 class="signature " id="parse_message-instance_method">
2166
+
2167
+ - (<tt>Object</tt>) <strong>parse_message</strong>(contact)
2168
+
2169
+
2170
+
2171
+
2172
+
2173
+ </h3><div class="docstring">
2174
+ <div class="discussion">
2175
+
2176
+ <p>Pare one DS segment</p>
2177
+
2178
+
2179
+ </div>
2180
+ </div>
2181
+ <div class="tags">
2182
+
2183
+
2184
+ </div><table class="source_code">
2185
+ <tr>
2186
+ <td>
2187
+ <pre class="lines">
2188
+
2189
+
2190
+ 160
2191
+ 161
2192
+ 162
2193
+ 163
2194
+ 164
2195
+ 165</pre>
2196
+ </td>
2197
+ <td>
2198
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 160</span>
2199
+
2200
+ <span class='kw'>def</span> <span class='id identifier rubyid_parse_message'>parse_message</span><span class='lparen'>(</span><span class='id identifier rubyid_contact'>contact</span><span class='rparen'>)</span>
2201
+ <span class='id identifier rubyid_header'>header</span> <span class='op'>=</span> <span class='id identifier rubyid_contact'>contact</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
2202
+ <span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_contact'>contact</span><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span><span class='id identifier rubyid_contact'>contact</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span><span class='rbracket'>]</span>
2203
+ <span class='id identifier rubyid_items'>items</span> <span class='op'>=</span> <span class='id identifier rubyid_process_item_body'>process_item_body</span><span class='lparen'>(</span><span class='id identifier rubyid_body'>body</span><span class='rparen'>)</span>
2204
+ <span class='id identifier rubyid_combine_header_with_transmission'>combine_header_with_transmission</span><span class='lparen'>(</span><span class='id identifier rubyid_items'>items</span><span class='comma'>,</span> <span class='id identifier rubyid_header'>header</span><span class='rparen'>)</span>
2205
+ <span class='kw'>end</span></pre>
2206
+ </td>
2207
+ </tr>
2208
+ </table>
2209
+ </div>
2210
+
2211
+ <div class="method_details ">
2212
+ <h3 class="signature " id="process_item_body-instance_method">
2213
+
2214
+ - (<tt>Object</tt>) <strong>process_item_body</strong>(body_arr)
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+ </h3><table class="source_code">
2221
+ <tr>
2222
+ <td>
2223
+ <pre class="lines">
2224
+
2225
+
2226
+ 365
2227
+ 366
2228
+ 367
2229
+ 368
2230
+ 369</pre>
2231
+ </td>
2232
+ <td>
2233
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 365</span>
2234
+
2235
+ <span class='kw'>def</span> <span class='id identifier rubyid_process_item_body'>process_item_body</span><span class='lparen'>(</span><span class='id identifier rubyid_body_arr'>body_arr</span><span class='rparen'>)</span>
2236
+ <span class='ivar'>@buf</span> <span class='op'>=</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
2237
+ <span class='ivar'>@transmission_arr</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
2238
+ <span class='ivar'>@transmission_arr</span> <span class='op'>=</span> <span class='id identifier rubyid_recursive_transmission_parse'>recursive_transmission_parse</span><span class='lparen'>(</span><span class='id identifier rubyid_body_arr'>body_arr</span><span class='rparen'>)</span>
2239
+ <span class='kw'>end</span></pre>
2240
+ </td>
2241
+ </tr>
2242
+ </table>
2243
+ </div>
2244
+
2245
+ <div class="method_details ">
2246
+ <h3 class="signature " id="recursive_transmission_parse-instance_method">
2247
+
2248
+ - (<tt>Aray</tt>) <strong>recursive_transmission_parse</strong>(body_arr)
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+ </h3><div class="docstring">
2255
+ <div class="discussion">
2256
+
2257
+ <p> @param [Array] body_arr</p>
2258
+
2259
+
2260
+ </div>
2261
+ </div>
2262
+ <div class="tags">
2263
+
2264
+ <p class="tag_title">Returns:</p>
2265
+ <ul class="return">
2266
+
2267
+ <li>
2268
+
2269
+
2270
+ <span class='type'>(<tt>Aray</tt>)</span>
2271
+
2272
+
2273
+
2274
+ </li>
2275
+
2276
+ </ul>
2277
+
2278
+ </div><table class="source_code">
2279
+ <tr>
2280
+ <td>
2281
+ <pre class="lines">
2282
+
2283
+
2284
+ 374
2285
+ 375
2286
+ 376
2287
+ 377
2288
+ 378
2289
+ 379
2290
+ 380
2291
+ 381
2292
+ 382
2293
+ 383
2294
+ 384
2295
+ 385
2296
+ 386</pre>
2297
+ </td>
2298
+ <td>
2299
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 374</span>
2300
+
2301
+ <span class='kw'>def</span> <span class='id identifier rubyid_recursive_transmission_parse'>recursive_transmission_parse</span><span class='lparen'>(</span><span class='id identifier rubyid_body_arr'>body_arr</span><span class='rparen'>)</span>
2302
+ <span class='kw'>if</span> <span class='id identifier rubyid_body_arr'>body_arr</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>or</span> <span class='id identifier rubyid_body_arr'>body_arr</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
2303
+ <span class='kw'>return</span>
2304
+ <span class='kw'>end</span>
2305
+ <span class='ivar'>@buf</span> <span class='op'>=</span><span class='ivar'>@buf</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span> <span class='op'>+</span> <span class='id identifier rubyid_body_arr'>body_arr</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
2306
+
2307
+ <span class='kw'>if</span> <span class='id identifier rubyid_body_arr'>body_arr</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>=~</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}</span><span class='regexp_end'>/</span></span> <span class='kw'>or</span> <span class='id identifier rubyid_body_arr'>body_arr</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='op'>==</span><span class='kw'>nil</span>
2308
+ <span class='ivar'>@transmission_arr</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_transmission_package'>transmission_package</span><span class='lparen'>(</span><span class='ivar'>@buf</span><span class='rparen'>)</span>
2309
+ <span class='ivar'>@buf</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span>
2310
+ <span class='kw'>end</span>
2311
+ <span class='id identifier rubyid_recursive_transmission_parse'>recursive_transmission_parse</span><span class='lparen'>(</span><span class='id identifier rubyid_body_arr'>body_arr</span><span class='lbracket'>[</span><span class='int'>1</span><span class='comma'>,</span><span class='id identifier rubyid_body_arr'>body_arr</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rbracket'>]</span><span class='rparen'>)</span>
2312
+ <span class='ivar'>@transmission_arr</span>
2313
+ <span class='kw'>end</span></pre>
2314
+ </td>
2315
+ </tr>
2316
+ </table>
2317
+ </div>
2318
+
2319
+ <div class="method_details ">
2320
+ <h3 class="signature " id="source-instance_method">
2321
+
2322
+ - (<tt>Object</tt>) <strong>source</strong>
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+ </h3><table class="source_code">
2329
+ <tr>
2330
+ <td>
2331
+ <pre class="lines">
2332
+
2333
+
2334
+ 412
2335
+ 413
2336
+ 414</pre>
2337
+ </td>
2338
+ <td>
2339
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 412</span>
2340
+
2341
+ <span class='kw'>def</span> <span class='id identifier rubyid_source'>source</span>
2342
+ <span class='ivar'>@sha1</span>
2343
+ <span class='kw'>end</span></pre>
2344
+ </td>
2345
+ </tr>
2346
+ </table>
2347
+ </div>
2348
+
2349
+ <div class="method_details ">
2350
+ <h3 class="signature " id="start-instance_method">
2351
+
2352
+ - (<tt>Object</tt>) <strong>start</strong>
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+ </h3><table class="source_code">
2359
+ <tr>
2360
+ <td>
2361
+ <pre class="lines">
2362
+
2363
+
2364
+ 404
2365
+ 405
2366
+ 406</pre>
2367
+ </td>
2368
+ <td>
2369
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 404</span>
2370
+
2371
+ <span class='kw'>def</span> <span class='id identifier rubyid_start'>start</span>
2372
+ <span class='id identifier rubyid_positioned'>positioned</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_ds'>ds</span><span class='op'>|</span> <span class='id identifier rubyid_ds'>ds</span> <span class='lbracket'>[</span><span class='symbol'>:positioned</span><span class='rbracket'>]</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
2373
+ <span class='kw'>end</span></pre>
2374
+ </td>
2375
+ </tr>
2376
+ </table>
2377
+ </div>
2378
+
2379
+ <div class="method_details ">
2380
+ <h3 class="signature " id="stop-instance_method">
2381
+
2382
+ - (<tt>Object</tt>) <strong>stop</strong>
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+ </h3><table class="source_code">
2389
+ <tr>
2390
+ <td>
2391
+ <pre class="lines">
2392
+
2393
+
2394
+ 408
2395
+ 409
2396
+ 410</pre>
2397
+ </td>
2398
+ <td>
2399
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 408</span>
2400
+
2401
+ <span class='kw'>def</span> <span class='id identifier rubyid_stop'>stop</span>
2402
+ <span class='id identifier rubyid_positioned'>positioned</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_ds'>ds</span><span class='op'>|</span> <span class='id identifier rubyid_ds'>ds</span> <span class='lbracket'>[</span><span class='symbol'>:positioned</span><span class='rbracket'>]</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span>
2403
+ <span class='kw'>end</span></pre>
2404
+ </td>
2405
+ </tr>
2406
+ </table>
2407
+ </div>
2408
+
2409
+ <div class="method_details ">
2410
+ <h3 class="signature " id="transmission_package-instance_method">
2411
+
2412
+ - (<tt>Object</tt>) <strong>transmission_package</strong>(data)
2413
+
2414
+
2415
+
2416
+
2417
+
2418
+ </h3><table class="source_code">
2419
+ <tr>
2420
+ <td>
2421
+ <pre class="lines">
2422
+
2423
+
2424
+ 388
2425
+ 389
2426
+ 390
2427
+ 391
2428
+ 392
2429
+ 393
2430
+ 394
2431
+ 395
2432
+ 396
2433
+ 397
2434
+ 398
2435
+ 399
2436
+ 400
2437
+ 401
2438
+ 402</pre>
2439
+ </td>
2440
+ <td>
2441
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 388</span>
2442
+
2443
+ <span class='kw'>def</span> <span class='id identifier rubyid_transmission_package'>transmission_package</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
2444
+ <span class='id identifier rubyid_transmission_time'>transmission_time</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})</span><span class='regexp_end'>/</span></span><span class='comma'>,</span><span class='int'>1</span><span class='rbracket'>]</span>
2445
+ <span class='id identifier rubyid_transmission_time'>transmission_time</span> <span class='op'>=</span> <span class='id identifier rubyid_convert_datetime'>convert_datetime</span><span class='lparen'>(</span><span class='id identifier rubyid_transmission_time'>transmission_time</span><span class='rparen'>)</span>
2446
+
2447
+ <span class='id identifier rubyid_identical'>identical</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>2</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
2448
+ <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='lbracket'>[</span><span class='int'>23</span><span class='comma'>,</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rbracket'>]</span>
2449
+
2450
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2451
+ <span class='id identifier rubyid_sensor_data'>sensor_data</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
2452
+ <span class='kw'>end</span>
2453
+ <span class='lbrace'>{</span> <span class='label'>measured:</span> <span class='id identifier rubyid_transmission_time'>transmission_time</span><span class='comma'>,</span>
2454
+ <span class='label'>identical:</span> <span class='id identifier rubyid_identical'>identical</span><span class='comma'>,</span>
2455
+ <span class='label'>sensor_data:</span> <span class='id identifier rubyid_sensor_data'>sensor_data</span>
2456
+ <span class='rbrace'>}</span>
2457
+ <span class='kw'>end</span></pre>
2458
+ </td>
2459
+ </tr>
2460
+ </table>
2461
+ </div>
2462
+
2463
+ <div class="method_details ">
2464
+ <h3 class="signature " id="type-instance_method">
2465
+
2466
+ - (<tt>Object</tt>) <strong>type</strong>
2467
+
2468
+
2469
+
2470
+
2471
+
2472
+ </h3><table class="source_code">
2473
+ <tr>
2474
+ <td>
2475
+ <pre class="lines">
2476
+
2477
+
2478
+ 167
2479
+ 168
2480
+ 169</pre>
2481
+ </td>
2482
+ <td>
2483
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 167</span>
2484
+
2485
+ <span class='kw'>def</span> <span class='id identifier rubyid_type'>type</span>
2486
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ds</span><span class='tstring_end'>&quot;</span></span>
2487
+ <span class='kw'>end</span></pre>
2488
+ </td>
2489
+ </tr>
2490
+ </table>
2491
+ </div>
2492
+
2493
+ <div class="method_details ">
2494
+ <h3 class="signature " id="unfold-instance_method">
2495
+
2496
+ - (<tt>Object</tt>) <strong>unfold</strong>
2497
+
2498
+
2499
+
2500
+
2501
+
2502
+ </h3><div class="docstring">
2503
+ <div class="discussion">
2504
+
2505
+ <p>Merge position and all other top-level DS fields with each measurement line
2506
+ (containing sensor data) The 3 lines below will unfold to
2507
+ <strong>2</strong> documents, each with “positioned”:2010-03-05T14:19:06Z,
2508
+ “platform”: “23695”, “latitude”:“79.989”, etc. 23695 074772 3 4 M B
2509
+ 2010-03-05 14:19:06 79.989 12.644 0.036 401639707</p>
2510
+
2511
+ <pre class="code ruby"><code class="ruby">2010-03-05 14:17:35 1 01 25 37630 36
2512
+ 2010-03-05 14:20:38 1 00 28 00 65</code></pre>
2513
+
2514
+
2515
+ </div>
2516
+ </div>
2517
+ <div class="tags">
2518
+
2519
+
2520
+ </div><table class="source_code">
2521
+ <tr>
2522
+ <td>
2523
+ <pre class="lines">
2524
+
2525
+
2526
+ 275
2527
+ 276
2528
+ 277
2529
+ 278
2530
+ 279
2531
+ 280
2532
+ 281
2533
+ 282
2534
+ 283
2535
+ 284
2536
+ 285
2537
+ 286
2538
+ 287
2539
+ 288
2540
+ 289
2541
+ 290
2542
+ 291
2543
+ 292
2544
+ 293
2545
+ 294
2546
+ 295
2547
+ 296
2548
+ 297
2549
+ 298
2550
+ 299
2551
+ 300
2552
+ 301
2553
+ 302
2554
+ 303</pre>
2555
+ </td>
2556
+ <td>
2557
+ <pre class="code"><span class="info file"># File 'lib/argos/ds.rb', line 275</span>
2558
+
2559
+ <span class='kw'>def</span> <span class='id identifier rubyid_unfold'>unfold</span>
2560
+
2561
+ <span class='comment'># First, grab all segments *without* measurements (if any)
2562
+ </span> <span class='id identifier rubyid_unfolded'>unfolded</span> <span class='op'>=</span> <span class='id identifier rubyid_messages'>messages</span><span class='period'>.</span><span class='id identifier rubyid_reject'>reject</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_ds'>ds</span><span class='op'>|</span> <span class='id identifier rubyid_ds'>ds</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:measurements</span><span class='rparen'>)</span> <span class='kw'>or</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:measurements</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='rbrace'>}</span>
2563
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_messages'>messages</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>-</span> <span class='id identifier rubyid_unfolded'>unfolded</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'> / </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_messages'>messages</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'> messages contained measurements</span><span class='tstring_end'>&quot;</span></span>
2564
+
2565
+ <span class='id identifier rubyid_messages'>messages</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_ds'>ds</span><span class='op'>|</span>
2566
+ <span class='id identifier rubyid_ds'>ds</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='symbol'>:measurements</span><span class='rparen'>)</span> <span class='kw'>and</span> <span class='kw'>not</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:measurements</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2567
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_ds'>ds</span><span class='op'>|</span>
2568
+
2569
+ <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:measurements</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_measurement'>measurement</span><span class='op'>|</span>
2570
+ <span class='id identifier rubyid_unfolded'>unfolded</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_ds'>ds</span><span class='comma'>,</span><span class='id identifier rubyid_measurement'>measurement</span><span class='rparen'>)</span>
2571
+ <span class='kw'>end</span>
2572
+ <span class='kw'>end</span>
2573
+
2574
+ <span class='id identifier rubyid_unfolded'>unfolded</span> <span class='op'>=</span> <span class='id identifier rubyid_unfolded'>unfolded</span><span class='period'>.</span><span class='id identifier rubyid_sort_by'>sort_by</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_ds'>ds</span><span class='op'>|</span>
2575
+ <span class='kw'>if</span> <span class='kw'>not</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:measured</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2576
+ <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:measured</span><span class='rbracket'>]</span><span class='rparen'>)</span>
2577
+ <span class='kw'>elsif</span> <span class='kw'>not</span> <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:positioned</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
2578
+ <span class='const'>DateTime</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:positioned</span><span class='rbracket'>]</span><span class='rparen'>)</span>
2579
+ <span class='kw'>else</span>
2580
+ <span class='id identifier rubyid_ds'>ds</span><span class='lbracket'>[</span><span class='symbol'>:program</span><span class='rbracket'>]</span>
2581
+ <span class='kw'>end</span>
2582
+ <span class='rbrace'>}</span>
2583
+
2584
+ <span class='id identifier rubyid_log'>log</span><span class='period'>.</span><span class='id identifier rubyid_info'>info</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unfolded </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_messages'>messages</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'> ARGOS DS position and sensor messages into </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_unfolded'>unfolded</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='embexpr_end'>}</span><span class='tstring_content'> new documents source:</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_sha1'>sha1</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_filename'>filename</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
2585
+
2586
+ <span class='id identifier rubyid_unfolded'>unfolded</span>
2587
+ <span class='kw'>end</span></pre>
2588
+ </td>
2589
+ </tr>
2590
+ </table>
2591
+ </div>
2592
+
2593
+ </div>
2594
+
2595
+ </div>
2596
+
2597
+ <div id="footer">
2598
+ Generated on Wed Nov 26 17:02:38 2014 by
2599
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2600
+ 0.8.7.6 (ruby-2.1.1).
2601
+ </div>
2602
+
2603
+ </body>
2604
+ </html>