trackerific 0.5.5 → 0.6.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.
Files changed (49) hide show
  1. data/README.rdoc +62 -44
  2. data/Rakefile +1 -1
  3. data/VERSION +1 -1
  4. data/changelog +9 -0
  5. data/lib/trackerific/configuration.rb +2 -2
  6. data/lib/trackerific/details.rb +36 -10
  7. data/lib/trackerific/event.rb +9 -7
  8. data/lib/trackerific/service.rb +22 -6
  9. data/lib/trackerific/services/fedex.rb +11 -7
  10. data/lib/trackerific/services/mock_service.rb +23 -14
  11. data/lib/trackerific/services/ups.rb +12 -8
  12. data/lib/trackerific/services/usps.rb +114 -21
  13. data/spec/fixtures/usps_city_state_lookup_response.xml +8 -0
  14. data/spec/lib/helpers/options_helper_spec.rb +3 -3
  15. data/spec/lib/trackerific/configuration_spec.rb +35 -0
  16. data/spec/lib/trackerific/details_spec.rb +71 -11
  17. data/spec/lib/trackerific/event_spec.rb +34 -19
  18. data/spec/lib/trackerific/service_spec.rb +3 -3
  19. data/spec/lib/trackerific/services/fedex_spec.rb +16 -3
  20. data/spec/lib/trackerific/services/mock_service_spec.rb +19 -4
  21. data/spec/lib/trackerific/services/ups_spec.rb +17 -2
  22. data/spec/lib/trackerific/services/usps_spec.rb +60 -11
  23. data/spec/lib/trackerific_spec.rb +7 -5
  24. data/trackerific.gemspec +5 -27
  25. metadata +8 -30
  26. data/doc/OptionsHelper.html +0 -287
  27. data/doc/Trackerific/Configuration.html +0 -354
  28. data/doc/Trackerific/Details.html +0 -565
  29. data/doc/Trackerific/Error.html +0 -127
  30. data/doc/Trackerific/Event.html +0 -639
  31. data/doc/Trackerific/FedEx.html +0 -558
  32. data/doc/Trackerific/Service.html +0 -579
  33. data/doc/Trackerific/UPS.html +0 -532
  34. data/doc/Trackerific/USPS.html +0 -568
  35. data/doc/Trackerific.html +0 -833
  36. data/doc/_index.html +0 -226
  37. data/doc/class_list.html +0 -47
  38. data/doc/css/common.css +0 -1
  39. data/doc/css/full_list.css +0 -53
  40. data/doc/css/style.css +0 -320
  41. data/doc/file.README.html +0 -288
  42. data/doc/file_list.html +0 -49
  43. data/doc/frames.html +0 -13
  44. data/doc/index.html +0 -288
  45. data/doc/js/app.js +0 -205
  46. data/doc/js/full_list.js +0 -150
  47. data/doc/js/jquery.js +0 -16
  48. data/doc/method_list.html +0 -294
  49. data/doc/top-level-namespace.html +0 -103
@@ -1,579 +0,0 @@
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::Service
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 (S)</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">Service</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::Service
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">Object</span>
70
-
71
- <ul class="fullTree">
72
- <li>Object</li>
73
-
74
- <li class="next">Trackerific::Service</li>
75
-
76
- </ul>
77
- <a href="#" class="inheritanceTree">show all</a>
78
-
79
- </dd>
80
-
81
-
82
-
83
-
84
-
85
-
86
- <dt class="r2">Includes:</dt>
87
- <dd class="r2"><span class='object_link'><a href="../OptionsHelper.html" title="OptionsHelper (module)">OptionsHelper</a></span></dd>
88
-
89
-
90
-
91
-
92
-
93
- <dt class="r1 last">Defined in:</dt>
94
- <dd class="r1 last">lib/trackerific/service.rb</dd>
95
-
96
- </dl>
97
- <div class="clear"></div>
98
-
99
- <h2>Overview</h2><div class="docstring">
100
- <div class="discussion">
101
- <p>
102
- Base class for Trackerific services
103
- </p>
104
-
105
-
106
- </div>
107
- </div>
108
- <div class="tags">
109
-
110
- </div><div id="subclasses">
111
- <h2>Direct Known Subclasses</h2>
112
- <p class="children"><span class='object_link'><a href="FedEx.html" title="Trackerific::FedEx (class)">FedEx</a></span>, <span class='object_link'><a href="UPS.html" title="Trackerific::UPS (class)">UPS</a></span>, <span class='object_link'><a href="USPS.html" title="Trackerific::USPS (class)">USPS</a></span></p>
113
- </div>
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
- <h2>
128
- Class 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="#package_id_matchers-class_method" title="package_id_matchers (class method)">+ (Array, Regexp) <strong>package_id_matchers</strong> </a>
138
-
139
-
140
-
141
- </span>
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
- <span class="summary_desc"><div class='inline'><p>
151
- An Array of Regexp that matches valid package identifiers for your service.
152
- </p>
153
- </div></span>
154
-
155
- </li>
156
-
157
-
158
- <li class="public ">
159
- <span class="summary_signature">
160
-
161
- <a href="#required_options-class_method" title="required_options (class method)">+ (Array) <strong>required_options</strong> </a>
162
-
163
-
164
-
165
- </span>
166
-
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
- <span class="summary_desc"><div class='inline'><p>
175
- An array of options that are required to create a new instance of this
176
- class.
177
- </p>
178
- </div></span>
179
-
180
- </li>
181
-
182
-
183
- </ul>
184
-
185
- <h2>
186
- Instance Method Summary
187
- <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
188
- </h2>
189
-
190
- <ul class="summary">
191
-
192
- <li class="public ">
193
- <span class="summary_signature">
194
-
195
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (Service) <strong>initialize</strong>(options = {}) </a>
196
-
197
-
198
-
199
- </span>
200
-
201
- <span class="note title constructor">constructor</span>
202
-
203
-
204
-
205
-
206
-
207
- <span class="private note title">Private</span>
208
-
209
-
210
- <span class="summary_desc"><div class='inline'><p>
211
- Creates a new instance of Trackerific::Service with required options.
212
- </p>
213
- </div></span>
214
-
215
- </li>
216
-
217
-
218
- <li class="public ">
219
- <span class="summary_signature">
220
-
221
- <a href="#track_package-instance_method" title="#track_package (instance method)">- (Trackerific::Details) <strong>track_package</strong>(package_id) </a>
222
-
223
-
224
-
225
- </span>
226
-
227
-
228
-
229
-
230
-
231
-
232
-
233
-
234
- <span class="summary_desc"><div class='inline'><p>
235
- Gets the tracking information for the package from the server.
236
- </p>
237
- </div></span>
238
-
239
- </li>
240
-
241
-
242
- </ul>
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
-
252
-
253
- <h3 class="inherited">Methods included from <span class='object_link'><a href="../OptionsHelper.html" title="OptionsHelper (module)">OptionsHelper</a></span></h3>
254
- <p class="inherited"><span class='object_link'><a href="../OptionsHelper.html#validate_options-instance_method" title="OptionsHelper#validate_options (method)">#validate_options</a></span></p>
255
- <div id="constructor_details" class="method_details_list">
256
- <h2>Constructor Details</h2>
257
-
258
- <div class="method_details first">
259
- <p class="signature first" id="initialize-instance_method">
260
-
261
- - (<tt><span class='object_link'><a href="" title="Trackerific::Service (class)">Service</a></span></tt>) <strong>initialize</strong>(options = {})
262
-
263
-
264
-
265
- </p><div class="docstring">
266
- <div class="discussion">
267
- <p class="note private">
268
- <strong>This method is part of a private API.</strong>
269
- You should avoid using this method if possible, as it may be removed or be changed in the future.
270
- </p>
271
- <p>
272
- Creates a new instance of Trackerific::Service with required options
273
- </p>
274
-
275
-
276
- </div>
277
- </div>
278
- <div class="tags">
279
-
280
- </div><table class="source_code">
281
- <tr>
282
- <td>
283
- <pre class="lines">
284
-
285
-
286
- 8
287
- 9
288
- 10
289
- 11</pre>
290
- </td>
291
- <td>
292
- <pre class="code"><span class="info file"># File 'lib/trackerific/service.rb', line 8</span>
293
-
294
- <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>
295
- <span class='id validate_options'>validate_options</span> <span class='id options'>options</span><span class='comma'>,</span> <span class='kw'>self</span><span class='period'>.</span><span class='id class'>class</span><span class='period'>.</span><span class='id required_options'>required_options</span>
296
- <span class='ivar'>@options</span> <span class='op'>=</span> <span class='id options'>options</span>
297
- <span class='kw'>end</span></pre>
298
- </td>
299
- </tr>
300
- </table>
301
- </div>
302
-
303
- </div>
304
-
305
-
306
- <div id="class_method_details" class="method_details_list">
307
- <h2>Class Method Details</h2>
308
-
309
-
310
- <div class="method_details first">
311
- <p class="signature first" id="package_id_matchers-class_method">
312
-
313
- + (<tt>Array</tt>, <tt>Regexp</tt>) <strong>package_id_matchers</strong>
314
-
315
-
316
-
317
- </p><div class="docstring">
318
- <div class="discussion">
319
- <p>
320
- An Array of Regexp that matches valid package identifiers for your service
321
- </p>
322
-
323
-
324
- </div>
325
- </div>
326
- <div class="tags">
327
-
328
- <div class="examples">
329
- <h3>Examples:</h3>
330
-
331
- <h4><div class='inline'><p>
332
- Override this method in your custom tracking service
333
- </p>
334
- </div></h4>
335
- <pre class="example code"><span class='kw'>module</span> <span class='const'>Trackerific</span>
336
- <span class='kw'>class</span> <span class='const'>MyTrackingService</span> <span class='op'>&lt;</span> <span class='const'>Service</span>
337
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id package_id_matchers'>package_id_matchers</span>
338
- <span class='lbracket'>[</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^.Z</span><span class='regexp_end'>/</span></span><span class='comma'>,</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^[HK].{10}$</span><span class='regexp_end'>/</span></span> <span class='rbracket'>]</span> <span class='comment'># matchers for UPS package identifiers
339
- </span> <span class='kw'>end</span>
340
- <span class='kw'>end</span>
341
- <span class='kw'>end</span></pre>
342
-
343
- </div>
344
- <h3>Returns:</h3>
345
- <ul class="return">
346
-
347
- <li>
348
-
349
-
350
- <span class='type'>(<tt>Array</tt>, <tt>Regexp</tt>)</span>
351
-
352
-
353
-
354
- &mdash;
355
- <div class='inline'><p>
356
- an array of regular expressions
357
- </p>
358
- </div>
359
-
360
- </li>
361
-
362
- </ul>
363
-
364
- </div><table class="source_code">
365
- <tr>
366
- <td>
367
- <pre class="lines">
368
-
369
-
370
- 46
371
- 47
372
- 48</pre>
373
- </td>
374
- <td>
375
- <pre class="code"><span class="info file"># File 'lib/trackerific/service.rb', line 46</span>
376
-
377
- <span class='kw'>def</span> <span class='id package_id_matchers'>package_id_matchers</span>
378
- <span class='kw'>nil</span>
379
- <span class='kw'>end</span></pre>
380
- </td>
381
- </tr>
382
- </table>
383
- </div>
384
-
385
- <div class="method_details ">
386
- <p class="signature " id="required_options-class_method">
387
-
388
- + (<tt>Array</tt>) <strong>required_options</strong>
389
-
390
-
391
-
392
- </p><div class="docstring">
393
- <div class="discussion">
394
- <p>
395
- An array of options that are required to create a new instance of this
396
- class
397
- </p>
398
-
399
-
400
- </div>
401
- </div>
402
- <div class="tags">
403
-
404
- <div class="examples">
405
- <h3>Examples:</h3>
406
-
407
- <h4><div class='inline'><p>
408
- Override this method in your custom tracking service to enforce some
409
- options
410
- </p>
411
- </div></h4>
412
- <pre class="example code"><span class='kw'>module</span> <span class='const'>Trackerific</span>
413
- <span class='kw'>class</span> <span class='const'>MyTrackingService</span> <span class='op'>&lt;</span> <span class='const'>Service</span>
414
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id required_options'>required_options</span>
415
- <span class='lbracket'>[</span><span class='symbol'>:all</span><span class='comma'>,</span> <span class='symbol'>:these</span><span class='comma'>,</span> <span class='symbol'>:are</span><span class='comma'>,</span> <span class='symbol'>:required</span><span class='rbracket'>]</span>
416
- <span class='kw'>end</span>
417
- <span class='kw'>end</span>
418
- <span class='kw'>end</span></pre>
419
-
420
- </div>
421
- <h3>Returns:</h3>
422
- <ul class="return">
423
-
424
- <li>
425
-
426
-
427
- <span class='type'>(<tt>Array</tt>)</span>
428
-
429
-
430
-
431
- &mdash;
432
- <div class='inline'><p>
433
- the required options
434
- </p>
435
- </div>
436
-
437
- </li>
438
-
439
- </ul>
440
-
441
- </div><table class="source_code">
442
- <tr>
443
- <td>
444
- <pre class="lines">
445
-
446
-
447
- 61
448
- 62
449
- 63</pre>
450
- </td>
451
- <td>
452
- <pre class="code"><span class="info file"># File 'lib/trackerific/service.rb', line 61</span>
453
-
454
- <span class='kw'>def</span> <span class='id required_options'>required_options</span>
455
- <span class='lbracket'>[</span><span class='rbracket'>]</span>
456
- <span class='kw'>end</span></pre>
457
- </td>
458
- </tr>
459
- </table>
460
- </div>
461
-
462
- </div>
463
-
464
- <div id="instance_method_details" class="method_details_list">
465
- <h2>Instance Method Details</h2>
466
-
467
-
468
- <div class="method_details first">
469
- <p class="signature first" id="track_package-instance_method">
470
-
471
- - (<tt><span class='object_link'><a href="Details.html" title="Trackerific::Details (class)">Trackerific::Details</a></span></tt>) <strong>track_package</strong>(package_id)
472
-
473
-
474
-
475
- </p><div class="docstring">
476
- <div class="discussion">
477
- <p>
478
- Gets the tracking information for the package from the server
479
- </p>
480
-
481
-
482
- </div>
483
- </div>
484
- <div class="tags">
485
-
486
- <div class="examples">
487
- <h3>Examples:</h3>
488
-
489
- <h4><div class='inline'><p>
490
- Override this method in your custom tracking service to implement tracking
491
- </p>
492
- </div></h4>
493
- <pre class="example code"><span class='kw'>module</span> <span class='const'>Trackerific</span>
494
- <span class='kw'>class</span> <span class='const'>MyTrackingService</span> <span class='op'>&lt;</span> <span class='const'>Trackerific</span><span class='op'>::</span><span class='const'>Service</span>
495
- <span class='kw'>def</span> <span class='id track_package'>track_package</span>
496
- <span class='comment'># your tracking code here
497
- </span> <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>
498
- <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>summary of tracking events</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
499
- <span class='lbracket'>[</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='const'>Time</span><span class='period'>.</span><span class='id now'>now</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>summary</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'>location</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rbracket'>]</span>
500
- <span class='rparen'>)</span>
501
- <span class='kw'>end</span>
502
- <span class='kw'>end</span>
503
- <span class='kw'>end</span></pre>
504
-
505
- </div>
506
- <h3>Parameters:</h3>
507
- <ul class="param">
508
-
509
- <li>
510
-
511
- <span class='name'>package_id</span>
512
-
513
-
514
- <span class='type'>(<tt>String</tt>)</span>
515
-
516
-
517
-
518
- &mdash;
519
- <div class='inline'><p>
520
- the package identifier
521
- </p>
522
- </div>
523
-
524
- </li>
525
-
526
- </ul>
527
- <h3>Returns:</h3>
528
- <ul class="return">
529
-
530
- <li>
531
-
532
-
533
- <span class='type'>(<tt><span class='object_link'><a href="Details.html" title="Trackerific::Details (class)">Trackerific::Details</a></span></tt>)</span>
534
-
535
-
536
-
537
- &mdash;
538
- <div class='inline'><p>
539
- the tracking details
540
- </p>
541
- </div>
542
-
543
- </li>
544
-
545
- </ul>
546
-
547
- </div><table class="source_code">
548
- <tr>
549
- <td>
550
- <pre class="lines">
551
-
552
-
553
- 29
554
- 30
555
- 31</pre>
556
- </td>
557
- <td>
558
- <pre class="code"><span class="info file"># File 'lib/trackerific/service.rb', line 29</span>
559
-
560
- <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>
561
- <span class='ivar'>@package_id</span> <span class='op'>=</span> <span class='id package_id'>package_id</span>
562
- <span class='kw'>end</span></pre>
563
- </td>
564
- </tr>
565
- </table>
566
- </div>
567
-
568
- </div>
569
-
570
- </div>
571
-
572
- <div id="footer">
573
- Generated on Wed Jun 15 15:30:27 2011 by
574
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
575
- 0.7.1 (ruby-1.9.2).
576
- </div>
577
-
578
- </body>
579
- </html>