trackerific 0.2.1 → 0.3.0

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,453 @@
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: Trackerific::USPS
8
+
9
+ &mdash; Documentation by YARD 0.7.1
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '..';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="../_index.html">Index (U)</a> &raquo;
37
+ <span class='title'><span class='object_link'><a href="../Trackerific.html" title="Trackerific (module)">Trackerific</a></span></span>
38
+ &raquo;
39
+ <span class="title">USPS</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Class: Trackerific::USPS
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+ <dt class="r1">Inherits:</dt>
68
+ <dd class="r1">
69
+ <span class="inheritName"><span class='object_link'><a href="Base.html" title="Trackerific::Base (class)">Base</a></span></span>
70
+
71
+ <ul class="fullTree">
72
+ <li>Object</li>
73
+
74
+ <li class="next"><span class='object_link'><a href="Base.html" title="Trackerific::Base (class)">Base</a></span></li>
75
+
76
+ <li class="next">Trackerific::USPS</li>
77
+
78
+ </ul>
79
+ <a href="#" class="inheritanceTree">show all</a>
80
+
81
+ </dd>
82
+
83
+
84
+
85
+
86
+
87
+
88
+ <dt class="r2">Includes:</dt>
89
+ <dd class="r2">HTTParty</dd>
90
+
91
+
92
+
93
+
94
+
95
+ <dt class="r1 last">Defined in:</dt>
96
+ <dd class="r1 last">lib/usps.rb</dd>
97
+
98
+ </dl>
99
+ <div class="clear"></div>
100
+
101
+ <h2>Overview</h2><div class="docstring">
102
+ <div class="discussion">
103
+ <p>
104
+ Provides package tracking support for USPS.
105
+ </p>
106
+
107
+
108
+ </div>
109
+ </div>
110
+ <div class="tags">
111
+
112
+ </div>
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ <h2>
128
+ Instance Method Summary
129
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
130
+ </h2>
131
+
132
+ <ul class="summary">
133
+
134
+ <li class="public ">
135
+ <span class="summary_signature">
136
+
137
+ <a href="#initialize-instance_method" title="#initialize (instance method)">- (USPS) <strong>initialize</strong>(options = {}) </a>
138
+
139
+
140
+
141
+ </span>
142
+
143
+ <span class="note title constructor">constructor</span>
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+ <span class="summary_desc"><div class='inline'><p>
153
+ A new instance of USPS.
154
+ </p>
155
+ </div></span>
156
+
157
+ </li>
158
+
159
+
160
+ <li class="public ">
161
+ <span class="summary_signature">
162
+
163
+ <a href="#required_options-instance_method" title="#required_options (instance method)">- (Array) <strong>required_options</strong> </a>
164
+
165
+
166
+
167
+ </span>
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+ <span class="summary_desc"><div class='inline'><p>
177
+ The required option for tracking a UPS package is :user_id.
178
+ </p>
179
+ </div></span>
180
+
181
+ </li>
182
+
183
+
184
+ <li class="public ">
185
+ <span class="summary_signature">
186
+
187
+ <a href="#track_package-instance_method" title="#track_package (instance method)">- (Trackerific::Details) <strong>track_package</strong>(package_id) </a>
188
+
189
+
190
+
191
+ </span>
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+ <span class="summary_desc"><div class='inline'><p>
201
+ Tracks a USPS package.
202
+ </p>
203
+ </div></span>
204
+
205
+ </li>
206
+
207
+
208
+ </ul>
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+ <div id="constructor_details" class="method_details_list">
218
+ <h2>Constructor Details</h2>
219
+
220
+ <div class="method_details first">
221
+ <p class="signature first" id="initialize-instance_method">
222
+
223
+ - (<tt><span class='object_link'><a href="" title="Trackerific::USPS (class)">USPS</a></span></tt>) <strong>initialize</strong>(options = {})
224
+
225
+
226
+
227
+ </p><div class="docstring">
228
+ <div class="discussion">
229
+ <p>
230
+ A new instance of USPS
231
+ </p>
232
+
233
+
234
+ </div>
235
+ </div>
236
+ <div class="tags">
237
+
238
+ </div><table class="source_code">
239
+ <tr>
240
+ <td>
241
+ <pre class="lines">
242
+
243
+
244
+ 16
245
+ 17
246
+ 18
247
+ 19</pre>
248
+ </td>
249
+ <td>
250
+ <pre class="code"><span class="info file"># File 'lib/usps.rb', line 16</span>
251
+
252
+ <span class='kw'>def</span> <span class='id initialize'>initialize</span><span class='lparen'>(</span><span class='id options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
253
+ <span class='kw'>super</span>
254
+ <span class='ivar'>@options</span> <span class='op'>=</span> <span class='id options'>options</span>
255
+ <span class='kw'>end</span></pre>
256
+ </td>
257
+ </tr>
258
+ </table>
259
+ </div>
260
+
261
+ </div>
262
+
263
+
264
+ <div id="instance_method_details" class="method_details_list">
265
+ <h2>Instance Method Details</h2>
266
+
267
+
268
+ <div class="method_details first">
269
+ <p class="signature first" id="required_options-instance_method">
270
+
271
+ - (<tt>Array</tt>) <strong>required_options</strong>
272
+
273
+
274
+
275
+ </p><div class="docstring">
276
+ <div class="discussion">
277
+ <p>
278
+ The required option for tracking a UPS package is :user_id
279
+ </p>
280
+
281
+
282
+ </div>
283
+ </div>
284
+ <div class="tags">
285
+ <h3>Returns:</h3>
286
+ <ul class="return">
287
+
288
+ <li>
289
+
290
+
291
+ <span class='type'>(<tt>Array</tt>)</span>
292
+
293
+
294
+
295
+ &mdash;
296
+ <div class='inline'><p>
297
+ the required options for tracking a UPS package.
298
+ </p>
299
+ </div>
300
+
301
+ </li>
302
+
303
+ </ul>
304
+
305
+ </div><table class="source_code">
306
+ <tr>
307
+ <td>
308
+ <pre class="lines">
309
+
310
+
311
+ 24
312
+ 25
313
+ 26</pre>
314
+ </td>
315
+ <td>
316
+ <pre class="code"><span class="info file"># File 'lib/usps.rb', line 24</span>
317
+
318
+ <span class='kw'>def</span> <span class='id required_options'>required_options</span>
319
+ <span class='lbracket'>[</span><span class='symbol'>:user_id</span><span class='rbracket'>]</span>
320
+ <span class='kw'>end</span></pre>
321
+ </td>
322
+ </tr>
323
+ </table>
324
+ </div>
325
+
326
+ <div class="method_details ">
327
+ <p class="signature " id="track_package-instance_method">
328
+
329
+ - (<tt><span class='object_link'><a href="Details.html" title="Trackerific::Details (class)">Trackerific::Details</a></span></tt>) <strong>track_package</strong>(package_id)
330
+
331
+
332
+
333
+ </p><div class="docstring">
334
+ <div class="discussion">
335
+ <p>
336
+ Tracks a USPS package. A Trackerific::Error is raised when a package cannot
337
+ be tracked.
338
+ </p>
339
+
340
+
341
+ </div>
342
+ </div>
343
+ <div class="tags">
344
+ <h3>Returns:</h3>
345
+ <ul class="return">
346
+
347
+ <li>
348
+
349
+
350
+ <span class='type'>(<tt><span class='object_link'><a href="Details.html" title="Trackerific::Details (class)">Trackerific::Details</a></span></tt>)</span>
351
+
352
+
353
+
354
+ &mdash;
355
+ <div class='inline'><p>
356
+ the tracking details
357
+ </p>
358
+ </div>
359
+
360
+ </li>
361
+
362
+ </ul>
363
+ <h3>Raises:</h3>
364
+ <ul class="raise">
365
+
366
+ <li>
367
+
368
+
369
+ <span class='type'>(<tt><span class='object_link'><a href="Error.html" title="Trackerific::Error (class)">Trackerific::Error</a></span></tt>)</span>
370
+
371
+
372
+
373
+ </li>
374
+
375
+ </ul>
376
+
377
+ </div><table class="source_code">
378
+ <tr>
379
+ <td>
380
+ <pre class="lines">
381
+
382
+
383
+ 31
384
+ 32
385
+ 33
386
+ 34
387
+ 35
388
+ 36
389
+ 37
390
+ 38
391
+ 39
392
+ 40
393
+ 41
394
+ 42
395
+ 43
396
+ 44
397
+ 45
398
+ 46
399
+ 47
400
+ 48
401
+ 49
402
+ 50
403
+ 51
404
+ 52
405
+ 53
406
+ 54
407
+ 55</pre>
408
+ </td>
409
+ <td>
410
+ <pre class="code"><span class="info file"># File 'lib/usps.rb', line 31</span>
411
+
412
+ <span class='kw'>def</span> <span class='id track_package'>track_package</span><span class='lparen'>(</span><span class='id package_id'>package_id</span><span class='rparen'>)</span>
413
+ <span class='kw'>super</span>
414
+ <span class='id response'>response</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id get'>get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/ShippingAPITest.dll</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:query</span> <span class='op'>=&gt;</span> <span class='lbrace'>{</span><span class='symbol'>:API</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TrackV2</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:XML</span> <span class='op'>=&gt;</span> <span class='id build_xml_request'>build_xml_request</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id to_query'>to_query</span><span class='rparen'>)</span>
415
+ <span class='id response'>response</span><span class='period'>.</span><span class='id error!'>error!</span> <span class='kw'>unless</span> <span class='id response'>response</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='int'>200</span>
416
+ <span class='id raise'>raise</span> <span class='const'>Trackerific</span><span class='op'>::</span><span class='const'>Error</span><span class='comma'>,</span> <span class='id response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Error</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Description</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='kw'>unless</span> <span class='id response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Error</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id nil?'>nil?</span>
417
+ <span class='id raise'>raise</span> <span class='const'>Trackerific</span><span class='op'>::</span><span class='const'>Error</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Tracking information not found in response from server.</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TrackResponse</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id nil?'>nil?</span>
418
+ <span class='id tracking_info'>tracking_info</span> <span class='op'>=</span> <span class='id response'>response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TrackResponse</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TrackInfo</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
419
+ <span class='id details'>details</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
420
+ <span class='id tracking_info'>tracking_info</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TrackDetail</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id d'>d</span><span class='op'>|</span>
421
+ <span class='comment'># each tracking detail is a string in this format:
422
+ </span> <span class='comment'># MM DD HH:MM am/pm DESCRIPTION CITY STATE ZIP.
423
+ </span> <span class='comment'># unfortunately, it will not be possible to tell the difference between
424
+ </span> <span class='comment'># the location, and the summary. So, for USPS, the location will be in
425
+ </span> <span class='comment'># the summary
426
+ </span> <span class='id d'>d</span> <span class='op'>=</span> <span class='id d'>d</span><span class='period'>.</span><span class='id 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>
427
+ <span class='id date'>date</span> <span class='op'>=</span> <span class='const'>DateTime</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='id d'>d</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>..</span><span class='int'>3</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id join'>join</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='rparen'>)</span>
428
+ <span class='id desc'>desc</span> <span class='op'>=</span> <span class='id d'>d</span><span class='lbracket'>[</span><span class='int'>4</span><span class='op'>..</span><span class='id d'>d</span><span class='period'>.</span><span class='id length'>length</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id join'>join</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>
429
+ <span class='id details'>details</span> <span class='op'>&lt;&lt;</span> <span class='const'>Trackerific</span><span class='op'>::</span><span class='const'>Event</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id date'>date</span><span class='comma'>,</span> <span class='id desc'>desc</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
430
+ <span class='kw'>end</span>
431
+ <span class='const'>Trackerific</span><span class='op'>::</span><span class='const'>Details</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span>
432
+ <span class='id tracking_info'>tracking_info</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ID</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
433
+ <span class='id tracking_info'>tracking_info</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TrackSummary</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
434
+ <span class='id details'>details</span>
435
+ <span class='rparen'>)</span>
436
+ <span class='kw'>end</span></pre>
437
+ </td>
438
+ </tr>
439
+ </table>
440
+ </div>
441
+
442
+ </div>
443
+
444
+ </div>
445
+
446
+ <div id="footer">
447
+ Generated on Mon Jun 13 13:53:33 2011 by
448
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
449
+ 0.7.1 (ruby-1.9.2).
450
+ </div>
451
+
452
+ </body>
453
+ </html>