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,395 @@
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::FedEx
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 (F)</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">FedEx</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::FedEx
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::FedEx</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/fedex.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 FedEx
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="#required_options-instance_method" title="#required_options (instance method)">- (Array) <strong>required_options</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
+ Required options for tracking a FedEx package are :account and :meter.
152
+ </p>
153
+ </div></span>
154
+
155
+ </li>
156
+
157
+
158
+ <li class="public ">
159
+ <span class="summary_signature">
160
+
161
+ <a href="#track_package-instance_method" title="#track_package (instance method)">- (Trackerific::Details) <strong>track_package</strong>(package_id) </a>
162
+
163
+
164
+
165
+ </span>
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+ <span class="summary_desc"><div class='inline'><p>
175
+ Tracks a FedEx package.
176
+ </p>
177
+ </div></span>
178
+
179
+ </li>
180
+
181
+
182
+ </ul>
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+ <h3 class="inherited">Methods inherited from <span class='object_link'><a href="Base.html" title="Trackerific::Base (class)">Base</a></span></h3>
195
+ <p class="inherited"><span class='object_link'><a href="Base.html#initialize-instance_method" title="Trackerific::Base#initialize (method)">#initialize</a></span></p>
196
+ <div id="constructor_details" class="method_details_list">
197
+ <h2>Constructor Details</h2>
198
+
199
+ <p class="notice">This class inherits a constructor from <span class='object_link'><a href="Base.html#initialize-instance_method" title="Trackerific::Base#initialize (method)">Trackerific::Base</a></span></p>
200
+
201
+ </div>
202
+
203
+
204
+ <div id="instance_method_details" class="method_details_list">
205
+ <h2>Instance Method Details</h2>
206
+
207
+
208
+ <div class="method_details first">
209
+ <p class="signature first" id="required_options-instance_method">
210
+
211
+ - (<tt>Array</tt>) <strong>required_options</strong>
212
+
213
+
214
+
215
+ </p><div class="docstring">
216
+ <div class="discussion">
217
+ <p>
218
+ Required options for tracking a FedEx package are :account and :meter.
219
+ </p>
220
+
221
+
222
+ </div>
223
+ </div>
224
+ <div class="tags">
225
+ <h3>Returns:</h3>
226
+ <ul class="return">
227
+
228
+ <li>
229
+
230
+
231
+ <span class='type'>(<tt>Array</tt>)</span>
232
+
233
+
234
+
235
+ &mdash;
236
+ <div class='inline'><p>
237
+ required options for tracking a FedEx package are :account and :meter.
238
+ </p>
239
+ </div>
240
+
241
+ </li>
242
+
243
+ </ul>
244
+
245
+ </div><table class="source_code">
246
+ <tr>
247
+ <td>
248
+ <pre class="lines">
249
+
250
+
251
+ 13
252
+ 14
253
+ 15</pre>
254
+ </td>
255
+ <td>
256
+ <pre class="code"><span class="info file"># File 'lib/fedex.rb', line 13</span>
257
+
258
+ <span class='kw'>def</span> <span class='id required_options'>required_options</span>
259
+ <span class='lbracket'>[</span><span class='symbol'>:account</span><span class='comma'>,</span> <span class='symbol'>:meter</span><span class='rbracket'>]</span>
260
+ <span class='kw'>end</span></pre>
261
+ </td>
262
+ </tr>
263
+ </table>
264
+ </div>
265
+
266
+ <div class="method_details ">
267
+ <p class="signature " id="track_package-instance_method">
268
+
269
+ - (<tt><span class='object_link'><a href="Details.html" title="Trackerific::Details (class)">Trackerific::Details</a></span></tt>) <strong>track_package</strong>(package_id)
270
+
271
+
272
+
273
+ </p><div class="docstring">
274
+ <div class="discussion">
275
+ <p>
276
+ Tracks a FedEx package.
277
+ </p>
278
+ <p>
279
+ A Trackerific::Error is raised when a package cannot be tracked.
280
+ </p>
281
+
282
+
283
+ </div>
284
+ </div>
285
+ <div class="tags">
286
+ <h3>Returns:</h3>
287
+ <ul class="return">
288
+
289
+ <li>
290
+
291
+
292
+ <span class='type'>(<tt><span class='object_link'><a href="Details.html" title="Trackerific::Details (class)">Trackerific::Details</a></span></tt>)</span>
293
+
294
+
295
+
296
+ &mdash;
297
+ <div class='inline'><p>
298
+ the tracking details
299
+ </p>
300
+ </div>
301
+
302
+ </li>
303
+
304
+ </ul>
305
+ <h3>Raises:</h3>
306
+ <ul class="raise">
307
+
308
+ <li>
309
+
310
+
311
+ <span class='type'>(<tt><span class='object_link'><a href="Error.html" title="Trackerific::Error (class)">Trackerific::Error</a></span></tt>)</span>
312
+
313
+
314
+
315
+ </li>
316
+
317
+ </ul>
318
+
319
+ </div><table class="source_code">
320
+ <tr>
321
+ <td>
322
+ <pre class="lines">
323
+
324
+
325
+ 22
326
+ 23
327
+ 24
328
+ 25
329
+ 26
330
+ 27
331
+ 28
332
+ 29
333
+ 30
334
+ 31
335
+ 32
336
+ 33
337
+ 34
338
+ 35
339
+ 36
340
+ 37
341
+ 38
342
+ 39
343
+ 40
344
+ 41
345
+ 42
346
+ 43
347
+ 44
348
+ 45
349
+ 46</pre>
350
+ </td>
351
+ <td>
352
+ <pre class="code"><span class="info file"># File 'lib/fedex.rb', line 22</span>
353
+
354
+ <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>
355
+ <span class='kw'>super</span>
356
+ <span class='id http_response'>http_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 post'>post</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/GatewayDC</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='symbol'>:body</span> <span class='op'>=&gt;</span> <span class='id build_xml_request'>build_xml_request</span>
357
+ <span class='id http_response'>http_response</span><span class='period'>.</span><span class='id error!'>error!</span> <span class='kw'>unless</span> <span class='id http_response'>http_response</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='int'>200</span>
358
+
359
+ <span class='id track_reply'>track_reply</span> <span class='op'>=</span> <span class='id http_response'>http_response</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>FDXTrack2Reply</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
360
+ <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 track_reply'>track_reply</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error</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'>Message</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='kw'>unless</span> <span class='id track_reply'>track_reply</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id nil?'>nil?</span>
361
+
362
+ <span class='id details'>details</span> <span class='op'>=</span> <span class='id track_reply'>track_reply</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Package</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
363
+ <span class='id events'>events</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
364
+ <span class='id details'>details</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Event</span><span class='tstring_end'>&quot;</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 e'>e</span><span class='op'>|</span>
365
+ <span class='id date'>date</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id parse'>parse</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id e'>e</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Date</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id e'>e</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Time</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
366
+ <span class='id desc'>desc</span> <span class='op'>=</span> <span class='id e'>e</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Description</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
367
+ <span class='id addr'>addr</span> <span class='op'>=</span> <span class='id e'>e</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Address</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span>
368
+ <span class='comment'># Adds event in this format:
369
+ </span> <span class='comment'># MM DD HH:MM am/pm Description City State Zip
370
+ </span> <span class='id events'>events</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='embexpr_beg'>#{</span><span class='id addr'>addr</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>StateOrProvinceCode</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id addr'>addr</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>PostalCode</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
371
+ <span class='kw'>end</span>
372
+
373
+ <span class='const'>Details</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span>
374
+ <span class='id details'>details</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>TrackingNumber</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
375
+ <span class='id details'>details</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>StatusDescription</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
376
+ <span class='id events'>events</span>
377
+ <span class='rparen'>)</span>
378
+ <span class='kw'>end</span></pre>
379
+ </td>
380
+ </tr>
381
+ </table>
382
+ </div>
383
+
384
+ </div>
385
+
386
+ </div>
387
+
388
+ <div id="footer">
389
+ Generated on Mon Jun 13 13:53:34 2011 by
390
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
391
+ 0.7.1 (ruby-1.9.2).
392
+ </div>
393
+
394
+ </body>
395
+ </html>
@@ -0,0 +1,360 @@
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::UPS
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">UPS</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::UPS
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::UPS</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/ups.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 UPS.
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="#required_options-instance_method" title="#required_options (instance method)">- (Array) <strong>required_options</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
+ The required options for tracking a UPS package are :key, :user_id, and
152
+ :password.
153
+ </p>
154
+ </div></span>
155
+
156
+ </li>
157
+
158
+
159
+ <li class="public ">
160
+ <span class="summary_signature">
161
+
162
+ <a href="#track_package-instance_method" title="#track_package (instance method)">- (Trackerific::Details) <strong>track_package</strong>(package_id) </a>
163
+
164
+
165
+
166
+ </span>
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+ <span class="summary_desc"><div class='inline'><p>
176
+ Tracks a UPS package.
177
+ </p>
178
+ </div></span>
179
+
180
+ </li>
181
+
182
+
183
+ </ul>
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+ <h3 class="inherited">Methods inherited from <span class='object_link'><a href="Base.html" title="Trackerific::Base (class)">Base</a></span></h3>
196
+ <p class="inherited"><span class='object_link'><a href="Base.html#initialize-instance_method" title="Trackerific::Base#initialize (method)">#initialize</a></span></p>
197
+ <div id="constructor_details" class="method_details_list">
198
+ <h2>Constructor Details</h2>
199
+
200
+ <p class="notice">This class inherits a constructor from <span class='object_link'><a href="Base.html#initialize-instance_method" title="Trackerific::Base#initialize (method)">Trackerific::Base</a></span></p>
201
+
202
+ </div>
203
+
204
+
205
+ <div id="instance_method_details" class="method_details_list">
206
+ <h2>Instance Method Details</h2>
207
+
208
+
209
+ <div class="method_details first">
210
+ <p class="signature first" id="required_options-instance_method">
211
+
212
+ - (<tt>Array</tt>) <strong>required_options</strong>
213
+
214
+
215
+
216
+ </p><div class="docstring">
217
+ <div class="discussion">
218
+ <p>
219
+ The required options for tracking a UPS package are :key, :user_id, and
220
+ :password.
221
+ </p>
222
+
223
+
224
+ </div>
225
+ </div>
226
+ <div class="tags">
227
+ <h3>Returns:</h3>
228
+ <ul class="return">
229
+
230
+ <li>
231
+
232
+
233
+ <span class='type'>(<tt>Array</tt>)</span>
234
+
235
+
236
+
237
+ &mdash;
238
+ <div class='inline'><p>
239
+ the required options for tracking a UPS package.
240
+ </p>
241
+ </div>
242
+
243
+ </li>
244
+
245
+ </ul>
246
+
247
+ </div><table class="source_code">
248
+ <tr>
249
+ <td>
250
+ <pre class="lines">
251
+
252
+
253
+ 19
254
+ 20
255
+ 21</pre>
256
+ </td>
257
+ <td>
258
+ <pre class="code"><span class="info file"># File 'lib/ups.rb', line 19</span>
259
+
260
+ <span class='kw'>def</span> <span class='id required_options'>required_options</span>
261
+ <span class='lbracket'>[</span><span class='symbol'>:key</span><span class='comma'>,</span> <span class='symbol'>:user_id</span><span class='comma'>,</span> <span class='symbol'>:password</span><span class='rbracket'>]</span>
262
+ <span class='kw'>end</span></pre>
263
+ </td>
264
+ </tr>
265
+ </table>
266
+ </div>
267
+
268
+ <div class="method_details ">
269
+ <p class="signature " id="track_package-instance_method">
270
+
271
+ - (<tt><span class='object_link'><a href="Details.html" title="Trackerific::Details (class)">Trackerific::Details</a></span></tt>) <strong>track_package</strong>(package_id)
272
+
273
+
274
+
275
+ </p><div class="docstring">
276
+ <div class="discussion">
277
+ <p>
278
+ Tracks a UPS package. A Trackerific::Error is raised when a package cannot
279
+ be tracked.
280
+ </p>
281
+
282
+
283
+ </div>
284
+ </div>
285
+ <div class="tags">
286
+ <h3>Returns:</h3>
287
+ <ul class="return">
288
+
289
+ <li>
290
+
291
+
292
+ <span class='type'>(<tt><span class='object_link'><a href="Details.html" title="Trackerific::Details (class)">Trackerific::Details</a></span></tt>)</span>
293
+
294
+
295
+
296
+ &mdash;
297
+ <div class='inline'><p>
298
+ the tracking details
299
+ </p>
300
+ </div>
301
+
302
+ </li>
303
+
304
+ </ul>
305
+
306
+ </div><table class="source_code">
307
+ <tr>
308
+ <td>
309
+ <pre class="lines">
310
+
311
+
312
+ 26
313
+ 27
314
+ 28
315
+ 29
316
+ 30
317
+ 31
318
+ 32
319
+ 33
320
+ 34
321
+ 35
322
+ 36
323
+ 37
324
+ 38
325
+ 39</pre>
326
+ </td>
327
+ <td>
328
+ <pre class="code"><span class="info file"># File 'lib/ups.rb', line 26</span>
329
+
330
+ <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>
331
+ <span class='kw'>super</span>
332
+ <span class='comment'># connect to UPS via HTTParty
333
+ </span> <span class='id http_response'>http_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 post'>post</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/Track</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='symbol'>:body</span> <span class='op'>=&gt;</span> <span class='id build_xml_request'>build_xml_request</span><span class='rparen'>)</span>
334
+ <span class='comment'># throw any HTTP errors
335
+ </span> <span class='id http_response'>http_response</span><span class='period'>.</span><span class='id error!'>error!</span> <span class='kw'>unless</span> <span class='id http_response'>http_response</span><span class='period'>.</span><span class='id code'>code</span> <span class='op'>==</span> <span class='int'>200</span>
336
+ <span class='comment'># Check the response for errors, return a Trackerific::Error, or parse
337
+ </span> <span class='comment'># the response from UPS and return a Trackerific::Details
338
+ </span> <span class='kw'>case</span> <span class='id http_response'>http_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'>Response</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'>ResponseStatusCode</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
339
+ <span class='kw'>when</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='kw'>then</span> <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 parse_error_response'>parse_error_response</span><span class='lparen'>(</span><span class='id http_response'>http_response</span><span class='rparen'>)</span>
340
+ <span class='kw'>when</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='kw'>then</span> <span class='kw'>return</span> <span class='id parse_success_response'>parse_success_response</span><span class='lparen'>(</span><span class='id http_response'>http_response</span><span class='rparen'>)</span>
341
+ <span class='kw'>else</span> <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'>Invalid response code returned from server.</span><span class='tstring_end'>&quot;</span></span>
342
+ <span class='kw'>end</span>
343
+ <span class='kw'>end</span></pre>
344
+ </td>
345
+ </tr>
346
+ </table>
347
+ </div>
348
+
349
+ </div>
350
+
351
+ </div>
352
+
353
+ <div id="footer">
354
+ Generated on Mon Jun 13 13:53:33 2011 by
355
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
356
+ 0.7.1 (ruby-1.9.2).
357
+ </div>
358
+
359
+ </body>
360
+ </html>