postmark 1.11.0 → 1.12.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.
- checksums.yaml +4 -4
 - data/CHANGELOG.rdoc +4 -0
 - data/README.md +34 -0
 - data/VERSION +1 -1
 - data/gemfiles/Gemfile.legacy +1 -1
 - data/lib/postmark/mail_message_converter.rb +2 -1
 - data/lib/postmark/message_extensions/mail.rb +9 -0
 - data/lib/postmark/version.rb +1 -1
 - data/spec/unit/postmark/helpers/message_helper_spec.rb +15 -12
 - data/spec/unit/postmark/mail_message_converter_spec.rb +32 -16
 - data/spec/unit/postmark/message_extensions/mail_spec.rb +33 -23
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 7d65fe77b30becc8c00a0e19a057d885176f20dd
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: df33b575861a790eaea91e65ff7d937fd7c0be03
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 001d1b715e69f99ee6eb3a7f1dc63f282f51ef1b8dbe3acf42344e4c421cbc8d5cd23f269c2525460499d4d8ece1f7060355e747bb758024f0ffbcfe9aa5bf5e
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 83ad3ace1faa7086fd327afdd2676737aeae6130fe4f9013e79e291984e0a8bab0f47e44247aa518f41d49fca04aed686e5afa9ced07ba4821621debc1131569
         
     | 
    
        data/CHANGELOG.rdoc
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -97,6 +97,22 @@ client.deliver(from: 'sheldon@bigbangtheory.com', 
     | 
|
| 
       97 
97 
     | 
    
         
             
            # => {:to=>"Leonard Hofstadter <leonard@bigbangtheory.com>", :submitted_at=>"2013-05-09T02:51:08.8789433-04:00", :message_id=>"75c28987-564e-xxxx-b6eb-e8071873ac06", :error_code=>0, :message=>"OK"}
         
     | 
| 
       98 
98 
     | 
    
         
             
            ```
         
     | 
| 
       99 
99 
     | 
    
         | 
| 
      
 100 
     | 
    
         
            +
            ## Sending a message with metadata
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
            To send metadata for emails you send, all you need to do is provide metadata for your messages in form of hash map.
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
            ``` ruby
         
     | 
| 
      
 105 
     | 
    
         
            +
            client.deliver(from: 'sheldon@bigbangtheory.com',
         
     | 
| 
      
 106 
     | 
    
         
            +
                           to: 'Leonard Hofstadter <leonard@bigbangtheory.com>',
         
     | 
| 
      
 107 
     | 
    
         
            +
                           subject: 'Re: What, to you, is a large crowd?',
         
     | 
| 
      
 108 
     | 
    
         
            +
                           html_body: '<p>Any group big enough to trample me to death. ' \
         
     | 
| 
      
 109 
     | 
    
         
            +
                                      'General <a href="http://www.example.com">rule of thumb</a> is 36 adults or 70 ' \
         
     | 
| 
      
 110 
     | 
    
         
            +
                                      'children.</p>',
         
     | 
| 
      
 111 
     | 
    
         
            +
                           text_body: 'Any group big enough to trample me to death. General rule of thumb is 36 adults or 70 children - http://www.example.com.',
         
     | 
| 
      
 112 
     | 
    
         
            +
                           metadata: {'Example1' => 'value', 'Example2' => 'value'})
         
     | 
| 
      
 113 
     | 
    
         
            +
            # => {:to=>"Leonard Hofstadter <leonard@bigbangtheory.com>", :submitted_at=>"2013-05-09T02:51:08.8789433-04:00", :message_id=>"75c28987-564e-xxxx-b6eb-e8071873ac06", :error_code=>0, :message=>"OK"}
         
     | 
| 
      
 114 
     | 
    
         
            +
            ```
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
       100 
116 
     | 
    
         
             
            ## Sending a message with attachments
         
     | 
| 
       101 
117 
     | 
    
         | 
| 
       102 
118 
     | 
    
         
             
            You can add
         
     | 
| 
         @@ -451,6 +467,24 @@ message.deliver 
     | 
|
| 
       451 
467 
     | 
    
         
             
            # => #<Mail::Message:70355902117460, Multipart: true, Headers: <From: sheldon@bigbangtheory.com>, <To: leonard@bigbangtheory.com>, <Message-ID: 1a1370a1-6c21-4304-a03c-320a54cc59f7>, <Subject: Re: What, to you, is a large crowd?>, <Content-Type: multipart/alternative; boundary=--==_mimepart_58380d6029b17_20543fd48543fa14977a>, <TRACK-LINKS: HtmlAndText>>
         
     | 
| 
       452 
468 
     | 
    
         
             
            ```
         
     | 
| 
       453 
469 
     | 
    
         | 
| 
      
 470 
     | 
    
         
            +
            ## Message with metadata
         
     | 
| 
      
 471 
     | 
    
         
            +
             
     | 
| 
      
 472 
     | 
    
         
            +
            ``` ruby
         
     | 
| 
      
 473 
     | 
    
         
            +
            message = Mail.new do
         
     | 
| 
      
 474 
     | 
    
         
            +
              from            'leonard@bigbangtheory.com'
         
     | 
| 
      
 475 
     | 
    
         
            +
              to              'Dr. Sheldon Cooper <sheldon@bigbangtheory.com>'
         
     | 
| 
      
 476 
     | 
    
         
            +
              subject         'Have you seen these pictures of yours?'
         
     | 
| 
      
 477 
     | 
    
         
            +
              body            'You look like a real geek!'
         
     | 
| 
      
 478 
     | 
    
         
            +
              add_file        '1.jpeg'
         
     | 
| 
      
 479 
     | 
    
         
            +
              metadata        {"Example1"=>"value","Example2"=>"value"}
         
     | 
| 
      
 480 
     | 
    
         
            +
             
     | 
| 
      
 481 
     | 
    
         
            +
              delivery_method Mail::Postmark, :api_token => 'your-postmark-api-token'
         
     | 
| 
      
 482 
     | 
    
         
            +
            end
         
     | 
| 
      
 483 
     | 
    
         
            +
             
     | 
| 
      
 484 
     | 
    
         
            +
            message.deliver
         
     | 
| 
      
 485 
     | 
    
         
            +
            # => #<Mail::Message:70185826686240, Multipart: true, Headers: <From: leonard@bigbangtheory.com>, <To: sheldon@bigbangtheory.com>, <Message-ID: ba644cc1-b5b1-4bcb-aaf8-2f290b5aad80>, <Subject: Have you seen these pictures of yours?>, <Content-Type: multipart/mixed; boundary=--==_mimepart_5121f9f1ec653_12c53fd569035ad817726>>
         
     | 
| 
      
 486 
     | 
    
         
            +
            ```
         
     | 
| 
      
 487 
     | 
    
         
            +
             
     | 
| 
       454 
488 
     | 
    
         
             
            ## Message with attachments
         
     | 
| 
       455 
489 
     | 
    
         | 
| 
       456 
490 
     | 
    
         
             
            ``` ruby
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.12.0
         
     | 
    
        data/gemfiles/Gemfile.legacy
    CHANGED
    
    
| 
         @@ -31,7 +31,8 @@ module Postmark 
     | 
|
| 
       31 
31 
     | 
    
         
             
                    'Headers' => @message.export_headers,
         
     | 
| 
       32 
32 
     | 
    
         
             
                    'Tag' => @message.tag.to_s,
         
     | 
| 
       33 
33 
     | 
    
         
             
                    'TrackOpens' => (cast_to_bool(@message.track_opens) unless @message.track_opens.empty?),
         
     | 
| 
       34 
     | 
    
         
            -
                    'TrackLinks' => (::Postmark::Inflector.to_postmark(@message.track_links) unless @message.track_links.empty?)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    'TrackLinks' => (::Postmark::Inflector.to_postmark(@message.track_links) unless @message.track_links.empty?),
         
     | 
| 
      
 35 
     | 
    
         
            +
                    'Metadata' => (@message.metadata unless @message.metadata.nil?)
         
     | 
| 
       35 
36 
     | 
    
         
             
                  }
         
     | 
| 
       36 
37 
     | 
    
         
             
                end
         
     | 
| 
       37 
38 
     | 
    
         | 
| 
         @@ -33,6 +33,15 @@ module Mail 
     | 
|
| 
       33 
33 
     | 
    
         
             
                  header['TRACK-OPENS'] = (!!val).to_s
         
     | 
| 
       34 
34 
     | 
    
         
             
                end
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
      
 36 
     | 
    
         
            +
                def metadata(val = nil)
         
     | 
| 
      
 37 
     | 
    
         
            +
                  @metadata=val unless val.nil?
         
     | 
| 
      
 38 
     | 
    
         
            +
                  @metadata
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                def metadata=(val)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  @metadata = val
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       36 
45 
     | 
    
         
             
                def postmark_attachments=(value)
         
     | 
| 
       37 
46 
     | 
    
         
             
                  Kernel.warn("Mail::Message#postmark_attachments= is deprecated and will " \
         
     | 
| 
       38 
47 
     | 
    
         
             
                              "be removed in the future. Please consider using the native " \
         
     | 
    
        data/lib/postmark/version.rb
    CHANGED
    
    
| 
         @@ -104,20 +104,27 @@ describe Postmark::MessageHelper do 
     | 
|
| 
       104 
104 
     | 
    
         
             
                  expect(subject.to_postmark(message_with_headers_and_attachments)).to eq postmark_message_with_headers_and_attachments
         
     | 
| 
       105 
105 
     | 
    
         
             
                end
         
     | 
| 
       106 
106 
     | 
    
         | 
| 
       107 
     | 
    
         
            -
                context 'open tracking 
     | 
| 
      
 107 
     | 
    
         
            +
                context 'open tracking' do
         
     | 
| 
       108 
108 
     | 
    
         | 
| 
       109 
     | 
    
         
            -
                  it 'true' do
         
     | 
| 
      
 109 
     | 
    
         
            +
                  it 'converts messages with open tracking flag set to true correctly' do
         
     | 
| 
       110 
110 
     | 
    
         
             
                    expect(subject.to_postmark(message_with_open_tracking)).to eq(postmark_message_with_open_tracking)
         
     | 
| 
       111 
111 
     | 
    
         
             
                  end
         
     | 
| 
       112 
112 
     | 
    
         | 
| 
       113 
     | 
    
         
            -
                  it 'false' do
         
     | 
| 
      
 113 
     | 
    
         
            +
                  it 'converts messages with open tracking flag set to false correctly' do
         
     | 
| 
       114 
114 
     | 
    
         
             
                    expect(subject.to_postmark(message_with_open_tracking_false)).to eq(postmark_message_with_open_tracking_false)
         
     | 
| 
       115 
115 
     | 
    
         
             
                  end
         
     | 
| 
       116 
116 
     | 
    
         | 
| 
       117 
117 
     | 
    
         
             
                end
         
     | 
| 
       118 
118 
     | 
    
         | 
| 
       119 
     | 
    
         
            -
                context ' 
     | 
| 
      
 119 
     | 
    
         
            +
                context 'metadata' do
         
     | 
| 
      
 120 
     | 
    
         
            +
                  it 'converts messages with metadata correctly' do
         
     | 
| 
      
 121 
     | 
    
         
            +
                    metadata = {"test" => "value"}
         
     | 
| 
      
 122 
     | 
    
         
            +
                    data= message.merge(:metadata => metadata)
         
     | 
| 
      
 123 
     | 
    
         
            +
                    expect(subject.to_postmark(data)).to include(postmark_message.merge("Metadata" => metadata))
         
     | 
| 
      
 124 
     | 
    
         
            +
                  end
         
     | 
| 
      
 125 
     | 
    
         
            +
                end
         
     | 
| 
       120 
126 
     | 
    
         | 
| 
      
 127 
     | 
    
         
            +
                context 'link tracking' do
         
     | 
| 
       121 
128 
     | 
    
         
             
                  let(:message_with_link_tracking_html) { message.merge(:track_links => :html_only) }
         
     | 
| 
       122 
129 
     | 
    
         
             
                  let(:message_with_link_tracking_text) { message.merge(:track_links => :text_only) }
         
     | 
| 
       123 
130 
     | 
    
         
             
                  let(:message_with_link_tracking_all) { message.merge(:track_links => :html_and_text) }
         
     | 
| 
         @@ -128,24 +135,22 @@ describe Postmark::MessageHelper do 
     | 
|
| 
       128 
135 
     | 
    
         
             
                  let(:postmark_message_with_link_tracking_all) { postmark_message.merge("TrackLinks" => 'HtmlAndText') }
         
     | 
| 
       129 
136 
     | 
    
         
             
                  let(:postmark_message_with_link_tracking_none) { postmark_message.merge("TrackLinks" => 'None') }
         
     | 
| 
       130 
137 
     | 
    
         | 
| 
       131 
     | 
    
         
            -
                  it 'html' do
         
     | 
| 
      
 138 
     | 
    
         
            +
                  it 'converts html body link tracking to Postmark format' do
         
     | 
| 
       132 
139 
     | 
    
         
             
                    expect(subject.to_postmark(message_with_link_tracking_html)).to eq(postmark_message_with_link_tracking_html)
         
     | 
| 
       133 
140 
     | 
    
         
             
                  end
         
     | 
| 
       134 
141 
     | 
    
         | 
| 
       135 
     | 
    
         
            -
                  it 'text' do
         
     | 
| 
      
 142 
     | 
    
         
            +
                  it 'converts text body link tracking to Postmark format' do
         
     | 
| 
       136 
143 
     | 
    
         
             
                    expect(subject.to_postmark(message_with_link_tracking_text)).to eq(postmark_message_with_link_tracking_text)
         
     | 
| 
       137 
144 
     | 
    
         
             
                  end
         
     | 
| 
       138 
145 
     | 
    
         | 
| 
       139 
     | 
    
         
            -
                  it 'html and text' do
         
     | 
| 
      
 146 
     | 
    
         
            +
                  it 'converts html and text body link tracking to Postmark format' do
         
     | 
| 
       140 
147 
     | 
    
         
             
                    expect(subject.to_postmark(message_with_link_tracking_all)).to eq(postmark_message_with_link_tracking_all)
         
     | 
| 
       141 
148 
     | 
    
         
             
                  end
         
     | 
| 
       142 
149 
     | 
    
         | 
| 
       143 
     | 
    
         
            -
                  it ' 
     | 
| 
      
 150 
     | 
    
         
            +
                  it 'converts no link tracking to Postmark format' do
         
     | 
| 
       144 
151 
     | 
    
         
             
                    expect(subject.to_postmark(message_with_link_tracking_none)).to eq(postmark_message_with_link_tracking_none)
         
     | 
| 
       145 
152 
     | 
    
         
             
                  end
         
     | 
| 
       146 
     | 
    
         
            -
             
     | 
| 
       147 
153 
     | 
    
         
             
                end
         
     | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
       149 
154 
     | 
    
         
             
              end
         
     | 
| 
       150 
155 
     | 
    
         | 
| 
       151 
156 
     | 
    
         
             
              describe ".headers_to_postmark" do
         
     | 
| 
         @@ -159,7 +164,6 @@ describe Postmark::MessageHelper do 
     | 
|
| 
       159 
164 
     | 
    
         
             
              end
         
     | 
| 
       160 
165 
     | 
    
         | 
| 
       161 
166 
     | 
    
         
             
              describe ".attachments_to_postmark" do
         
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
167 
     | 
    
         
             
                it 'converts attachments to Postmark format' do
         
     | 
| 
       164 
168 
     | 
    
         
             
                  expect(subject.attachments_to_postmark(attachments)).to eq postmark_attachments
         
     | 
| 
       165 
169 
     | 
    
         
             
                end
         
     | 
| 
         @@ -167,7 +171,6 @@ describe Postmark::MessageHelper do 
     | 
|
| 
       167 
171 
     | 
    
         
             
                it 'accepts single attachment as a non-array' do
         
     | 
| 
       168 
172 
     | 
    
         
             
                  expect(subject.attachments_to_postmark(attachments.first)).to eq [postmark_attachments.first]
         
     | 
| 
       169 
173 
     | 
    
         
             
                end
         
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
174 
     | 
    
         
             
              end
         
     | 
| 
       172 
175 
     | 
    
         | 
| 
       173 
176 
     | 
    
         
             
            end
         
     | 
| 
         @@ -225,11 +225,9 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       225 
225 
     | 
    
         
             
                    "ReplyTo" => 'Penny The Neighbor <penny@bigbangtheory.com>'}
         
     | 
| 
       226 
226 
     | 
    
         
             
              end
         
     | 
| 
       227 
227 
     | 
    
         | 
| 
       228 
     | 
    
         
            -
              context ' 
     | 
| 
       229 
     | 
    
         
            -
             
     | 
| 
      
 228 
     | 
    
         
            +
              context 'open tracking' do
         
     | 
| 
       230 
229 
     | 
    
         
             
                context 'setup inside of mail' do
         
     | 
| 
       231 
     | 
    
         
            -
             
     | 
| 
       232 
     | 
    
         
            -
                  it 'enabled' do
         
     | 
| 
      
 230 
     | 
    
         
            +
                  it 'converts open tracking enabled messages correctly' do
         
     | 
| 
       233 
231 
     | 
    
         
             
                    expect(subject.new(mail_message_with_open_tracking).run).to eq ({
         
     | 
| 
       234 
232 
     | 
    
         
             
                        "From" => "sheldon@bigbangtheory.com",
         
     | 
| 
       235 
233 
     | 
    
         
             
                        "Subject" => "Hello!",
         
     | 
| 
         @@ -238,7 +236,7 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       238 
236 
     | 
    
         
             
                        "TrackOpens" => true})
         
     | 
| 
       239 
237 
     | 
    
         
             
                  end
         
     | 
| 
       240 
238 
     | 
    
         | 
| 
       241 
     | 
    
         
            -
                  it 'disabled' do
         
     | 
| 
      
 239 
     | 
    
         
            +
                  it 'converts open tracking disabled messages correctly' do
         
     | 
| 
       242 
240 
     | 
    
         
             
                    expect(subject.new(mail_message_with_open_tracking_disabled).run).to eq ({
         
     | 
| 
       243 
241 
     | 
    
         
             
                        "From" => "sheldon@bigbangtheory.com",
         
     | 
| 
       244 
242 
     | 
    
         
             
                        "Subject" => "Hello!",
         
     | 
| 
         @@ -246,12 +244,10 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       246 
244 
     | 
    
         
             
                        "To" => "lenard@bigbangtheory.com",
         
     | 
| 
       247 
245 
     | 
    
         
             
                        "TrackOpens" => false})
         
     | 
| 
       248 
246 
     | 
    
         
             
                  end
         
     | 
| 
       249 
     | 
    
         
            -
             
     | 
| 
       250 
247 
     | 
    
         
             
                end
         
     | 
| 
       251 
248 
     | 
    
         | 
| 
       252 
249 
     | 
    
         
             
                context 'setup with tracking variable' do
         
     | 
| 
       253 
     | 
    
         
            -
             
     | 
| 
       254 
     | 
    
         
            -
                  it 'enabled' do
         
     | 
| 
      
 250 
     | 
    
         
            +
                  it 'converts open tracking enabled messages correctly' do
         
     | 
| 
       255 
251 
     | 
    
         
             
                    expect(subject.new(mail_message_with_open_tracking_set_variable).run).to eq ({
         
     | 
| 
       256 
252 
     | 
    
         
             
                        "From" => "sheldon@bigbangtheory.com",
         
     | 
| 
       257 
253 
     | 
    
         
             
                        "Subject" => "Hello!",
         
     | 
| 
         @@ -260,7 +256,7 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       260 
256 
     | 
    
         
             
                        "TrackOpens" => true})
         
     | 
| 
       261 
257 
     | 
    
         
             
                  end
         
     | 
| 
       262 
258 
     | 
    
         | 
| 
       263 
     | 
    
         
            -
                  it 'disabled' do
         
     | 
| 
      
 259 
     | 
    
         
            +
                  it 'converts open tracking disabled messages correctly' do
         
     | 
| 
       264 
260 
     | 
    
         
             
                    expect(subject.new(mail_message_with_open_tracking_disabled_set_variable).run).to eq ({
         
     | 
| 
       265 
261 
     | 
    
         
             
                        "From" => "sheldon@bigbangtheory.com",
         
     | 
| 
       266 
262 
     | 
    
         
             
                        "Subject" => "Hello!",
         
     | 
| 
         @@ -268,14 +264,11 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       268 
264 
     | 
    
         
             
                        "To" => "lenard@bigbangtheory.com",
         
     | 
| 
       269 
265 
     | 
    
         
             
                        "TrackOpens" => false})
         
     | 
| 
       270 
266 
     | 
    
         
             
                  end
         
     | 
| 
       271 
     | 
    
         
            -
             
     | 
| 
       272 
267 
     | 
    
         
             
                end
         
     | 
| 
       273 
     | 
    
         
            -
             
     | 
| 
       274 
268 
     | 
    
         
             
              end
         
     | 
| 
       275 
269 
     | 
    
         | 
| 
       276 
270 
     | 
    
         
             
              context 'link tracking' do
         
     | 
| 
       277 
     | 
    
         
            -
             
     | 
| 
       278 
     | 
    
         
            -
                it 'html and text' do
         
     | 
| 
      
 271 
     | 
    
         
            +
                it 'converts html and text link tracking enabled messages correctly' do
         
     | 
| 
       279 
272 
     | 
    
         
             
                  expect(subject.new(mail_message_with_link_tracking_all).run).to eq ({
         
     | 
| 
       280 
273 
     | 
    
         
             
                      "From" => "sheldon@bigbangtheory.com",
         
     | 
| 
       281 
274 
     | 
    
         
             
                      "Subject" => "Hello!",
         
     | 
| 
         @@ -284,7 +277,7 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       284 
277 
     | 
    
         
             
                      "TrackLinks" => 'HtmlAndText'})
         
     | 
| 
       285 
278 
     | 
    
         
             
                end
         
     | 
| 
       286 
279 
     | 
    
         | 
| 
       287 
     | 
    
         
            -
                it 'html only' do
         
     | 
| 
      
 280 
     | 
    
         
            +
                it 'converts html only link tracking enabled messages correctly' do
         
     | 
| 
       288 
281 
     | 
    
         
             
                  expect(subject.new(mail_message_with_link_tracking_html).run).to eq ({
         
     | 
| 
       289 
282 
     | 
    
         
             
                      "From" => "sheldon@bigbangtheory.com",
         
     | 
| 
       290 
283 
     | 
    
         
             
                      "Subject" => "Hello!",
         
     | 
| 
         @@ -293,7 +286,7 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       293 
286 
     | 
    
         
             
                      "TrackLinks" => 'HtmlOnly'})
         
     | 
| 
       294 
287 
     | 
    
         
             
                end
         
     | 
| 
       295 
288 
     | 
    
         | 
| 
       296 
     | 
    
         
            -
                it 'text only' do
         
     | 
| 
      
 289 
     | 
    
         
            +
                it 'converts text only link tracking enabled messages correctly' do
         
     | 
| 
       297 
290 
     | 
    
         
             
                  expect(subject.new(mail_message_with_link_tracking_text).run).to eq ({
         
     | 
| 
       298 
291 
     | 
    
         
             
                      "From" => "sheldon@bigbangtheory.com",
         
     | 
| 
       299 
292 
     | 
    
         
             
                      "Subject" => "Hello!",
         
     | 
| 
         @@ -302,7 +295,7 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       302 
295 
     | 
    
         
             
                      "TrackLinks" => 'TextOnly'})
         
     | 
| 
       303 
296 
     | 
    
         
             
                end
         
     | 
| 
       304 
297 
     | 
    
         | 
| 
       305 
     | 
    
         
            -
                it ' 
     | 
| 
      
 298 
     | 
    
         
            +
                it 'converts link tracking disabled messages correctly' do
         
     | 
| 
       306 
299 
     | 
    
         
             
                  expect(subject.new(mail_message_with_link_tracking_none).run).to eq ({
         
     | 
| 
       307 
300 
     | 
    
         
             
                      "From" => "sheldon@bigbangtheory.com",
         
     | 
| 
       308 
301 
     | 
    
         
             
                      "Subject" => "Hello!",
         
     | 
| 
         @@ -316,7 +309,30 @@ describe Postmark::MailMessageConverter do 
     | 
|
| 
       316 
309 
     | 
    
         
             
                  msg[:track_links] = :html_and_text
         
     | 
| 
       317 
310 
     | 
    
         
             
                  expect(subject.new(msg).run).to include('TrackLinks' => 'HtmlAndText')
         
     | 
| 
       318 
311 
     | 
    
         
             
                end
         
     | 
| 
      
 312 
     | 
    
         
            +
              end
         
     | 
| 
      
 313 
     | 
    
         
            +
             
     | 
| 
      
 314 
     | 
    
         
            +
              context 'metadata' do
         
     | 
| 
      
 315 
     | 
    
         
            +
                it 'converts single metadata field' do
         
     | 
| 
      
 316 
     | 
    
         
            +
                  metadata = {:test => 'test'}
         
     | 
| 
      
 317 
     | 
    
         
            +
                  msg = mail_html_message
         
     | 
| 
      
 318 
     | 
    
         
            +
                  msg.metadata = metadata
         
     | 
| 
      
 319 
     | 
    
         
            +
                  expect(subject.new(msg).run).to include('Metadata' => metadata)
         
     | 
| 
      
 320 
     | 
    
         
            +
                end
         
     | 
| 
      
 321 
     | 
    
         
            +
             
     | 
| 
      
 322 
     | 
    
         
            +
                it 'converts unicode metadata field metadata' do
         
     | 
| 
      
 323 
     | 
    
         
            +
                  metadata = {:test => "Велик"}
         
     | 
| 
      
 324 
     | 
    
         
            +
                  msg = mail_html_message
         
     | 
| 
      
 325 
     | 
    
         
            +
                  msg.metadata = metadata
         
     | 
| 
      
 326 
     | 
    
         
            +
                  expect(subject.new(msg).run).to include('Metadata' => metadata)
         
     | 
| 
      
 327 
     | 
    
         
            +
                end
         
     | 
| 
       319 
328 
     | 
    
         | 
| 
      
 329 
     | 
    
         
            +
                it 'converts multiple metadata fields' do
         
     | 
| 
      
 330 
     | 
    
         
            +
                  metadata = {}
         
     | 
| 
      
 331 
     | 
    
         
            +
                  metadata = 10.times { |i| metadata["test#{i+1}"] = "t"*80 }
         
     | 
| 
      
 332 
     | 
    
         
            +
                  msg = mail_html_message
         
     | 
| 
      
 333 
     | 
    
         
            +
                  msg.metadata = metadata
         
     | 
| 
      
 334 
     | 
    
         
            +
                  expect(subject.new(msg).run).to include('Metadata' => metadata)
         
     | 
| 
      
 335 
     | 
    
         
            +
                end
         
     | 
| 
       320 
336 
     | 
    
         
             
              end
         
     | 
| 
       321 
337 
     | 
    
         | 
| 
       322 
338 
     | 
    
         
             
              it 'correctly decodes unicode in messages transfered as quoted-printable' do
         
     | 
| 
         @@ -58,27 +58,23 @@ describe Mail::Message do 
     | 
|
| 
       58 
58 
     | 
    
         
             
              end
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
       60 
60 
     | 
    
         
             
              describe '#track_opens' do
         
     | 
| 
      
 61 
     | 
    
         
            +
                it 'returns nil if unset' do
         
     | 
| 
      
 62 
     | 
    
         
            +
                  expect(mail_message.track_opens).to eq ''
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
       61 
64 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
                context ' 
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                  it 'true' do
         
     | 
| 
      
 65 
     | 
    
         
            +
                context 'when assigned via #track_opens=' do
         
     | 
| 
      
 66 
     | 
    
         
            +
                  it 'returns assigned value to track opens' do
         
     | 
| 
       65 
67 
     | 
    
         
             
                    mail_message.track_opens = true
         
     | 
| 
       66 
68 
     | 
    
         
             
                    expect(mail_message.track_opens).to eq 'true'
         
     | 
| 
       67 
69 
     | 
    
         
             
                  end
         
     | 
| 
       68 
70 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
                  it ' 
     | 
| 
      
 71 
     | 
    
         
            +
                  it 'returns assigned value to not track opens' do
         
     | 
| 
       70 
72 
     | 
    
         
             
                    mail_message.track_opens = false
         
     | 
| 
       71 
73 
     | 
    
         
             
                    expect(mail_message.track_opens).to eq 'false'
         
     | 
| 
       72 
74 
     | 
    
         
             
                  end
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
                  it 'not set' do
         
     | 
| 
       75 
     | 
    
         
            -
                    expect(mail_message.track_opens).to eq ''
         
     | 
| 
       76 
     | 
    
         
            -
                  end
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
75 
     | 
    
         
             
                end
         
     | 
| 
       79 
76 
     | 
    
         | 
| 
       80 
77 
     | 
    
         
             
                context 'flag set on track_opens()' do
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
78 
     | 
    
         
             
                  it 'true' do
         
     | 
| 
       83 
79 
     | 
    
         
             
                    mail_message.track_opens(true)
         
     | 
| 
       84 
80 
     | 
    
         
             
                    expect(mail_message.track_opens).to eq 'true'
         
     | 
| 
         @@ -88,35 +84,49 @@ describe Mail::Message do 
     | 
|
| 
       88 
84 
     | 
    
         
             
                    mail_message.track_opens(false)
         
     | 
| 
       89 
85 
     | 
    
         
             
                    expect(mail_message.track_opens).to eq 'false'
         
     | 
| 
       90 
86 
     | 
    
         
             
                  end
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
87 
     | 
    
         
             
                end
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
88 
     | 
    
         
             
              end
         
     | 
| 
       95 
89 
     | 
    
         | 
| 
       96 
     | 
    
         
            -
              describe '# 
     | 
| 
      
 90 
     | 
    
         
            +
              describe '#metadata' do
         
     | 
| 
      
 91 
     | 
    
         
            +
                let(:metadata) {{:test => "test"}}
         
     | 
| 
       97 
92 
     | 
    
         | 
| 
       98 
     | 
    
         
            -
                 
     | 
| 
      
 93 
     | 
    
         
            +
                it 'returns nil if unset' do
         
     | 
| 
      
 94 
     | 
    
         
            +
                  expect(mail_message.metadata).to eq nil
         
     | 
| 
      
 95 
     | 
    
         
            +
                end
         
     | 
| 
       99 
96 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
                     
     | 
| 
      
 97 
     | 
    
         
            +
                context 'when assigned via #metadata=' do
         
     | 
| 
      
 98 
     | 
    
         
            +
                  it 'returns assigned value' do
         
     | 
| 
      
 99 
     | 
    
         
            +
                    mail_message.metadata=metadata
         
     | 
| 
      
 100 
     | 
    
         
            +
                    expect(mail_message.metadata).to eq metadata
         
     | 
| 
       103 
101 
     | 
    
         
             
                  end
         
     | 
| 
      
 102 
     | 
    
         
            +
                end
         
     | 
| 
       104 
103 
     | 
    
         | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
      
 104 
     | 
    
         
            +
                context 'when assigned via metadata()' do
         
     | 
| 
      
 105 
     | 
    
         
            +
                  it 'returns assigned value' do
         
     | 
| 
      
 106 
     | 
    
         
            +
                    mail_message.metadata(metadata)
         
     | 
| 
      
 107 
     | 
    
         
            +
                    expect(mail_message.metadata).to eq metadata
         
     | 
| 
       107 
108 
     | 
    
         
             
                  end
         
     | 
| 
      
 109 
     | 
    
         
            +
                end
         
     | 
| 
      
 110 
     | 
    
         
            +
              end
         
     | 
| 
       108 
111 
     | 
    
         | 
| 
      
 112 
     | 
    
         
            +
              describe '#track_links' do
         
     | 
| 
      
 113 
     | 
    
         
            +
                it 'return empty string when if unset' do
         
     | 
| 
      
 114 
     | 
    
         
            +
                  expect(mail_message.track_links).to eq ''
         
     | 
| 
       109 
115 
     | 
    
         
             
                end
         
     | 
| 
       110 
116 
     | 
    
         | 
| 
       111 
     | 
    
         
            -
                context ' 
     | 
| 
      
 117 
     | 
    
         
            +
                context 'when assigned via #track_links=' do
         
     | 
| 
      
 118 
     | 
    
         
            +
                  it 'returns track html only body value in Postmark format' do
         
     | 
| 
      
 119 
     | 
    
         
            +
                    mail_message.track_links=:html_only
         
     | 
| 
      
 120 
     | 
    
         
            +
                    expect(mail_message.track_links).to eq 'HtmlOnly'
         
     | 
| 
      
 121 
     | 
    
         
            +
                  end
         
     | 
| 
      
 122 
     | 
    
         
            +
                end
         
     | 
| 
       112 
123 
     | 
    
         | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
      
 124 
     | 
    
         
            +
                context 'when assigned via track_links()' do
         
     | 
| 
      
 125 
     | 
    
         
            +
                  it 'returns track html only body value in Postmark format' do
         
     | 
| 
       114 
126 
     | 
    
         
             
                    mail_message.track_links(:html_only)
         
     | 
| 
       115 
127 
     | 
    
         
             
                    expect(mail_message.track_links).to eq 'HtmlOnly'
         
     | 
| 
       116 
128 
     | 
    
         
             
                  end
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
129 
     | 
    
         
             
                end
         
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
130 
     | 
    
         
             
              end
         
     | 
| 
       121 
131 
     | 
    
         | 
| 
       122 
132 
     | 
    
         
             
              describe "#html?" do
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: postmark
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.12.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Petyo Ivanov
         
     | 
| 
         @@ -10,7 +10,7 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2018- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2018-07-02 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: rake
         
     |