simple_postmark 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +22 -0
- data/Gemfile +3 -0
- data/README.md +90 -0
- data/Rakefile +8 -0
- data/gemfiles/Rails_3_0.gemfile +5 -0
- data/gemfiles/Rails_3_1.gemfile +5 -0
- data/gemfiles/Rails_3_2.gemfile +5 -0
- data/gemfiles/Rails_master.gemfile +13 -0
- data/lib/simple_postmark.rb +1 -1
- data/simple_postmark.gemspec +22 -0
- data/spec/delivery_method_spec.rb +46 -0
- data/spec/mail_ext/message_spec.rb +71 -0
- data/spec/mail_ext/part_spec.rb +46 -0
- data/spec/railtie_spec.rb +117 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/thebrocode.jpg +0 -0
- metadata +35 -22
- data/lib/simple_postmark/version.rb +0 -3
data/.travis.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
language: ruby
|
2
|
+
|
3
|
+
rvm:
|
4
|
+
- 1.9.2
|
5
|
+
- 1.9.3
|
6
|
+
- ruby-head
|
7
|
+
|
8
|
+
gemfile:
|
9
|
+
- Gemfile
|
10
|
+
- gemfiles/Rails_3_0.gemfile
|
11
|
+
- gemfiles/Rails_3_1.gemfile
|
12
|
+
- gemfiles/Rails_3_2.gemfile
|
13
|
+
- gemfiles/Rails_master.gemfile
|
14
|
+
|
15
|
+
branches:
|
16
|
+
only:
|
17
|
+
- master
|
18
|
+
|
19
|
+
matrix:
|
20
|
+
exclude:
|
21
|
+
- rvm: 1.9.2
|
22
|
+
gemfile: gemfiles/Rails_master.gemfile
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
# simple_postmark
|
2
|
+
|
3
|
+
SimplePostmark makes it easy to send mails via [Postmark](http://postmarkapp.com)™ using Rails 3's ActionMailer.
|
4
|
+
SimplePostmark is inspired by [postmark-gem](https://github.com/wildbit/postmark-gem), but unfortunately postmark-gem forced to me to use non-standard Rails calls like `postmark_attachments`. SimplePostmark uses the standard Rails 3's ActionMailer syntax to send your emails via Postmark.
|
5
|
+
|
6
|
+
[![Build Status](https://secure.travis-ci.org/haihappen/simple_postmark.png)](http://travis-ci.org/haihappen/simple_postmark)
|
7
|
+
|
8
|
+
Tested against Ruby versions `1.9.2`, `1.9.3`, `ruby-head` and Rails versions `3.0.x`, `3.1.x`, `3.2.x`, `master` (upcoming Rails `4.0.0`).
|
9
|
+
|
10
|
+
If you are still using Ruby `1.8.7` or `Ruby Enterprise Edition` with Rails 3, you can use the backported version of this gem called [simple_postmark18](https://github.com/haihappen/simple_postmark/tree/ruby18).
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
In your `Gemfile`:
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
group :production do
|
18
|
+
gem 'simple_postmark'
|
19
|
+
end
|
20
|
+
```
|
21
|
+
|
22
|
+
In your `config/environments/production.rb`:
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
config.action_mailer.delivery_method = :simple_postmark
|
26
|
+
config.action_mailer.simple_postmark_settings = { api_key: '********-****-****-****-************' }
|
27
|
+
```
|
28
|
+
|
29
|
+
## Usage
|
30
|
+
|
31
|
+
Just use your standard Rails 3 Mailer:
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
class NotificationMailer < ActionMailer::Base
|
35
|
+
def notification
|
36
|
+
mail(to: 'ted@himym.tld', from: 'barney@himym.tld', subject: "I'm your bro!") do
|
37
|
+
# ...
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
```
|
42
|
+
|
43
|
+
And of course you can use standard attachment calls and [Postmark's tags](http://developer.postmarkapp.com/developer-build.html#message-format):
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
class NotificationMailer < ActionMailer::Base
|
47
|
+
def notification
|
48
|
+
attachments['thebrocode.pdf'] = File.read('thebrocode.pdf')
|
49
|
+
|
50
|
+
mail(to: 'ted@himym.tld', from: 'barney@himym.tld', subject: "I'm your bro!", tag: 'with-attachment') do
|
51
|
+
# ...
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
```
|
56
|
+
|
57
|
+
## Contributing to simple_postmark
|
58
|
+
|
59
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
60
|
+
* Check out the [issue tracker](https://github.com/haihappen/simple_postmark/issues) to make sure someone already hasn't requested it and/or contributed it
|
61
|
+
* Fork the project
|
62
|
+
* Start a feature/bugfix branch
|
63
|
+
* Commit and push until you are happy with your contribution
|
64
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
65
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
66
|
+
|
67
|
+
## Copyright
|
68
|
+
|
69
|
+
(The MIT license)
|
70
|
+
|
71
|
+
Copyright (c) 2011-2012 Mario Uher
|
72
|
+
|
73
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
74
|
+
a copy of this software and associated documentation files (the
|
75
|
+
"Software"), to deal in the Software without restriction, including
|
76
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
77
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
78
|
+
permit persons to whom the Software is furnished to do so, subject to
|
79
|
+
the following conditions:
|
80
|
+
|
81
|
+
The above copyright notice and this permission notice shall be
|
82
|
+
included in all copies or substantial portions of the Software.
|
83
|
+
|
84
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
85
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
86
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
87
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
88
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
89
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
90
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
source :rubygems
|
2
|
+
|
3
|
+
gem 'activesupport', git: 'git://github.com/rails/rails.git'
|
4
|
+
gem 'httparty'
|
5
|
+
gem 'json'
|
6
|
+
gem 'mail'
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem 'minitest'
|
10
|
+
gem 'purdytest'
|
11
|
+
gem 'rails', git: 'git://github.com/rails/rails.git'
|
12
|
+
gem 'webmock'
|
13
|
+
end
|
data/lib/simple_postmark.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
Gem::Specification.new do |gem|
|
2
|
+
gem.name = 'simple_postmark'
|
3
|
+
gem.version = '0.4.1'
|
4
|
+
gem.authors = 'Mario Uher'
|
5
|
+
gem.email = 'uher.mario@gmail.com'
|
6
|
+
gem.description = 'SimplePostmark makes it easy to send mails via Postmark™ using Rails 3\'s ActionMailer.'
|
7
|
+
gem.summary = 'A simple way to use Postmark™ with your Rails app.'
|
8
|
+
gem.homepage = 'http://haihappen.github.com/simple_postmark'
|
9
|
+
|
10
|
+
gem.files = `git ls-files`.split("\n")
|
11
|
+
gem.require_path = 'lib'
|
12
|
+
|
13
|
+
gem.add_dependency 'activesupport', '~> 3.0'
|
14
|
+
gem.add_dependency 'httparty'
|
15
|
+
gem.add_dependency 'json'
|
16
|
+
gem.add_dependency 'mail'
|
17
|
+
|
18
|
+
gem.add_development_dependency 'minitest'
|
19
|
+
gem.add_development_dependency 'purdytest'
|
20
|
+
gem.add_development_dependency 'rails', '~> 3.0'
|
21
|
+
gem.add_development_dependency 'webmock'
|
22
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Mail do
|
4
|
+
describe SimplePostmark do
|
5
|
+
let(:instance) { Mail::SimplePostmark.new({}) }
|
6
|
+
|
7
|
+
|
8
|
+
it 'should respond to deliver!' do
|
9
|
+
instance.must_respond_to(:deliver!)
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
describe :deliver! do
|
14
|
+
let(:mail) do
|
15
|
+
Mail.new do
|
16
|
+
from 'barney@himym.tld'
|
17
|
+
to 'ted@himym.tld'
|
18
|
+
subject "I'm your bro!"
|
19
|
+
body "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!"
|
20
|
+
tag 'simple-postmark'
|
21
|
+
add_file(File.join(File.dirname(__FILE__), 'thebrocode.jpg'))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
let(:url) { 'http://api.postmarkapp.com/email' }
|
25
|
+
|
26
|
+
before do
|
27
|
+
mail.delivery_method(Mail::SimplePostmark)
|
28
|
+
stub_request(:post, url)
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
it 'should send emails' do
|
33
|
+
mail.deliver
|
34
|
+
|
35
|
+
assert_requested(:post, url)
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
it 'should post appropriate data' do
|
40
|
+
mail.deliver
|
41
|
+
|
42
|
+
assert_requested(:post, url, headers: { 'Accept' => 'application/json', 'ContentType' => 'application/json', 'X-Postmark-Server-Token' => '********-****-****-****-************' })
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Mail::Message do
|
4
|
+
it 'should respond to +to_postmark+' do
|
5
|
+
Mail::Message.new.must_respond_to(:to_postmark)
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
it 'should respond to +to_postmark+' do
|
10
|
+
Mail.new.must_respond_to(:to_postmark)
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
describe :to_postmark do
|
15
|
+
let(:mail) do
|
16
|
+
Mail.new do
|
17
|
+
from 'barney@himym.tld'
|
18
|
+
to 'ted@himym.tld'
|
19
|
+
subject "I'm your bro!"
|
20
|
+
body "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!"
|
21
|
+
tag 'simple-postmark'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
it 'should return a hash' do
|
27
|
+
hash = {
|
28
|
+
'From' => 'barney@himym.tld',
|
29
|
+
'To' => 'ted@himym.tld',
|
30
|
+
'Subject' => "I'm your bro!",
|
31
|
+
'TextBody' => "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!",
|
32
|
+
'Tag' => 'simple-postmark',
|
33
|
+
'Attachments' => [{
|
34
|
+
'Name' => 'thebrocode.jpg',
|
35
|
+
'Content' => [File.read(File.join(File.dirname(__FILE__), '..', 'thebrocode.jpg'))].pack('m'),
|
36
|
+
'ContentType' => 'image/jpeg'
|
37
|
+
}]
|
38
|
+
}
|
39
|
+
mail.add_file(File.join(File.dirname(__FILE__), '..', 'thebrocode.jpg'))
|
40
|
+
|
41
|
+
mail.to_postmark.must_equal(hash)
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
it 'should return multiple recipients as comma-separated list' do
|
46
|
+
mail.to = ['barney@himym.tld', 'marshall@himym.tld']
|
47
|
+
|
48
|
+
mail.to_postmark['To'].must_equal('barney@himym.tld, marshall@himym.tld')
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
it 'should return all email headers as hash' do
|
53
|
+
mail.bcc = 'lily@himym.tld'
|
54
|
+
mail.cc = 'marshall@himym.tld'
|
55
|
+
mail.reply_to = 'barney@barneystinsonblog.com'
|
56
|
+
|
57
|
+
hash = {
|
58
|
+
'Bcc' => 'lily@himym.tld',
|
59
|
+
'Cc' => 'marshall@himym.tld',
|
60
|
+
'From' => 'barney@himym.tld',
|
61
|
+
'ReplyTo' => 'barney@barneystinsonblog.com',
|
62
|
+
'Subject' => "I'm your bro!",
|
63
|
+
'Tag' => 'simple-postmark',
|
64
|
+
'TextBody' => "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!",
|
65
|
+
'To' => 'ted@himym.tld'
|
66
|
+
}
|
67
|
+
|
68
|
+
mail.to_postmark.must_equal(hash)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Mail::Part do
|
4
|
+
it 'should respond to +to_postmark+' do
|
5
|
+
Mail::Part.new.must_respond_to(:to_postmark)
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
describe :to_postmark do
|
10
|
+
it 'should return body hash if part is not an attachment' do
|
11
|
+
part = Mail::Part.new do
|
12
|
+
body "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!"
|
13
|
+
content_type 'text/plain'
|
14
|
+
end
|
15
|
+
|
16
|
+
content = "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!"
|
17
|
+
|
18
|
+
part.to_postmark.must_equal('Name' => nil, 'Content' => content, 'ContentType' => 'text/plain')
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
it 'should return body hash if part is not an attachment' do
|
23
|
+
part = Mail::Part.new do
|
24
|
+
body "<p>Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome.<br /><br />I'm your bro-I'm Broda!</p>"
|
25
|
+
content_type 'text/html'
|
26
|
+
end
|
27
|
+
|
28
|
+
content = "<p>Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome.<br /><br />I'm your bro-I'm Broda!</p>"
|
29
|
+
|
30
|
+
part.to_postmark.must_equal('Name' => nil, 'Content' => content, 'ContentType' => 'text/html')
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
it 'should return base64-encoded file-content hash if part is an attachment' do
|
35
|
+
file = File.join(File.dirname(__FILE__), '..', 'thebrocode.jpg')
|
36
|
+
|
37
|
+
part = Mail::Part.new.tap do |mail|
|
38
|
+
mail.add_file(file)
|
39
|
+
end.attachments.first
|
40
|
+
|
41
|
+
content = [File.read(file)].pack('m')
|
42
|
+
|
43
|
+
part.to_postmark.must_equal('Name' => 'thebrocode.jpg', 'Content' => content, 'ContentType' => 'image/jpeg')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
require 'action_mailer'
|
3
|
+
require 'rails'
|
4
|
+
require 'simple_postmark/railtie'
|
5
|
+
|
6
|
+
ActionMailer::Base.delivery_method = :simple_postmark
|
7
|
+
|
8
|
+
class NotificationMailer < ActionMailer::Base
|
9
|
+
default from: 'barney@himym.tld', to: 'ted@himym.tld'
|
10
|
+
|
11
|
+
def im_your_bro
|
12
|
+
mail(subject: "I'm your bro!")
|
13
|
+
end
|
14
|
+
|
15
|
+
def im_your_bro_tagged
|
16
|
+
mail(subject: "I'm your bro!", tag: 'simple-postmark')
|
17
|
+
end
|
18
|
+
|
19
|
+
def im_your_bro_multipart
|
20
|
+
mail(subject: "I'm your bro!") do |as|
|
21
|
+
as.html { render(text: "<p>Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome.<br /><br />I'm your bro-I'm Broda!</p>" )}
|
22
|
+
as.text { render(text: "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!" )}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def the_bro_code
|
27
|
+
attachments['thebrocode.jpg'] = File.read(File.join(File.dirname(__FILE__), 'thebrocode.jpg'))
|
28
|
+
mail(subject: 'The Brocode!')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def merge_body(hash = {})
|
33
|
+
Hash[*body.merge(hash).sort.flatten(1)].to_json
|
34
|
+
end
|
35
|
+
|
36
|
+
describe ActionMailer::Base do
|
37
|
+
let(:url) { 'http://api.postmarkapp.com/email' }
|
38
|
+
let(:api_key) { '********-****-****-****-************' }
|
39
|
+
|
40
|
+
let(:headers) do
|
41
|
+
{
|
42
|
+
'Accept' => 'application/json',
|
43
|
+
'ContentType' => 'application/json',
|
44
|
+
'X-Postmark-Server-Token' => api_key
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
let(:body) do
|
49
|
+
{
|
50
|
+
'From' => 'barney@himym.tld',
|
51
|
+
'Subject' => "I'm your bro!",
|
52
|
+
'To' => 'ted@himym.tld'
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
before do
|
57
|
+
stub_request(:post, url)
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
it 'should respond to +simple_postmark_settings+' do
|
62
|
+
ActionMailer::Base.must_respond_to(:simple_postmark_settings)
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
it 'should allow setting an api key' do
|
67
|
+
ActionMailer::Base.simple_postmark_settings = { api_key: api_key }
|
68
|
+
|
69
|
+
ActionMailer::Base.simple_postmark_settings[:api_key].must_equal(api_key)
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
describe 'sending mails' do
|
74
|
+
before do
|
75
|
+
ActionMailer::Base.simple_postmark_settings = { api_key: api_key }
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
it 'should work' do
|
80
|
+
NotificationMailer.im_your_bro.deliver
|
81
|
+
|
82
|
+
assert_requested(:post, url, headers: headers, body: merge_body)
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
it 'should allow tags' do
|
87
|
+
NotificationMailer.im_your_bro_tagged.deliver
|
88
|
+
|
89
|
+
assert_requested(:post, url, headers: headers, body: merge_body('Tag' => 'simple-postmark'))
|
90
|
+
end
|
91
|
+
|
92
|
+
|
93
|
+
it 'should work with attachments' do
|
94
|
+
attachment = {
|
95
|
+
'Content' => [File.read(File.join(File.dirname(__FILE__), 'thebrocode.jpg'))].pack('m'),
|
96
|
+
'ContentType' => 'image/jpeg',
|
97
|
+
'Name' => 'thebrocode.jpg'
|
98
|
+
}
|
99
|
+
|
100
|
+
NotificationMailer.the_bro_code.deliver
|
101
|
+
|
102
|
+
assert_requested(:post, url, headers: headers, body: merge_body('Subject' => 'The Brocode!', 'Attachments' => [attachment]))
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
it 'should work with multipart messages' do
|
107
|
+
bodies = {
|
108
|
+
'HtmlBody' => "<p>Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome.<br /><br />I'm your bro-I'm Broda!</p>",
|
109
|
+
'TextBody' => "Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro-I'm Broda!"
|
110
|
+
}
|
111
|
+
|
112
|
+
NotificationMailer.im_your_bro_multipart.deliver
|
113
|
+
|
114
|
+
assert_requested(:post, url, headers: headers, body: merge_body(bodies))
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/spec/thebrocode.jpg
ADDED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_postmark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &70349875971380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70349875971380
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: httparty
|
27
|
-
requirement: &
|
27
|
+
requirement: &70349875970980 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70349875970980
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: json
|
38
|
-
requirement: &
|
38
|
+
requirement: &70349875970520 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70349875970520
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: mail
|
49
|
-
requirement: &
|
49
|
+
requirement: &70349875970100 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70349875970100
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest
|
60
|
-
requirement: &
|
60
|
+
requirement: &70349876018780 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70349876018780
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: purdytest
|
71
|
-
requirement: &
|
71
|
+
requirement: &70349876018360 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70349876018360
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rails
|
82
|
-
requirement: &
|
82
|
+
requirement: &70349876017860 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '3.0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70349876017860
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: webmock
|
93
|
-
requirement: &
|
93
|
+
requirement: &70349876017440 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70349876017440
|
102
102
|
description: SimplePostmark makes it easy to send mails via Postmark™ using Rails
|
103
103
|
3's ActionMailer.
|
104
104
|
email: uher.mario@gmail.com
|
@@ -106,13 +106,27 @@ executables: []
|
|
106
106
|
extensions: []
|
107
107
|
extra_rdoc_files: []
|
108
108
|
files:
|
109
|
+
- .travis.yml
|
110
|
+
- Gemfile
|
111
|
+
- README.md
|
112
|
+
- Rakefile
|
113
|
+
- gemfiles/Rails_3_0.gemfile
|
114
|
+
- gemfiles/Rails_3_1.gemfile
|
115
|
+
- gemfiles/Rails_3_2.gemfile
|
116
|
+
- gemfiles/Rails_master.gemfile
|
117
|
+
- lib/simple_postmark.rb
|
109
118
|
- lib/simple_postmark/delivery_method.rb
|
110
119
|
- lib/simple_postmark/mail_ext/message.rb
|
111
120
|
- lib/simple_postmark/mail_ext/part.rb
|
112
121
|
- lib/simple_postmark/railtie.rb
|
113
|
-
-
|
114
|
-
-
|
115
|
-
|
122
|
+
- simple_postmark.gemspec
|
123
|
+
- spec/delivery_method_spec.rb
|
124
|
+
- spec/mail_ext/message_spec.rb
|
125
|
+
- spec/mail_ext/part_spec.rb
|
126
|
+
- spec/railtie_spec.rb
|
127
|
+
- spec/spec_helper.rb
|
128
|
+
- spec/thebrocode.jpg
|
129
|
+
homepage: http://haihappen.github.com/simple_postmark
|
116
130
|
licenses: []
|
117
131
|
post_install_message:
|
118
132
|
rdoc_options: []
|
@@ -137,4 +151,3 @@ signing_key:
|
|
137
151
|
specification_version: 3
|
138
152
|
summary: A simple way to use Postmark™ with your Rails app.
|
139
153
|
test_files: []
|
140
|
-
has_rdoc:
|