argos-ruby 1.2.5 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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>