postalmethods 1.1.1 → 1.1.3

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,69 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
2
+ <HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>PostalMethods Postcard 4.25x6</TITLE>
3
+ <META content="text/html; charset=utf-8" http-equiv=Content-Type>
4
+ <STYLE>
5
+ DIV {
6
+ PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
7
+ }
8
+ #Postcard {
9
+ POSITION: absolute; WIDTH: 6.25in; HEIGHT: 4.5in
10
+ }
11
+ #Content {
12
+ POSITION: absolute; WIDTH: 3.5in; HEIGHT: 3.75in
13
+ }
14
+ #ContentText {POSITION: absolute; LEFT:0.375in; TOP:0.375in; FONT-FAMILY: # Garamond, serif; FONT-SIZE: 11pt;
15
+ }
16
+ #ContenImage {
17
+ POSITION: absolute; TOP: 0.375in; LEFT: 0.375in
18
+ }
19
+ #ReturnAddress {
20
+ POSITION: absolute; WIDTH: 2in; FLOAT: right; HEIGHT: 1in; TOP: 0.65in; RIGHT: 0.575in
21
+ }
22
+ #ReturnAddressText {
23
+ POSITION: absolute; WIDTH: 2in; BOTTOM: 0.125in; FONT-FAMILY: # Garamond, serif; FONT-SIZE: 7pt; VERTICAL-ALIGN: bottom
24
+ }
25
+ #Logo {
26
+ POSITION: absolute; WIDTH: 2in; HEIGHT: 1.125in; TOP: 1.75in; RIGHT: 0.3in
27
+ }
28
+ #Divider {
29
+ POSITION: absolute; WIDTH: 2px; HEIGHT: 3in; TOP: 0.65in; RIGHT: 2.625in; BORDER-LEFT: thin black solid
30
+ }
31
+ .style1 {
32
+ COLOR: #ff0000
33
+ }
34
+ .style2 {
35
+ COLOR: #00ff40
36
+ }
37
+ .style3 {
38
+ COLOR: #0000ff
39
+ }
40
+ .style4 {
41
+ COLOR: #400080
42
+ }
43
+ .style5 {
44
+ COLOR: #ff00ff
45
+ }
46
+ .style6 {
47
+ COLOR: #004040
48
+ }
49
+ .style7 {
50
+ COLOR: #ff8040
51
+ }
52
+ .style8 {
53
+ COLOR: #804040
54
+ }
55
+ </STYLE>
56
+
57
+ <META name=GENERATOR content="MSHTML 8.00.6001.18702"></HEAD>
58
+ <BODY leftMargin=0 topMargin=0>
59
+ <DIV id=Postcard>
60
+ <!--<DIV id=Divider></DIV>-->
61
+ <DIV id=Content>
62
+ <DIV id=ContentText><BR>
63
+ Don't forget to check out our other sales items.
64
+ <DIV id=ReturnAddress>
65
+ <DIV id=ReturnAddressText>
66
+ Return Address Here<br>
67
+ 1600 Pennsylvania Ave Nw<br>
68
+ Washington, DC, 20500, USA</DIV></DIV>
69
+ <DIV id=Logo></DIV></DIV></BODY></HTML>
@@ -0,0 +1,34 @@
1
+ <HTML>
2
+ <HEAD>
3
+ <TITLE>PostalMethods Postcard 4.25x6 Image Side</TITLE>
4
+ <STYLE>
5
+ body {
6
+ margin:0;
7
+ padding:0;
8
+ width:6.25in;
9
+ height:4.5in;
10
+ }
11
+ #ContentSafeArea {
12
+ position:absolute;
13
+ width:5.5in;
14
+ height:3.75in;
15
+ left:0.375in;
16
+ top:0.375in;
17
+ }
18
+ </STYLE>
19
+ </HEAD>
20
+ <!-- The full bleed size of the postcard is 4.25in by 6in. When using an image, it is recommended to
21
+ have the image strech to the edges of the bleed but make sure the important content appears 0.375in
22
+ from every edge. -->
23
+ <BODY>
24
+ <!-- The safe area, where content will not be cut off is 0.375in from the full bleed margins. If you are using
25
+ an image, you can delete this DIV. -->
26
+ <DIV id="ContentSafeArea">
27
+ <span style="color:red"><h1>SALE</h1></span>
28
+ <span style="color:green"><h1>SALE</h1></span>
29
+ <span style="color:blue"><h1>SALE</h1></span>
30
+ <span style="color:black"><h1>SALE</h1></span>
31
+ <span style="color:orange"><h1>SALE</h1></span>
32
+ </DIV>
33
+ </BODY>
34
+ </HTML>
@@ -10,67 +10,68 @@ describe "Get Letter Status" do
10
10
  end
11
11
 
12
12
  it "should send a letter and get status" do
13
- ## use a static known good id that has gone thru in dev mode
14
- f = @client.get_letter_status(1023577)
13
+ id = @client.send_letter(@doc, "the long goodbye").to_i
14
+ sleep(60) #give it half a tic to catch up
15
+ f = @client.get_letter_status(id)
15
16
  f.length.should == 2
16
17
  f.first.to_i.should == -1002
17
18
  end
18
19
 
19
- it "should try to get status of a letter i don't have access to" do
20
- # FIXME: this is a bad test as it doesn't really prove what we're trying to.
21
- # much better to have a different user make a new post etc..
22
- lambda { @client.get_letter_status(1020000)}.should raise_error(PostalMethods::APIStatusCode3116Exception)
23
- end
24
-
25
-
26
- it "should send multiple letters and get their status" do
27
- letters = []
28
- 1.upto(3) do
29
- @doc = open(File.dirname(__FILE__) + '/../spec/doc/sample.pdf')
30
- @client = PostalMethods::Client.new(PM_OPTS)
31
- @client.prepare!
32
- rv = @client.send_letter(@doc, "the long goodbye")
33
- rv.should > 0
34
- letters << rv
35
- #sleep(10) # api needs some time
36
- end
37
-
38
- ret = @client.get_letter_status_multiple(letters)
39
- ret.should be_an_instance_of(Array)
40
-
41
- # the return is an array [results, status]
42
- recv_letters = ret.collect { |r| r.iD.to_i }
20
+ # it "should try to get status of a letter i don't have access to" do
21
+ # # FIXME: this is a bad test as it doesn't really prove what we're trying to.
22
+ # # much better to have a different user make a new post etc..
23
+ # lambda { @client.get_letter_status(1020000)}.should raise_error(PostalMethods::APIStatusCode3116Exception)
24
+ # end
43
25
 
44
- recv_letters.should == letters
45
- end
46
-
47
- it "should attempt to request a multiple array of invalid letters" do
48
- lambda { @client.get_letter_status_multiple([1,2,3]) }.should raise_error(PostalMethods::APIStatusCode3115Exception)
49
- end
50
-
51
- it "should request a range of letters and get their status" do
52
- letters = []
53
- 1.upto(3) do
54
- @doc = open(File.dirname(__FILE__) + '/../spec/doc/sample.pdf')
55
- @client = PostalMethods::Client.new(PM_OPTS)
56
- @client.prepare!
57
- rv = @client.send_letter(@doc, "the long goodbye")
58
- rv.should > 0
59
- letters << rv
60
- #sleep(10) # api needs some time
61
- end
62
-
63
- ret = @client.get_letter_status_range(letters.first, letters.last)
64
- ret.should be_an_instance_of(Array)
65
-
66
- # the return is an array [results, status]
67
- recv_letters = ret.collect { |r| r.iD.to_i }
68
-
69
- recv_letters.should == letters
70
- end
71
-
72
- it "should attempt to request a range of invalid letters" do
73
- lambda { @client.get_letter_status_range(1,3) }.should raise_error(PostalMethods::APIStatusCode3115Exception)
74
- end
26
+
27
+ # it "should send multiple letters and get their status" do
28
+ # letters = []
29
+ # 1.upto(3) do
30
+ # @doc = open(File.dirname(__FILE__) + '/../spec/doc/sample.pdf')
31
+ # @client = PostalMethods::Client.new(PM_OPTS)
32
+ # @client.prepare!
33
+ # rv = @client.send_letter(@doc, "the long goodbye")
34
+ # rv.should > 0
35
+ # letters << rv
36
+ # #sleep(10) # api needs some time
37
+ # end
38
+ #
39
+ # ret = @client.get_letter_status_multiple(letters)
40
+ # ret.should be_an_instance_of(Array)
41
+ #
42
+ # # the return is an array [results, status]
43
+ # recv_letters = ret.collect { |r| r.iD.to_i }
44
+ #
45
+ # recv_letters.should == letters
46
+ # end
75
47
 
48
+ # it "should attempt to request a multiple array of invalid letters" do
49
+ # lambda { @client.get_letter_status_multiple([1,2,3]) }.should raise_error(PostalMethods::APIStatusCode3115Exception)
50
+ # end
51
+ #
52
+ # it "should request a range of letters and get their status" do
53
+ # letters = []
54
+ # 1.upto(3) do
55
+ # @doc = open(File.dirname(__FILE__) + '/../spec/doc/sample.pdf')
56
+ # @client = PostalMethods::Client.new(PM_OPTS)
57
+ # @client.prepare!
58
+ # rv = @client.send_letter(@doc, "the long goodbye")
59
+ # rv.should > 0
60
+ # letters << rv
61
+ # #sleep(10) # api needs some time
62
+ # end
63
+ #
64
+ # ret = @client.get_letter_status_range(letters.first, letters.last)
65
+ # ret.should be_an_instance_of(Array)
66
+ #
67
+ # # the return is an array [results, status]
68
+ # recv_letters = ret.collect { |r| r.iD.to_i }
69
+ #
70
+ # recv_letters.should == letters
71
+ # end
72
+ #
73
+ # it "should attempt to request a range of invalid letters" do
74
+ # lambda { @client.get_letter_status_range(1,3) }.should raise_error(PostalMethods::APIStatusCode3115Exception)
75
+ # end
76
+ #
76
77
  end
data/spec/spec_helper.rb CHANGED
@@ -12,7 +12,7 @@ require 'postalmethods'
12
12
 
13
13
  $VERBOSE = nil ##silence annoying warnings from soap4r
14
14
 
15
- PM_OPTS = {:username => 'imajes', :password => 'rubyr00ls'}
15
+ PM_OPTS = {:api_key=>'1a7ba530-d926-4b17-aaae-2ea215ff25fd'}
16
16
 
17
17
  # hash hacks to make hacking in specs easier
18
18
  class Hash
@@ -27,4 +27,4 @@ class Hash
27
27
  end
28
28
  end
29
29
 
30
- require "ruby-debug"
30
+ require "ruby-debug"
data/spec/utility_spec.rb CHANGED
@@ -10,16 +10,16 @@ describe "Utility Methods" do
10
10
  end
11
11
 
12
12
  it "Should get a pdf returned for a file sent" do
13
- rv = @client.get_pdf(1023117) ## use known static / magic file. sucks, but what can you do?
14
- rv.length.should == 49606
13
+ id = @client.send_letter(@doc, "the long goodbye").to_i
14
+ sleep(30) # give the doc a chance to process, otherwise fails out
15
+ rv = @client.get_pdf(id)
15
16
  f = open("test_output.pdf", "w")
16
-
17
17
  f.write(rv)
18
- (`file test_output.pdf`).should == "test_output.pdf: PDF document, version 1.3\n"
18
+ (`file test_output.pdf`).should == "test_output.pdf: PDF document, version 1.4\n"
19
19
  system("rm test_output.pdf")
20
20
  end
21
-
22
- it "should check for error for when there is no file yet" do
21
+
22
+ it "should check for error for when there is no file yet" do
23
23
  id = @client.send_letter(@doc, "the long goodbye")
24
24
  id.should > 0
25
25
  lambda {@client.get_pdf(id)}.should raise_error(PostalMethods::APIStatusCode3020Exception)
@@ -36,15 +36,16 @@ describe "Utility Methods" do
36
36
  # and now the item...
37
37
  details.first.should be_an_instance_of(SOAP::Mapping::Object)
38
38
 
39
- details.first.price.should == "0.00"
40
- details.first.iD.to_i.should == id ## be careful not to confuse with class id
39
+ #details.first.price.should == "0.00"
40
+ details.first.details.extendedDetails.price.should == "0.00"
41
+ details.first.details.extendedDetails.iD.to_i.should == id ## be careful not to confuse with class id
41
42
  details.last.should be_a_kind_of(String)
42
43
  details.last.should == "Development"
43
44
  end
44
45
 
45
- it "should raise a letter does not exist (3116) error when trying to get details of an invalid letter" do
46
+ it "should raise a no data returned for your query (3115) error when trying to get details of an invalid letter" do
46
47
  sleep(6) # got to wait 6 seconds...
47
- lambda { @client.get_letter_details(1)}.should raise_error(PostalMethods::APIStatusCode3116Exception)
48
+ lambda { @client.get_letter_details(1)}.should raise_error(PostalMethods::APIStatusCode3115Exception)
48
49
  end
49
50
 
50
51
  it "should cancel delivery of a letter" do
@@ -52,10 +53,9 @@ describe "Utility Methods" do
52
53
  rv = @client.cancel_delivery(id)
53
54
  rv.should be_true
54
55
  end
55
-
56
+
56
57
  it "should raise a letter does not exist (3116) error when trying to cancel an invalid letter" do
57
58
  lambda { @client.cancel_delivery(1)}.should raise_error(PostalMethods::APIStatusCode3116Exception)
58
59
  end
59
60
 
60
-
61
- end
61
+ end
data/tasks/rspec.rake CHANGED
@@ -1,8 +1,10 @@
1
1
  begin
2
2
  require 'spec'
3
+ require 'hoe'
3
4
  rescue LoadError
4
5
  require 'rubygems'
5
6
  require 'spec'
7
+ require 'hoe'
6
8
  end
7
9
  begin
8
10
  require 'spec/rake/spectask'
@@ -30,4 +32,4 @@ namespace :spec do
30
32
  IO.readlines("spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
31
33
  end
32
34
  end
33
- end
35
+ end
metadata CHANGED
@@ -1,40 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postalmethods
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ hash: 21
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 1
9
+ - 3
10
+ version: 1.1.3
5
11
  platform: ruby
6
12
  authors:
7
13
  - James Cox
14
+ - Joe Fair
8
15
  autorequire:
9
16
  bindir: bin
10
17
  cert_chain: []
11
18
 
12
- date: 2008-12-28 00:00:00 -03:00
19
+ date: 2010-07-01 00:00:00 -06:00
13
20
  default_executable:
14
21
  dependencies:
15
22
  - !ruby/object:Gem::Dependency
16
23
  name: newgem
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
20
27
  requirements:
21
28
  - - ">="
22
29
  - !ruby/object:Gem::Version
30
+ hash: 29
31
+ segments:
32
+ - 1
33
+ - 2
34
+ - 1
23
35
  version: 1.2.1
24
- version:
36
+ type: :development
37
+ version_requirements: *id001
25
38
  - !ruby/object:Gem::Dependency
26
39
  name: hoe
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
30
43
  requirements:
31
44
  - - ">="
32
45
  - !ruby/object:Gem::Version
46
+ hash: 55
47
+ segments:
48
+ - 1
49
+ - 8
50
+ - 0
33
51
  version: 1.8.0
34
- version:
52
+ type: :development
53
+ version_requirements: *id002
35
54
  description: API wrapper library for the postal methods api.
36
55
  email:
37
- - james@imaj.es
56
+ - joe@bodkinconsulting.com
38
57
  executables: []
39
58
 
40
59
  extensions: []
@@ -56,13 +75,6 @@ files:
56
75
  - Rakefile
57
76
  - config/hoe.rb
58
77
  - config/requirements.rb
59
- - coverage/index.html
60
- - coverage/lib-postalmethods-document_processor_rb.html
61
- - coverage/lib-postalmethods-exceptions_rb.html
62
- - coverage/lib-postalmethods-get_letter_status_rb.html
63
- - coverage/lib-postalmethods-send_letter_rb.html
64
- - coverage/lib-postalmethods-utility_rb.html
65
- - coverage/lib-postalmethods_rb.html
66
78
  - lib/postalmethods.rb
67
79
  - lib/postalmethods/document_processor.rb
68
80
  - lib/postalmethods/exceptions.rb
@@ -87,6 +99,8 @@ files:
87
99
  - spec/spec_helper.rb
88
100
  - spec/utility_spec.rb
89
101
  - tasks/rspec.rake
102
+ - spec/doc/postcard_address_side_with_return_address.html
103
+ - spec/doc/postcard_image_side_with_return_address.html
90
104
  has_rdoc: true
91
105
  homepage: http://www.postalmethods.com/resources/quickstart
92
106
  licenses: []
@@ -98,21 +112,27 @@ rdoc_options:
98
112
  require_paths:
99
113
  - lib
100
114
  required_ruby_version: !ruby/object:Gem::Requirement
115
+ none: false
101
116
  requirements:
102
117
  - - ">="
103
118
  - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
104
122
  version: "0"
105
- version:
106
123
  required_rubygems_version: !ruby/object:Gem::Requirement
124
+ none: false
107
125
  requirements:
108
126
  - - ">="
109
127
  - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
110
131
  version: "0"
111
- version:
112
132
  requirements: []
113
133
 
114
134
  rubyforge_project: postalmethods
115
- rubygems_version: 1.3.5
135
+ rubygems_version: 1.3.7
116
136
  signing_key:
117
137
  specification_version: 2
118
138
  summary: API wrapper library for the postal methods api.
data/coverage/index.html DELETED
@@ -1,163 +0,0 @@
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
- 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
- </head>
51
- <body>
52
- <h3>
53
- C0 code coverage information
54
- </h3>
55
- <p>
56
- Generated on Sun Dec 21 22:36:23 +0000 2008 with
57
- <a href='http://eigenclass.org/hiki/rcov'>
58
- rcov 0.8.1.2
59
- </a>
60
- </p>
61
- <hr />
62
- <table class='report'> <thead> <tr> <td class='heading'> Name </td> <td
63
- class='heading'> Total lines </td> <td class='heading'> Lines of code </td>
64
- <td class='heading'> Total coverage </td> <td class='heading'> Code coverage
65
- </td> </tr> </thead> <tbody> <tr class='light'> <td> TOTAL </td> <td
66
- class='lines_total'> <tt> 371 </tt> </td> <td class='lines_code'> <tt> 269
67
- </tt> </td> <td> <table cellspacing='0' align='right' cellpadding='0'> <tr>
68
- <td> <tt class='coverage_total'> 94.9% </tt> &nbsp; </td> <td> <table
69
- class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
70
- class='covered' width='95' /> <td class='uncovered' width='5' /> </tr>
71
- </table> </td> </tr> </table> </td> <td> <table cellspacing='0'
72
- align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 92.9%
73
- </tt> &nbsp; </td> <td> <table class='percent_graph' cellspacing='0'
74
- width='100' cellpadding='0'> <tr> <td class='covered' width='93' /> <td
75
- class='uncovered' width='7' /> </tr> </table> </td> </tr> </table> </td>
76
- </tr> <tr class='dark'> <td> <a href='lib-postalmethods_rb.html'>
77
- lib/postalmethods.rb </a> </td> <td class='lines_total'> <tt> 71 </tt> </td>
78
- <td class='lines_code'> <tt> 52 </tt> </td> <td> <table cellspacing='0'
79
- align='right' cellpadding='0'> <tr> <td> <tt class='coverage_total'> 97.2%
80
- </tt> &nbsp; </td> <td> <table class='percent_graph' cellspacing='0'
81
- width='100' cellpadding='0'> <tr> <td class='covered' width='97' /> <td
82
- class='uncovered' width='3' /> </tr> </table> </td> </tr> </table> </td>
83
- <td> <table cellspacing='0' align='right' cellpadding='0'> <tr> <td> <tt
84
- class='coverage_code'> 96.2% </tt> &nbsp; </td> <td> <table
85
- class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
86
- class='covered' width='96' /> <td class='uncovered' width='4' /> </tr>
87
- </table> </td> </tr> </table> </td> </tr> <tr class='light'> <td> <a
88
- href='lib-postalmethods-document_processor_rb.html'>
89
- lib/postalmethods/document_processor.rb </a> </td> <td class='lines_total'>
90
- <tt> 25 </tt> </td> <td class='lines_code'> <tt> 20 </tt> </td> <td> <table
91
- cellspacing='0' align='right' cellpadding='0'> <tr> <td> <tt
92
- class='coverage_total'> 100.0% </tt> &nbsp; </td> <td> <table
93
- class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
94
- class='covered' width='100' /> <td class='uncovered' width='0' /> </tr>
95
- </table> </td> </tr> </table> </td> <td> <table cellspacing='0'
96
- align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 100.0%
97
- </tt> &nbsp; </td> <td> <table class='percent_graph' cellspacing='0'
98
- width='100' cellpadding='0'> <tr> <td class='covered' width='100' /> <td
99
- class='uncovered' width='0' /> </tr> </table> </td> </tr> </table> </td>
100
- </tr> <tr class='dark'> <td> <a href='lib-postalmethods-exceptions_rb.html'>
101
- lib/postalmethods/exceptions.rb </a> </td> <td class='lines_total'> <tt> 97
102
- </tt> </td> <td class='lines_code'> <tt> 80 </tt> </td> <td> <table
103
- cellspacing='0' align='right' cellpadding='0'> <tr> <td> <tt
104
- class='coverage_total'> 93.8% </tt> &nbsp; </td> <td> <table
105
- class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
106
- class='covered' width='94' /> <td class='uncovered' width='6' /> </tr>
107
- </table> </td> </tr> </table> </td> <td> <table cellspacing='0'
108
- align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 92.5%
109
- </tt> &nbsp; </td> <td> <table class='percent_graph' cellspacing='0'
110
- width='100' cellpadding='0'> <tr> <td class='covered' width='93' /> <td
111
- class='uncovered' width='7' /> </tr> </table> </td> </tr> </table> </td>
112
- </tr> <tr class='light'> <td> <a
113
- href='lib-postalmethods-get_letter_status_rb.html'>
114
- lib/postalmethods/get_letter_status.rb </a> </td> <td class='lines_total'>
115
- <tt> 69 </tt> </td> <td class='lines_code'> <tt> 43 </tt> </td> <td> <table
116
- cellspacing='0' align='right' cellpadding='0'> <tr> <td> <tt
117
- class='coverage_total'> 100.0% </tt> &nbsp; </td> <td> <table
118
- class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
119
- class='covered' width='100' /> <td class='uncovered' width='0' /> </tr>
120
- </table> </td> </tr> </table> </td> <td> <table cellspacing='0'
121
- align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 100.0%
122
- </tt> &nbsp; </td> <td> <table class='percent_graph' cellspacing='0'
123
- width='100' cellpadding='0'> <tr> <td class='covered' width='100' /> <td
124
- class='uncovered' width='0' /> </tr> </table> </td> </tr> </table> </td>
125
- </tr> <tr class='dark'> <td> <a
126
- href='lib-postalmethods-send_letter_rb.html'>
127
- lib/postalmethods/send_letter.rb </a> </td> <td class='lines_total'> <tt> 49
128
- </tt> </td> <td class='lines_code'> <tt> 31 </tt> </td> <td> <table
129
- cellspacing='0' align='right' cellpadding='0'> <tr> <td> <tt
130
- class='coverage_total'> 100.0% </tt> &nbsp; </td> <td> <table
131
- class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
132
- class='covered' width='100' /> <td class='uncovered' width='0' /> </tr>
133
- </table> </td> </tr> </table> </td> <td> <table cellspacing='0'
134
- align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 100.0%
135
- </tt> &nbsp; </td> <td> <table class='percent_graph' cellspacing='0'
136
- width='100' cellpadding='0'> <tr> <td class='covered' width='100' /> <td
137
- class='uncovered' width='0' /> </tr> </table> </td> </tr> </table> </td>
138
- </tr> <tr class='light'> <td> <a href='lib-postalmethods-utility_rb.html'>
139
- lib/postalmethods/utility.rb </a> </td> <td class='lines_total'> <tt> 60
140
- </tt> </td> <td class='lines_code'> <tt> 43 </tt> </td> <td> <table
141
- cellspacing='0' align='right' cellpadding='0'> <tr> <td> <tt
142
- class='coverage_total'> 81.7% </tt> &nbsp; </td> <td> <table
143
- class='percent_graph' cellspacing='0' width='100' cellpadding='0'> <tr> <td
144
- class='covered' width='82' /> <td class='uncovered' width='18' /> </tr>
145
- </table> </td> </tr> </table> </td> <td> <table cellspacing='0'
146
- align='right' cellpadding='0'> <tr> <td> <tt class='coverage_code'> 74.4%
147
- </tt> &nbsp; </td> <td> <table class='percent_graph' cellspacing='0'
148
- width='100' cellpadding='0'> <tr> <td class='covered' width='74' /> <td
149
- class='uncovered' width='26' /> </tr> </table> </td> </tr> </table> </td>
150
- </tr> </tbody> </table>
151
- <hr />
152
- <p> Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'> rcov
153
- code coverage analysis tool for Ruby </a> version 0.8.1.2. </p>
154
- <p>
155
- <a href='http://validator.w3.org/check/referer'>
156
- <img src='http://www.w3.org/Icons/valid-xhtml11' height='31' alt='Valid XHTML 1.1!' width='88' />
157
- </a>
158
- <a href='http://jigsaw.w3.org/css-validator/check/referer'>
159
- <img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px' />
160
- </a>
161
- </p>
162
- </body>
163
- </html>