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.
- data/History.txt +3 -0
- data/Manifest.txt +3 -0
- data/README.rdoc +5 -3
- data/README.txt +5 -3
- data/Rakefile +1 -0
- data/config/hoe.rb +5 -5
- data/lib/postalmethods.rb +16 -8
- data/lib/postalmethods/exceptions.rb +2 -2
- data/lib/postalmethods/get_letter_status.rb +10 -10
- data/lib/postalmethods/send_letter.rb +9 -7
- data/lib/postalmethods/utility.rb +12 -7
- data/postalmethods.gemspec +6 -6
- data/spec/doc/default.rb +803 -150
- data/spec/doc/postcard_address_side_with_return_address.html +69 -0
- data/spec/doc/postcard_image_side_with_return_address.html +34 -0
- data/spec/get_letter_status_spec.rb +58 -57
- data/spec/spec_helper.rb +2 -2
- data/spec/utility_spec.rb +13 -13
- data/tasks/rspec.rake +3 -1
- metadata +41 -21
- data/coverage/index.html +0 -163
- data/coverage/lib-postalmethods-document_processor_rb.html +0 -226
- data/coverage/lib-postalmethods-exceptions_rb.html +0 -333
- data/coverage/lib-postalmethods-get_letter_status_rb.html +0 -285
- data/coverage/lib-postalmethods-send_letter_rb.html +0 -261
- data/coverage/lib-postalmethods-utility_rb.html +0 -277
- data/coverage/lib-postalmethods_rb.html +0 -282
| @@ -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 | 
            -
                 | 
| 14 | 
            -
                 | 
| 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 | 
            -
             | 
| 45 | 
            -
               | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
                   | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 | 
            -
                 | 
| 62 | 
            -
             | 
| 63 | 
            -
                 | 
| 64 | 
            -
             | 
| 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 = {: | 
| 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 | 
            -
                 | 
| 14 | 
            -
                 | 
| 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. | 
| 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 | 
            -
             | 
| 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. | 
| 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  | 
| 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:: | 
| 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 | 
            -
               | 
| 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:  | 
| 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 | 
            -
               | 
| 18 | 
            -
               | 
| 19 | 
            -
             | 
| 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 | 
            -
             | 
| 36 | 
            +
              type: :development
         | 
| 37 | 
            +
              version_requirements: *id001
         | 
| 25 38 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 26 39 | 
             
              name: hoe
         | 
| 27 | 
            -
               | 
| 28 | 
            -
               | 
| 29 | 
            -
             | 
| 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 | 
            -
             | 
| 52 | 
            +
              type: :development
         | 
| 53 | 
            +
              version_requirements: *id002
         | 
| 35 54 | 
             
            description: API wrapper library for the postal methods api.
         | 
| 36 55 | 
             
            email: 
         | 
| 37 | 
            -
            -  | 
| 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. | 
| 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>   </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>   </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>   </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>   </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>   </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>   </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>   </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>   </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>   </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>   </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>   </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>   </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>   </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>   </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>
         |