trackerific 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>