postalmethods 1.0.1 → 1.1.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.
- data/Manifest.txt +16 -6
- data/README.rdoc +35 -0
- data/Rakefile +28 -4
- data/coverage/index.html +163 -0
- data/coverage/lib-postalmethods-document_processor_rb.html +226 -0
- data/coverage/lib-postalmethods-exceptions_rb.html +333 -0
- data/coverage/lib-postalmethods-get_letter_status_rb.html +285 -0
- data/coverage/lib-postalmethods-send_letter_rb.html +261 -0
- data/coverage/lib-postalmethods-utility_rb.html +277 -0
- data/coverage/lib-postalmethods_rb.html +282 -0
- data/lib/postalmethods/get_letter_status.rb +10 -11
- data/lib/postalmethods/send_letter.rb +10 -7
- data/lib/postalmethods/utility.rb +5 -4
- data/lib/postalmethods/version.rb +3 -3
- data/lib/postalmethods.rb +26 -4
- data/postalmethods.gemspec +36 -0
- data/spec/doc/WSDL-Output +868 -0
- data/spec/doc/default.rb +379 -0
- data/spec/doc/defaultMappingRegistry.rb +1 -0
- data/spec/doc/sample.pdf +0 -0
- data/spec/get_letter_status_spec.rb +4 -2
- data/spec/postalmethods_spec.rb +5 -20
- data/spec/send_letter_spec.rb +2 -3
- data/spec/spec.opts +1 -7
- data/spec/spec_helper.rb +1 -21
- data/spec/utility_spec.rb +6 -4
- data/tasks/rspec.rake +0 -12
- metadata +36 -20
- data/tasks/deployment.rake +0 -34
- data/tasks/environment.rake +0 -7
@@ -0,0 +1,282 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
|
3
|
+
<head>
|
4
|
+
<title>
|
5
|
+
lib/postalmethods.rb - C0 code coverage information
|
6
|
+
</title>
|
7
|
+
<style type='text/css'>
|
8
|
+
body { background-color: rgb(240, 240, 245); }
|
9
|
+
</style>
|
10
|
+
<style type='text/css'>
|
11
|
+
span.cross-ref-title { font-size: 140%; } span.cross-ref a {
|
12
|
+
text-decoration: none; } span.cross-ref { background-color:#f3f7fa;
|
13
|
+
border: 1px dashed #333; margin: 1em; padding: 0.5em; overflow: hidden; }
|
14
|
+
a.crossref-toggle { text-decoration: none; } span.marked0 {
|
15
|
+
background-color: rgb(185, 210, 200); display: block; } span.marked1 {
|
16
|
+
background-color: rgb(190, 215, 205); display: block; } span.inferred0 {
|
17
|
+
background-color: rgb(175, 200, 200); display: block; } span.inferred1 {
|
18
|
+
background-color: rgb(180, 205, 205); display: block; } span.uncovered0 {
|
19
|
+
background-color: rgb(225, 110, 110); display: block; } span.uncovered1 {
|
20
|
+
background-color: rgb(235, 120, 120); display: block; } span.overview {
|
21
|
+
border-bottom: 8px solid black; } div.overview { border-bottom: 8px solid
|
22
|
+
black; } body { font-family: verdana, arial, helvetica; } div.footer {
|
23
|
+
font-size: 68%; margin-top: 1.5em; } h1, h2, h3, h4, h5, h6 {
|
24
|
+
margin-bottom: 0.5em; } h5 { margin-top: 0.5em; } .hidden { display: none;
|
25
|
+
} div.separator { height: 10px; } /* Commented out for better readability,
|
26
|
+
esp. on IE */ /* table tr td, table tr th { font-size: 68%; } td.value
|
27
|
+
table tr td { font-size: 11px; } */ table.percent_graph { height: 12px;
|
28
|
+
border: #808080 1px solid; empty-cells: show; } table.percent_graph
|
29
|
+
td.covered { height: 10px; background: #00f000; } table.percent_graph
|
30
|
+
td.uncovered { height: 10px; background: #e00000; } table.percent_graph
|
31
|
+
td.NA { height: 10px; background: #eaeaea; } table.report {
|
32
|
+
border-collapse: collapse; width: 100%; } table.report td.heading {
|
33
|
+
background: #dcecff; border: #d0d0d0 1px solid; font-weight: bold;
|
34
|
+
text-align: center; } table.report td.heading:hover { background: #c0ffc0;
|
35
|
+
} table.report td.text { border: #d0d0d0 1px solid; } table.report
|
36
|
+
td.value, table.report td.lines_total, table.report td.lines_code {
|
37
|
+
text-align: right; border: #d0d0d0 1px solid; } table.report tr.light {
|
38
|
+
background-color: rgb(240, 240, 245); } table.report tr.dark {
|
39
|
+
background-color: rgb(230, 230, 235); }
|
40
|
+
</style>
|
41
|
+
<script type='text/javascript'>
|
42
|
+
// <![CDATA[ function toggleCode( id ) { if ( document.getElementById )
|
43
|
+
elem = document.getElementById( id ); else if ( document.all ) elem =
|
44
|
+
eval( "document.all." + id ); else return false; elemStyle = elem.style;
|
45
|
+
if ( elemStyle.display != "block" ) { elemStyle.display = "block" } else {
|
46
|
+
elemStyle.display = "none" } return true; } // Make cross-references
|
47
|
+
hidden by default document.writeln( "<style
|
48
|
+
type=\"text/css\">span.cross-ref { display: none }</style>" ) // ]]>
|
49
|
+
</script>
|
50
|
+
<style type='text/css'>
|
51
|
+
span.run0 { background-color: rgb(178, 204, 255); display: block; }
|
52
|
+
span.run1 { background-color: rgb(178, 206, 255); display: block; }
|
53
|
+
span.run2 { background-color: rgb(178, 209, 255); display: block; }
|
54
|
+
span.run3 { background-color: rgb(178, 211, 255); display: block; }
|
55
|
+
span.run4 { background-color: rgb(178, 214, 255); display: block; }
|
56
|
+
span.run5 { background-color: rgb(178, 218, 255); display: block; }
|
57
|
+
span.run6 { background-color: rgb(178, 220, 255); display: block; }
|
58
|
+
span.run7 { background-color: rgb(178, 223, 255); display: block; }
|
59
|
+
span.run8 { background-color: rgb(178, 225, 255); display: block; }
|
60
|
+
span.run9 { background-color: rgb(178, 228, 255); display: block; }
|
61
|
+
span.run10 { background-color: rgb(178, 232, 255); display: block; }
|
62
|
+
span.run11 { background-color: rgb(178, 234, 255); display: block; }
|
63
|
+
span.run12 { background-color: rgb(178, 237, 255); display: block; }
|
64
|
+
span.run13 { background-color: rgb(178, 239, 255); display: block; }
|
65
|
+
span.run14 { background-color: rgb(178, 242, 255); display: block; }
|
66
|
+
span.run15 { background-color: rgb(178, 246, 255); display: block; }
|
67
|
+
span.run16 { background-color: rgb(178, 248, 255); display: block; }
|
68
|
+
span.run17 { background-color: rgb(178, 251, 255); display: block; }
|
69
|
+
span.run18 { background-color: rgb(178, 253, 255); display: block; }
|
70
|
+
span.run19 { background-color: rgb(178, 255, 253); display: block; }
|
71
|
+
span.run20 { background-color: rgb(178, 255, 249); display: block; }
|
72
|
+
span.run21 { background-color: rgb(178, 255, 247); display: block; }
|
73
|
+
span.run22 { background-color: rgb(178, 255, 244); display: block; }
|
74
|
+
span.run23 { background-color: rgb(178, 255, 242); display: block; }
|
75
|
+
span.run24 { background-color: rgb(178, 255, 239); display: block; }
|
76
|
+
span.run25 { background-color: rgb(178, 255, 235); display: block; }
|
77
|
+
span.run26 { background-color: rgb(178, 255, 233); display: block; }
|
78
|
+
span.run27 { background-color: rgb(178, 255, 230); display: block; }
|
79
|
+
span.run28 { background-color: rgb(178, 255, 228); display: block; }
|
80
|
+
span.run29 { background-color: rgb(178, 255, 225); display: block; }
|
81
|
+
span.run30 { background-color: rgb(178, 255, 221); display: block; }
|
82
|
+
span.run31 { background-color: rgb(178, 255, 219); display: block; }
|
83
|
+
span.run32 { background-color: rgb(178, 255, 216); display: block; }
|
84
|
+
span.run33 { background-color: rgb(178, 255, 214); display: block; }
|
85
|
+
span.run34 { background-color: rgb(178, 255, 211); display: block; }
|
86
|
+
span.run35 { background-color: rgb(178, 255, 207); display: block; }
|
87
|
+
span.run36 { background-color: rgb(178, 255, 205); display: block; }
|
88
|
+
span.run37 { background-color: rgb(178, 255, 202); display: block; }
|
89
|
+
span.run38 { background-color: rgb(178, 255, 200); display: block; }
|
90
|
+
span.run39 { background-color: rgb(178, 255, 197); display: block; }
|
91
|
+
span.run40 { background-color: rgb(178, 255, 193); display: block; }
|
92
|
+
span.run41 { background-color: rgb(178, 255, 191); display: block; }
|
93
|
+
span.run42 { background-color: rgb(178, 255, 188); display: block; }
|
94
|
+
span.run43 { background-color: rgb(178, 255, 186); display: block; }
|
95
|
+
span.run44 { background-color: rgb(178, 255, 183); display: block; }
|
96
|
+
span.run45 { background-color: rgb(178, 255, 179); display: block; }
|
97
|
+
span.run46 { background-color: rgb(179, 255, 178); display: block; }
|
98
|
+
span.run47 { background-color: rgb(182, 255, 178); display: block; }
|
99
|
+
span.run48 { background-color: rgb(184, 255, 178); display: block; }
|
100
|
+
span.run49 { background-color: rgb(187, 255, 178); display: block; }
|
101
|
+
span.run50 { background-color: rgb(191, 255, 178); display: block; }
|
102
|
+
span.run51 { background-color: rgb(193, 255, 178); display: block; }
|
103
|
+
span.run52 { background-color: rgb(196, 255, 178); display: block; }
|
104
|
+
span.run53 { background-color: rgb(198, 255, 178); display: block; }
|
105
|
+
span.run54 { background-color: rgb(201, 255, 178); display: block; }
|
106
|
+
span.run55 { background-color: rgb(205, 255, 178); display: block; }
|
107
|
+
span.run56 { background-color: rgb(207, 255, 178); display: block; }
|
108
|
+
span.run57 { background-color: rgb(210, 255, 178); display: block; }
|
109
|
+
span.run58 { background-color: rgb(212, 255, 178); display: block; }
|
110
|
+
span.run59 { background-color: rgb(215, 255, 178); display: block; }
|
111
|
+
span.run60 { background-color: rgb(219, 255, 178); display: block; }
|
112
|
+
span.run61 { background-color: rgb(221, 255, 178); display: block; }
|
113
|
+
span.run62 { background-color: rgb(224, 255, 178); display: block; }
|
114
|
+
span.run63 { background-color: rgb(226, 255, 178); display: block; }
|
115
|
+
span.run64 { background-color: rgb(229, 255, 178); display: block; }
|
116
|
+
span.run65 { background-color: rgb(233, 255, 178); display: block; }
|
117
|
+
span.run66 { background-color: rgb(235, 255, 178); display: block; }
|
118
|
+
span.run67 { background-color: rgb(238, 255, 178); display: block; }
|
119
|
+
span.run68 { background-color: rgb(240, 255, 178); display: block; }
|
120
|
+
span.run69 { background-color: rgb(243, 255, 178); display: block; }
|
121
|
+
span.run70 { background-color: rgb(247, 255, 178); display: block; }
|
122
|
+
span.run71 { background-color: rgb(249, 255, 178); display: block; }
|
123
|
+
span.run72 { background-color: rgb(252, 255, 178); display: block; }
|
124
|
+
span.run73 { background-color: rgb(255, 255, 178); display: block; }
|
125
|
+
span.run74 { background-color: rgb(255, 252, 178); display: block; }
|
126
|
+
span.run75 { background-color: rgb(255, 248, 178); display: block; }
|
127
|
+
span.run76 { background-color: rgb(255, 246, 178); display: block; }
|
128
|
+
span.run77 { background-color: rgb(255, 243, 178); display: block; }
|
129
|
+
span.run78 { background-color: rgb(255, 240, 178); display: block; }
|
130
|
+
span.run79 { background-color: rgb(255, 238, 178); display: block; }
|
131
|
+
span.run80 { background-color: rgb(255, 234, 178); display: block; }
|
132
|
+
span.run81 { background-color: rgb(255, 232, 178); display: block; }
|
133
|
+
span.run82 { background-color: rgb(255, 229, 178); display: block; }
|
134
|
+
span.run83 { background-color: rgb(255, 226, 178); display: block; }
|
135
|
+
span.run84 { background-color: rgb(255, 224, 178); display: block; }
|
136
|
+
span.run85 { background-color: rgb(255, 220, 178); display: block; }
|
137
|
+
span.run86 { background-color: rgb(255, 218, 178); display: block; }
|
138
|
+
span.run87 { background-color: rgb(255, 215, 178); display: block; }
|
139
|
+
span.run88 { background-color: rgb(255, 212, 178); display: block; }
|
140
|
+
span.run89 { background-color: rgb(255, 210, 178); display: block; }
|
141
|
+
span.run90 { background-color: rgb(255, 206, 178); display: block; }
|
142
|
+
span.run91 { background-color: rgb(255, 204, 178); display: block; }
|
143
|
+
span.run92 { background-color: rgb(255, 201, 178); display: block; }
|
144
|
+
span.run93 { background-color: rgb(255, 198, 178); display: block; }
|
145
|
+
span.run94 { background-color: rgb(255, 196, 178); display: block; }
|
146
|
+
span.run95 { background-color: rgb(255, 192, 178); display: block; }
|
147
|
+
span.run96 { background-color: rgb(255, 189, 178); display: block; }
|
148
|
+
span.run97 { background-color: rgb(255, 187, 178); display: block; }
|
149
|
+
span.run98 { background-color: rgb(255, 184, 178); display: block; }
|
150
|
+
span.run99 { background-color: rgb(255, 182, 178); display: block; }
|
151
|
+
span.run100 { background-color: rgb(255, 178, 178); display: block; }
|
152
|
+
</style>
|
153
|
+
</head>
|
154
|
+
<body>
|
155
|
+
<h3>
|
156
|
+
C0 code coverage information
|
157
|
+
</h3>
|
158
|
+
<p>
|
159
|
+
Generated on Sun Dec 21 22:36:24 +0000 2008 with
|
160
|
+
<a href='http://eigenclass.org/hiki/rcov'>
|
161
|
+
rcov 0.8.1.2
|
162
|
+
</a>
|
163
|
+
</p>
|
164
|
+
<hr />
|
165
|
+
<pre><span class='marked0'>Code reported as executed by Ruby looks like
|
166
|
+
this... </span><span class='marked1'>and this: this line is also marked as
|
167
|
+
covered. </span><span class='inferred0'>Lines considered as run by rcov, but
|
168
|
+
not reported by Ruby, look like this, </span><span class='inferred1'>and
|
169
|
+
this: these lines were inferred by rcov (using simple heuristics).
|
170
|
+
</span><span class='uncovered0'>Finally, here's a line marked as not
|
171
|
+
executed. </span></pre>
|
172
|
+
<table class='report'> <thead> <tr> <td class='heading'> Name </td> <td
|
173
|
+
class='heading'> Total lines </td> <td class='heading'> Lines of code </td>
|
174
|
+
<td class='heading'> Total coverage </td> <td class='heading'> Code coverage
|
175
|
+
</td> </tr> </thead> <tbody> <tr class='light'> <td> <a
|
176
|
+
href='lib-postalmethods_rb.html'> lib/postalmethods.rb </a> </td> <td
|
177
|
+
class='lines_total'> <tt> 71 </tt> </td> <td class='lines_code'> <tt> 52
|
178
|
+
</tt> </td> <td> <table cellspacing='0' align='right' cellpadding='0'> <tr>
|
179
|
+
<td> <tt class='coverage_total'> 97.2% </tt> </td> <td> <table
|
180
|
+
class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
|
181
|
+
class='covered' width='97' /> <td class='uncovered' width='3' /> </tr>
|
182
|
+
</table> </td> </tr> </table> </td> <td> <table cellspacing='0'
|
183
|
+
align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 96.2%
|
184
|
+
</tt> </td> <td> <table class='percent_graph' cellspacing='0'
|
185
|
+
width='100' cellpadding='0'> <tr> <td class='covered' width='96' /> <td
|
186
|
+
class='uncovered' width='4' /> </tr> </table> </td> </tr> </table> </td>
|
187
|
+
</tr> </tbody> </table><pre><span class="uncovered1"><a name="line1"></a> 1
|
188
|
+
$:.unshift(File.dirname(__FILE__)) unless </span><span class="marked0"><a
|
189
|
+
name="line2"></a> 2 $:.include?(File.dirname(__FILE__)) ||
|
190
|
+
$:.include?(File.expand_path(File.dirname(__FILE__))) </span><span
|
191
|
+
class="inferred1"><a name="line3"></a> 3 </span><span class="marked0"><a
|
192
|
+
name="line4"></a> 4 module PostalMethods </span><span class="inferred1"><a
|
193
|
+
name="line5"></a> 5 </span><span class="marked0"><a name="line6"></a> 6
|
194
|
+
class Client </span><span class="inferred1"><a name="line7"></a> 7
|
195
|
+
</span><span class="marked0"><a name="line8"></a> 8 require 'rubygems'
|
196
|
+
</span><span class="marked1"><a name="line9"></a> 9 gem 'soap4r'
|
197
|
+
</span><span class="marked0"><a name="line10"></a>10 require
|
198
|
+
'soap/rpc/driver' </span><span class="marked1"><a name="line11"></a>11
|
199
|
+
require 'soap/wsdlDriver' </span><span class="marked0"><a
|
200
|
+
name="line12"></a>12 require 'ruby-debug' </span><span class="inferred1"><a
|
201
|
+
name="line13"></a>13 </span><span class="marked0"><a name="line14"></a>14
|
202
|
+
VERBOSE=nil # soap4r is a noisy bugger </span><span class="inferred1"><a
|
203
|
+
name="line15"></a>15 </span><span class="marked0"><a name="line16"></a>16
|
204
|
+
require 'postalmethods/exceptions.rb' </span><span class="marked1"><a
|
205
|
+
name="line17"></a>17 require 'postalmethods/document_processor.rb'
|
206
|
+
</span><span class="marked0"><a name="line18"></a>18 require
|
207
|
+
'postalmethods/send_letter.rb' </span><span class="marked1"><a
|
208
|
+
name="line19"></a>19 require 'postalmethods/get_letter_status.rb'
|
209
|
+
</span><span class="marked0"><a name="line20"></a>20 require
|
210
|
+
'postalmethods/utility.rb' </span><span class="inferred1"><a
|
211
|
+
name="line21"></a>21 </span><span class="inferred0"><a name="line22"></a>22
|
212
|
+
# include modules </span><span class="marked1"><a name="line23"></a>23
|
213
|
+
include SendLetter </span><span class="marked0"><a name="line24"></a>24
|
214
|
+
include DocumentProcessor </span><span class="marked1"><a
|
215
|
+
name="line25"></a>25 include GetLetterStatus </span><span class="marked0"><a
|
216
|
+
name="line26"></a>26 include UtilityMethods </span><span
|
217
|
+
class="inferred1"><a name="line27"></a>27 </span><span class="marked0"><a
|
218
|
+
name="line28"></a>28 attr_accessor :api_uri, :username, :password, :to_send,
|
219
|
+
:rpc_driver, :prepared, :work_mode, :valid_work_modes </span><span
|
220
|
+
class="inferred1"><a name="line29"></a>29 </span><span class="marked0"><a
|
221
|
+
name="line30"></a>30 def initialize(opts = {}) </span><span
|
222
|
+
class="marked1"><a name="line31"></a>31 if opts[:username].nil? ||
|
223
|
+
opts[:password].nil? </span><span class="marked0"><a name="line32"></a>32
|
224
|
+
raise PostalMethods::NoCredentialsException </span><span
|
225
|
+
class="inferred1"><a name="line33"></a>33 end </span><span
|
226
|
+
class="inferred0"><a name="line34"></a>34 </span><span class="marked1"><a
|
227
|
+
name="line35"></a>35 self.valid_work_modes = {:default =>
|
228
|
+
"Default", :production => "Production", :development
|
229
|
+
=> "Development"} </span><span class="inferred0"><a
|
230
|
+
name="line36"></a>36 </span><span class="inferred1"><a name="line37"></a>37
|
231
|
+
## declare here so we can override in tests, etc. </span><span
|
232
|
+
class="marked0"><a name="line38"></a>38 self.api_uri =
|
233
|
+
"https://api.postalmethods.com/PostalWS.asmx?WSDL" </span><span
|
234
|
+
class="inferred1"><a name="line39"></a>39 </span><span class="marked0"><a
|
235
|
+
name="line40"></a>40 self.username = opts[:username] </span><span
|
236
|
+
class="marked1"><a name="line41"></a>41 self.password = opts[:password]
|
237
|
+
</span><span class="inferred0"><a name="line42"></a>42 </span><span
|
238
|
+
class="marked1"><a name="line43"></a>43 self.work_mode =
|
239
|
+
(opts[:work_mode].nil? ? "default" : opts[:work_mode])
|
240
|
+
</span><span class="inferred0"><a name="line44"></a>44 end </span><span
|
241
|
+
class="inferred1"><a name="line45"></a>45 </span><span class="marked0"><a
|
242
|
+
name="line46"></a>46 def prepare! </span><span class="marked1"><a
|
243
|
+
name="line47"></a>47 begin </span><span class="marked0"><a
|
244
|
+
name="line48"></a>48 self.rpc_driver ||=
|
245
|
+
SOAP::WSDLDriverFactory.new(self.api_uri).create_rpc_driver </span><span
|
246
|
+
class="inferred1"><a name="line49"></a>49 rescue SocketError, RuntimeError
|
247
|
+
</span><span class="marked0"><a name="line50"></a>50 raise
|
248
|
+
PostalMethods::NoConnectionError </span><span class="inferred1"><a
|
249
|
+
name="line51"></a>51 end </span><span class="marked0"><a
|
250
|
+
name="line52"></a>52 self.prepared = true </span><span class="marked1"><a
|
251
|
+
name="line53"></a>53 return self </span><span class="inferred0"><a
|
252
|
+
name="line54"></a>54 end </span><span class="inferred1"><a
|
253
|
+
name="line55"></a>55 </span><span class="marked0"><a name="line56"></a>56
|
254
|
+
def work_mode=(in_mode="default") </span><span class="marked1"><a
|
255
|
+
name="line57"></a>57 mode = in_mode.to_s.downcase.to_sym </span><span
|
256
|
+
class="inferred0"><a name="line58"></a>58 </span><span class="marked1"><a
|
257
|
+
name="line59"></a>59 if self.valid_work_modes[mode].nil? </span><span
|
258
|
+
class="uncovered0"><a name="line60"></a>60 @work_mode = :default
|
259
|
+
</span><span class="inferred1"><a name="line61"></a>61 else </span><span
|
260
|
+
class="marked0"><a name="line62"></a>62 @work_mode = mode </span><span
|
261
|
+
class="inferred1"><a name="line63"></a>63 end </span><span
|
262
|
+
class="inferred0"><a name="line64"></a>64 end </span><span
|
263
|
+
class="inferred1"><a name="line65"></a>65 </span><span class="marked0"><a
|
264
|
+
name="line66"></a>66 def work_mode </span><span class="marked1"><a
|
265
|
+
name="line67"></a>67 return self.valid_work_modes[@work_mode] </span><span
|
266
|
+
class="inferred0"><a name="line68"></a>68 end </span><span
|
267
|
+
class="inferred1"><a name="line69"></a>69 </span><span class="inferred0"><a
|
268
|
+
name="line70"></a>70 end </span><span class="inferred1"><a
|
269
|
+
name="line71"></a>71 end </span></pre>
|
270
|
+
<hr />
|
271
|
+
<p> Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'> rcov
|
272
|
+
code coverage analysis tool for Ruby </a> version 0.8.1.2. </p>
|
273
|
+
<p>
|
274
|
+
<a href='http://validator.w3.org/check/referer'>
|
275
|
+
<img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88' />
|
276
|
+
</a>
|
277
|
+
<a href='http://jigsaw.w3.org/css-validator/check/referer'>
|
278
|
+
<img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px' />
|
279
|
+
</a>
|
280
|
+
</p>
|
281
|
+
</body>
|
282
|
+
</html>
|
@@ -8,11 +8,11 @@ module PostalMethods
|
|
8
8
|
## get status
|
9
9
|
opts = {:Username => self.username, :Password => self.password, :ID => id}
|
10
10
|
|
11
|
-
rv = @rpc_driver.
|
11
|
+
rv = @rpc_driver.getLetterStatusV2(opts)
|
12
12
|
|
13
|
-
ws_status = rv.
|
14
|
-
delivery_status = rv.
|
15
|
-
last_update = rv.
|
13
|
+
ws_status = rv.getLetterStatusV2Result.resultCode.to_i
|
14
|
+
delivery_status = rv.getLetterStatusV2Result.status.to_i
|
15
|
+
last_update = rv.getLetterStatusV2Result.lastUpdateTime
|
16
16
|
|
17
17
|
if ws_status == -3000
|
18
18
|
return [delivery_status, last_update]
|
@@ -35,12 +35,11 @@ module PostalMethods
|
|
35
35
|
## get status
|
36
36
|
opts = {:Username => self.username, :Password => self.password, :ID => ids}
|
37
37
|
|
38
|
-
rv = @rpc_driver.
|
39
|
-
|
40
|
-
ws_status = rv.getLetterStatus_MultipleResult.resultCode.to_i
|
38
|
+
rv = @rpc_driver.getLetterStatusV2_Multiple(opts)
|
39
|
+
ws_status = rv.getLetterStatusV2_MultipleResult.resultCode.to_i
|
41
40
|
|
42
41
|
if ws_status == -3000
|
43
|
-
return rv.
|
42
|
+
return rv.getLetterStatusV2_MultipleResult.letterStatuses.letterStatusAndDesc
|
44
43
|
elsif API_STATUS_CODES.has_key?(ws_status)
|
45
44
|
instance_eval("raise APIStatusCode#{ws_status.to_s.gsub(/( |\-)/,'')}Exception")
|
46
45
|
end
|
@@ -53,12 +52,12 @@ module PostalMethods
|
|
53
52
|
## get status
|
54
53
|
opts = {:Username => self.username, :Password => self.password, :MinID => minid.to_i, :MaxID => maxid.to_i}
|
55
54
|
|
56
|
-
rv = @rpc_driver.
|
55
|
+
rv = @rpc_driver.getLetterStatusV2_Range(opts)
|
57
56
|
|
58
|
-
ws_status = rv.
|
57
|
+
ws_status = rv.getLetterStatusV2_RangeResult.resultCode.to_i
|
59
58
|
|
60
59
|
if ws_status == -3000
|
61
|
-
return rv.
|
60
|
+
return rv.getLetterStatusV2_RangeResult.letterStatuses.letterStatusAndDesc
|
62
61
|
elsif API_STATUS_CODES.has_key?(ws_status)
|
63
62
|
instance_eval("raise APIStatusCode#{ws_status.to_s.gsub(/( |\-)/,'')}Exception")
|
64
63
|
end
|
@@ -2,14 +2,17 @@ module PostalMethods
|
|
2
2
|
|
3
3
|
module SendLetter
|
4
4
|
|
5
|
-
def send_letter(doc, description)
|
5
|
+
def send_letter(doc, description, work_mode = "")
|
6
6
|
raise PostalMethods::NoPreparationException unless self.prepared
|
7
7
|
## push a letter over the api
|
8
|
+
|
9
|
+
|
10
|
+
|
8
11
|
self.document = doc
|
9
|
-
rv = @rpc_driver.
|
10
|
-
:FileBinaryData => self.document[:bytes], :MyDescription => description)
|
12
|
+
rv = @rpc_driver.sendLetterV2(:Username => self.username, :Password => self.password, :FileExtension => self.document[:extension],
|
13
|
+
:FileBinaryData => self.document[:bytes], :MyDescription => description, :WorkMode => self.work_mode)
|
11
14
|
|
12
|
-
status_code = rv.
|
15
|
+
status_code = rv.sendLetterV2Result.to_i
|
13
16
|
|
14
17
|
if status_code > 0
|
15
18
|
return status_code
|
@@ -26,13 +29,13 @@ module PostalMethods
|
|
26
29
|
self.document = doc
|
27
30
|
|
28
31
|
opts = {:Username => self.username, :Password => self.password, :FileExtension => self.document[:extension],
|
29
|
-
:FileBinaryData => self.document[:bytes], :MyDescription => description}
|
32
|
+
:FileBinaryData => self.document[:bytes], :MyDescription => description, :WorkMode => self.work_mode}
|
30
33
|
|
31
34
|
opts.merge!(address)
|
32
35
|
|
33
36
|
## push a letter over the api
|
34
|
-
rv = @rpc_driver.
|
35
|
-
status_code = rv.
|
37
|
+
rv = @rpc_driver.sendLetterAndAddressV2(opts)
|
38
|
+
status_code = rv.sendLetterAndAddressV2Result.to_i
|
36
39
|
|
37
40
|
if status_code > 0
|
38
41
|
return status_code
|
@@ -8,13 +8,14 @@ module PostalMethods
|
|
8
8
|
raise PostalMethods::NoPreparationException unless self.prepared
|
9
9
|
|
10
10
|
## get a letter as pdf over the wire
|
11
|
-
rv = @rpc_driver.
|
11
|
+
rv = @rpc_driver.getLetterDetailsV2(:Username => self.username, :Password => self.password, :ID => id)
|
12
12
|
|
13
|
-
status_code = rv.
|
14
|
-
letter_data = rv.
|
13
|
+
status_code = rv.getLetterDetailsV2Result.resultCode.to_i
|
14
|
+
letter_data = rv.getLetterDetailsV2Result
|
15
|
+
work_mode = rv.getLetterDetailsV2Result.workMode.to_s
|
15
16
|
|
16
17
|
if status_code == -3000 # successfully received the req
|
17
|
-
return [letter_data, status_code]
|
18
|
+
return [letter_data, status_code, work_mode]
|
18
19
|
elsif API_STATUS_CODES.has_key?(status_code)
|
19
20
|
instance_eval("raise APIStatusCode#{status_code.to_s.gsub(/( |\-)/,'')}Exception")
|
20
21
|
end
|
data/lib/postalmethods.rb
CHANGED
@@ -4,37 +4,45 @@ $:.unshift(File.dirname(__FILE__)) unless
|
|
4
4
|
module PostalMethods
|
5
5
|
|
6
6
|
class Client
|
7
|
-
|
7
|
+
|
8
8
|
require 'rubygems'
|
9
9
|
gem 'soap4r'
|
10
10
|
require 'soap/rpc/driver'
|
11
11
|
require 'soap/wsdlDriver'
|
12
|
-
|
12
|
+
require 'ruby-debug'
|
13
|
+
|
14
|
+
VERBOSE=nil # soap4r is a noisy bugger
|
15
|
+
|
13
16
|
require 'postalmethods/exceptions.rb'
|
14
17
|
require 'postalmethods/document_processor.rb'
|
15
18
|
require 'postalmethods/send_letter.rb'
|
16
19
|
require 'postalmethods/get_letter_status.rb'
|
17
20
|
require 'postalmethods/utility.rb'
|
18
|
-
|
21
|
+
require 'postalmethods/version.rb'
|
19
22
|
|
20
23
|
# include modules
|
24
|
+
include VERSION
|
21
25
|
include SendLetter
|
22
26
|
include DocumentProcessor
|
23
27
|
include GetLetterStatus
|
24
28
|
include UtilityMethods
|
25
29
|
|
26
|
-
attr_accessor :api_uri, :username, :password, :to_send, :rpc_driver, :prepared
|
30
|
+
attr_accessor :api_uri, :username, :password, :to_send, :rpc_driver, :prepared, :work_mode, :valid_work_modes
|
27
31
|
|
28
32
|
def initialize(opts = {})
|
29
33
|
if opts[:username].nil? || opts[:password].nil?
|
30
34
|
raise PostalMethods::NoCredentialsException
|
31
35
|
end
|
32
36
|
|
37
|
+
self.valid_work_modes = {:default => "Default", :production => "Production", :development => "Development"}
|
38
|
+
|
33
39
|
## declare here so we can override in tests, etc.
|
34
40
|
self.api_uri = "https://api.postalmethods.com/PostalWS.asmx?WSDL"
|
35
41
|
|
36
42
|
self.username = opts[:username]
|
37
43
|
self.password = opts[:password]
|
44
|
+
|
45
|
+
self.work_mode = (opts[:work_mode].nil? ? "default" : opts[:work_mode])
|
38
46
|
end
|
39
47
|
|
40
48
|
def prepare!
|
@@ -47,5 +55,19 @@ module PostalMethods
|
|
47
55
|
return self
|
48
56
|
end
|
49
57
|
|
58
|
+
def work_mode=(in_mode="default")
|
59
|
+
mode = in_mode.to_s.downcase.to_sym
|
60
|
+
|
61
|
+
if self.valid_work_modes[mode].nil?
|
62
|
+
@work_mode = :default
|
63
|
+
else
|
64
|
+
@work_mode = mode
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def work_mode
|
69
|
+
return self.valid_work_modes[@work_mode]
|
70
|
+
end
|
71
|
+
|
50
72
|
end
|
51
73
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = %q{postalmethods}
|
3
|
+
s.version = "1.1.0"
|
4
|
+
|
5
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
|
+
s.authors = ["James Cox"]
|
7
|
+
s.date = %q{2008-12-22}
|
8
|
+
s.description = %q{API wrapper library for the postal methods api.}
|
9
|
+
s.email = ["james@imaj.es"]
|
10
|
+
s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "README.txt"]
|
11
|
+
s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "README.txt", "Rakefile", "config/hoe.rb", "config/requirements.rb", "coverage/index.html", "coverage/lib-postalmethods-document_processor_rb.html", "coverage/lib-postalmethods-exceptions_rb.html", "coverage/lib-postalmethods-get_letter_status_rb.html", "coverage/lib-postalmethods-send_letter_rb.html", "coverage/lib-postalmethods-utility_rb.html", "coverage/lib-postalmethods_rb.html", "lib/postalmethods.rb", "lib/postalmethods/document_processor.rb", "lib/postalmethods/exceptions.rb", "lib/postalmethods/get_letter_status.rb", "lib/postalmethods/send_letter.rb", "lib/postalmethods/utility.rb", "lib/postalmethods/version.rb", "postalmethods.gemspec", "script/console", "script/destroy", "script/generate", "setup.rb", "spec/doc/WSDL-Output", "spec/doc/default.rb", "spec/doc/defaultMappingRegistry.rb", "spec/doc/sample.pdf", "spec/document_processor_spec.rb", "spec/get_letter_status_spec.rb", "spec/postalmethods_spec.rb", "spec/rcov.opts", "spec/send_letter_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/utility_spec.rb", "tasks/rspec.rake"]
|
12
|
+
s.has_rdoc = true
|
13
|
+
s.homepage = %q{Info: http://www.postalmethods.com/resources/quickstart}
|
14
|
+
s.post_install_message = %q{PostInstall.txt}
|
15
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{postalmethods}
|
18
|
+
s.rubygems_version = %q{1.2.0}
|
19
|
+
s.summary = %q{API wrapper library for the postal methods api.}
|
20
|
+
|
21
|
+
if s.respond_to? :specification_version then
|
22
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
23
|
+
s.specification_version = 2
|
24
|
+
|
25
|
+
if current_version >= 3 then
|
26
|
+
s.add_development_dependency(%q<newgem>, [">= 1.2.1"])
|
27
|
+
s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<newgem>, [">= 1.2.1"])
|
30
|
+
s.add_dependency(%q<hoe>, [">= 1.8.0"])
|
31
|
+
end
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<newgem>, [">= 1.2.1"])
|
34
|
+
s.add_dependency(%q<hoe>, [">= 1.8.0"])
|
35
|
+
end
|
36
|
+
end
|