mandrill_mailer 0.4.13 → 0.5.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 +8 -8
- data/CHANGELOG.md +3 -0
- data/README.md +42 -30
- data/lib/mandrill_mailer/core_mailer.rb +12 -20
- data/lib/mandrill_mailer/message_mailer.rb +12 -12
- data/lib/mandrill_mailer/template_mailer.rb +8 -8
- data/lib/mandrill_mailer/version.rb +1 -1
- data/spec/core_mailer_spec.rb +67 -0
- data/spec/template_mailer_spec.rb +7 -5
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Y2VmMGFhYjViZGU1MGI5YTk4NzY3OWNkMzk5N2ZhYzE1ZGY1NWU4OQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZWUwMGI0MjU1ZmExNWY2YmI0NzcyZDM0Yjc1OTY4YmUwYjM4MGZkYw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NDhjMzc2Yzk1MGJhZGYzZmE2MTIwNGVlMjBjNDJkYmIzODViN2IzYTZjZjRh
|
10
|
+
MGJjMWVmMWMwMjI3Mzc5YjQwNDBjODExNTVhZTkwMDdiZGIwOTE4Zjc0YTc0
|
11
|
+
ZDc4ODAwMmVjNzFjZWI3MmI3NDhiMDc5YWYyNzg0ZDJiMTlhMTQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTI4MTJlNWM1MzdmMTk1NjMwMjM2NzQ1YmRlNmVmMjUxODllYWU2YzIxMTU0
|
14
|
+
NGI0MWE4NGM2NGU0OWY1YmFlNjk5YjVmNjI0MTljNjM4OTc4ZTE0ZDZjZjRl
|
15
|
+
ZDgzY2JhODBkOTI3YjcxZWNjYWE3MjdhYTEzNTU4NTBlMzk5YWY=
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# Mandrill Mailer
|
2
|
-
[](rubygems.org/gems/mandrill_mailer)
|
3
|
-
[](https://codeclimate.com/github/renz45/mandrill_mailer)
|
1
|
+
# Mandrill Mailer
|
2
|
+
[](rubygems.org/gems/mandrill_mailer)
|
3
|
+
[](https://codeclimate.com/github/renz45/mandrill_mailer)
|
4
4
|
[](https://gemnasium.com/renz45/mandrill_mailer)
|
5
5
|
|
6
6
|
Inherit the MandrillMailer class in your existing Rails mailers to send transactional emails through Mandrill using their template-based emails.
|
@@ -32,7 +32,7 @@ ActionMailer::Base.smtp_settings = {
|
|
32
32
|
:address => "smtp.mandrillapp.com",
|
33
33
|
:port => 587,
|
34
34
|
:user_name => ENV['MANDRILL_USERNAME'],
|
35
|
-
:password => ENV['
|
35
|
+
:password => ENV['MANDRILL_API_KEY'],
|
36
36
|
:domain => 'heroku.com'
|
37
37
|
}
|
38
38
|
ActionMailer::Base.delivery_method = :smtp
|
@@ -47,7 +47,7 @@ You don't need to add the ActionMailer stuff unless you're still using ActionMai
|
|
47
47
|
This uses the Mandrill SMTP servers. If you're using template-based emails
|
48
48
|
through the Mandrill API you only need the `MandrillMailer.configure` portion.
|
49
49
|
|
50
|
-
Do not forget to setup the environment (`ENV`) variables on your server instead
|
50
|
+
Do not forget to setup the environment (`ENV`) variables on your server instead
|
51
51
|
of hardcoding your Mandrill username and password in the `mail.rb` initializer.
|
52
52
|
|
53
53
|
You will also need to set `default_url_options` for the mailer, similar to ActionMailer
|
@@ -68,25 +68,30 @@ class InvitationMailer < MandrillMailer::TemplateMailer
|
|
68
68
|
# in this example `invitation.invitees` is an Array
|
69
69
|
invitees = invitation.invitees.map { |invitee| { email: invitee.email, name: invitee.name } }
|
70
70
|
|
71
|
-
mandrill_mail
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
71
|
+
mandrill_mail(
|
72
|
+
template: 'group-invite',
|
73
|
+
subject: I18n.t('invitation_mailer.invite.subject'),
|
74
|
+
to: invitees,
|
75
|
+
# to: invitation.email,
|
76
|
+
# to: { email: invitation.email, name: 'Honored Guest' },
|
77
|
+
vars: {
|
78
|
+
'OWNER_NAME' => invitation.owner_name,
|
79
|
+
'PROJECT_NAME' => invitation.project_name
|
80
|
+
},
|
81
|
+
important: true,
|
82
|
+
inline_css: true,
|
83
|
+
recipient_vars: invitation.invitees.map do |invitee|
|
84
|
+
{ invitee.email =>
|
85
|
+
{
|
86
|
+
'INVITEE_NAME' => invitee.name,
|
87
|
+
'INVITATION_URL' => new_invitation_url(
|
88
|
+
invitee.email,
|
89
|
+
secret: invitee.secret_code
|
90
|
+
)
|
91
|
+
}
|
92
|
+
}
|
93
|
+
end
|
94
|
+
)
|
90
95
|
end
|
91
96
|
end
|
92
97
|
```
|
@@ -141,14 +146,14 @@ end
|
|
141
146
|
* `:inline_css` - whether or not to automatically inline all CSS styles provided in the message HTML - only for HTML documents less than 256KB in size.
|
142
147
|
|
143
148
|
* `:attachments` - An array of file objects with the following keys:
|
144
|
-
|
145
|
-
|
146
|
-
|
149
|
+
* `content`: The file contents, must be a base64 encoded string
|
150
|
+
* `name`: The name of the file
|
151
|
+
* `type`: This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc etc
|
147
152
|
|
148
153
|
* `:images` - An array of embedded images to add to the message:
|
149
|
-
|
150
|
-
|
151
|
-
|
154
|
+
* `content`: The file contents, must be a base64 encoded string
|
155
|
+
* `name`: The name of the file
|
156
|
+
* `type`: This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc etc etc
|
152
157
|
|
153
158
|
* `:async` - Whether or not this message should be sent asynchronously
|
154
159
|
|
@@ -183,6 +188,13 @@ class InvitationMailer < MandrillMailer::MessageMailer
|
|
183
188
|
},
|
184
189
|
important: true,
|
185
190
|
inline_css: true,
|
191
|
+
attachments: [
|
192
|
+
{
|
193
|
+
content: Base64.encode64(File.read(File.expand_path('assets/offer.pdf'))),
|
194
|
+
name: 'offer.pdf',
|
195
|
+
type: 'application/pdf'
|
196
|
+
}
|
197
|
+
],
|
186
198
|
recipient_vars: invitation.invitees.map do |invitee| # invitation.invitees is an Array
|
187
199
|
{ invitee.email =>
|
188
200
|
{
|
@@ -48,7 +48,7 @@
|
|
48
48
|
# 'example@domain.com`
|
49
49
|
# 2)
|
50
50
|
# { email: 'someone@email.com', name: 'Bob Bertly' }
|
51
|
-
# 3)
|
51
|
+
# 3)
|
52
52
|
# [{ email: 'someone@email.com', name: 'Bob Bertly' },
|
53
53
|
# { email: 'other@email.com', name: 'Claire Nayo' }]
|
54
54
|
#
|
@@ -107,7 +107,7 @@ module MandrillMailer
|
|
107
107
|
class InvalidEmail < StandardError; end
|
108
108
|
class InvalidMailerMethod < StandardError; end
|
109
109
|
class InvalidInterceptorParams < StandardError; end
|
110
|
-
|
110
|
+
|
111
111
|
# Public: Other information on the message to send
|
112
112
|
attr_accessor :message
|
113
113
|
|
@@ -151,7 +151,7 @@ module MandrillMailer
|
|
151
151
|
# Public: setup a way to test mailer methods
|
152
152
|
#
|
153
153
|
# mailer_method - Name of the mailer method the test setup is for
|
154
|
-
#
|
154
|
+
#
|
155
155
|
# block - Block of code to execute to perform the test. The mailer
|
156
156
|
# and options are passed to the block. The options have to
|
157
157
|
# contain at least the :email to send the test to.
|
@@ -176,7 +176,7 @@ module MandrillMailer
|
|
176
176
|
# Public: Executes a test email
|
177
177
|
#
|
178
178
|
# mailer_method - Method to execute
|
179
|
-
#
|
179
|
+
#
|
180
180
|
# options - The Hash options used to refine the selection (default: {}):
|
181
181
|
# :email - The email to send the test to.
|
182
182
|
#
|
@@ -197,17 +197,17 @@ module MandrillMailer
|
|
197
197
|
end
|
198
198
|
|
199
199
|
end
|
200
|
-
|
200
|
+
|
201
201
|
# Public: Triggers the stored Mandrill params to be sent to the Mandrill api
|
202
202
|
def deliver
|
203
203
|
mesg = "#{self.class.name}#deliver() is not implemented."
|
204
204
|
raise NotImplementedError.new(mesg)
|
205
205
|
end
|
206
|
-
|
206
|
+
|
207
207
|
# Public: Build the hash needed to send to the mandrill api
|
208
208
|
#
|
209
209
|
# args - The Hash options used to refine the selection:
|
210
|
-
|
210
|
+
|
211
211
|
# Examples
|
212
212
|
#
|
213
213
|
# mandrill_mail template: 'Group Invite',
|
@@ -229,7 +229,7 @@ module MandrillMailer
|
|
229
229
|
mesg = "#{self.class.name}#data() is not implemented."
|
230
230
|
raise NotImplementedError.new(mesg)
|
231
231
|
end
|
232
|
-
|
232
|
+
|
233
233
|
def check_required_options
|
234
234
|
mesg = "#{self.class.name}#check_required_options() is not implemented."
|
235
235
|
raise NotImplementedError.new(mesg)
|
@@ -257,22 +257,16 @@ module MandrillMailer
|
|
257
257
|
return unless args
|
258
258
|
args.map do |attachment|
|
259
259
|
attachment.symbolize_keys!
|
260
|
-
type = attachment[:mimetype]
|
261
|
-
name = attachment[:filename]
|
262
|
-
file = attachment[:file]
|
260
|
+
type = attachment[:mimetype] || attachment[:type]
|
261
|
+
name = attachment[:filename] || attachment[:name]
|
262
|
+
file = attachment[:file] || attachment[:content]
|
263
263
|
{"type" => type, "name" => name, "content" => Base64.encode64(file)}
|
264
264
|
end
|
265
265
|
end
|
266
266
|
|
267
267
|
def mandrill_images_args(args)
|
268
268
|
return unless args
|
269
|
-
args
|
270
|
-
attachment.symbolize_keys!
|
271
|
-
type = attachment[:mimetype]
|
272
|
-
name = attachment[:filename]
|
273
|
-
file = attachment[:file]
|
274
|
-
{"type" => type, "name" => name, "content" => Base64.encode64(file)}
|
275
|
-
end
|
269
|
+
mandrill_attachment_args(args)
|
276
270
|
end
|
277
271
|
|
278
272
|
# Makes this class act as a singleton without it actually being a singleton
|
@@ -360,7 +354,5 @@ module MandrillMailer
|
|
360
354
|
def api_key
|
361
355
|
MandrillMailer.config.api_key
|
362
356
|
end
|
363
|
-
|
364
|
-
|
365
357
|
end
|
366
358
|
end
|
@@ -26,7 +26,7 @@
|
|
26
26
|
# }
|
27
27
|
# }
|
28
28
|
# end,
|
29
|
-
# attachments: [{
|
29
|
+
# attachments: [{content: Base64.encode64(File.read(File.expand_path('assets/some_image.png'))), name: 'MyImage.png', type: 'image/png'}],
|
30
30
|
# important: true,
|
31
31
|
# inline_css: true
|
32
32
|
# end
|
@@ -48,7 +48,7 @@
|
|
48
48
|
# 'example@domain.com`
|
49
49
|
# 2)
|
50
50
|
# { email: 'someone@email.com', name: 'Bob Bertly' }
|
51
|
-
# 3)
|
51
|
+
# 3)
|
52
52
|
# [{ email: 'someone@email.com', name: 'Bob Bertly' },
|
53
53
|
# { email: 'other@email.com', name: 'Claire Nayo' }]
|
54
54
|
#
|
@@ -62,14 +62,14 @@
|
|
62
62
|
# ex. [{'someone@email.com' => {'INVITEE_NAME' => 'Roger'}}, {'another@email.com' => {'INVITEE_NAME' => 'Tommy'}}]
|
63
63
|
|
64
64
|
# :attachments - An array of file objects with the following keys:
|
65
|
-
#
|
66
|
-
#
|
67
|
-
#
|
65
|
+
# content: The file contents, must be a base64 encoded string
|
66
|
+
# name: The name of the file
|
67
|
+
# type: This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc
|
68
68
|
|
69
69
|
# :images - An array of embedded images to add to the message:
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
70
|
+
# content: The file contents, must be a base64 encoded string
|
71
|
+
# name: The name of the file
|
72
|
+
# type: This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc
|
73
73
|
|
74
74
|
# :headers - Extra headers to add to the message (currently only Reply-To and X-* headers are allowed) {"...": "..."}
|
75
75
|
|
@@ -109,7 +109,7 @@ module MandrillMailer
|
|
109
109
|
mandrill = Mandrill::API.new(api_key)
|
110
110
|
mandrill.messages.send(message, async, ip_pool, send_at)
|
111
111
|
end
|
112
|
-
|
112
|
+
|
113
113
|
# Public: Build the hash needed to send to the mandrill api
|
114
114
|
#
|
115
115
|
# args - The Hash options used to refine the selection:
|
@@ -151,8 +151,8 @@ module MandrillMailer
|
|
151
151
|
|
152
152
|
# Construct message hash
|
153
153
|
self.message = {
|
154
|
-
"text" => args[:text],
|
155
|
-
"html" => args[:html],
|
154
|
+
"text" => args[:text],
|
155
|
+
"html" => args[:html],
|
156
156
|
"view_content_link" => args[:view_content_link],
|
157
157
|
"subject" => args[:subject],
|
158
158
|
"from_email" => args[:from] || self.class.defaults[:from],
|
@@ -177,7 +177,7 @@ module MandrillMailer
|
|
177
177
|
"attachments" => mandrill_attachment_args(args[:attachments]),
|
178
178
|
"images" => mandrill_images_args(args[:images])
|
179
179
|
}
|
180
|
-
|
180
|
+
|
181
181
|
unless MandrillMailer.config.interceptor_params.nil?
|
182
182
|
unless MandrillMailer.config.interceptor_params.is_a?(Hash)
|
183
183
|
raise InvalidInterceptorParams.new "The interceptor_params config must be a Hash"
|
@@ -27,7 +27,7 @@
|
|
27
27
|
# }
|
28
28
|
# end,
|
29
29
|
# template_content: {},
|
30
|
-
# attachments: [{
|
30
|
+
# attachments: [{contents:Base64.encode64(File.read(File.expand_path('assets/some_image.png'))), name: 'MyImage.png', type: 'image/png'}],
|
31
31
|
# important: true,
|
32
32
|
# inline_css: true
|
33
33
|
# end
|
@@ -48,7 +48,7 @@
|
|
48
48
|
# 'example@domain.com`
|
49
49
|
# 2)
|
50
50
|
# { email: 'someone@email.com', name: 'Bob Bertly' }
|
51
|
-
# 3)
|
51
|
+
# 3)
|
52
52
|
# [{ email: 'someone@email.com', name: 'Bob Bertly' },
|
53
53
|
# { email: 'other@email.com', name: 'Claire Nayo' }]
|
54
54
|
#
|
@@ -67,14 +67,14 @@
|
|
67
67
|
# these fields by passing a Hash {'header' => 'my email content'}
|
68
68
|
|
69
69
|
# :attachments - An array of file objects with the following keys:
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
70
|
+
# content: The file contents, must be a base64 encoded string
|
71
|
+
# name: The name of the file
|
72
|
+
# type: This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc
|
73
73
|
|
74
74
|
# :images - An array of embedded images to add to the message:
|
75
|
-
#
|
76
|
-
#
|
77
|
-
#
|
75
|
+
# content: The file contents, must be a base64 encoded string
|
76
|
+
# name: The name of the file
|
77
|
+
# type: This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc
|
78
78
|
|
79
79
|
# :headers - Extra headers to add to the message (currently only Reply-To and X-* headers are allowed) {"...": "..."}
|
80
80
|
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require 'base64'
|
3
|
+
|
4
|
+
describe MandrillMailer::CoreMailer do
|
5
|
+
subject(:core_mailer) { described_class }
|
6
|
+
|
7
|
+
let(:file_args) do
|
8
|
+
{
|
9
|
+
mimetype: "some/type",
|
10
|
+
filename: 'test',
|
11
|
+
file: "testing some test test file"
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:api_args) do
|
16
|
+
{
|
17
|
+
type: "some/type",
|
18
|
+
name: 'test',
|
19
|
+
content: "testing some test test file"
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
describe 'protected#mandrill_attachment_args' do
|
25
|
+
context "with file syntax" do
|
26
|
+
it "formats the correct attachment data" do
|
27
|
+
expect(core_mailer.new.send(:mandrill_attachment_args, [file_args])).to eq([{
|
28
|
+
'type' => "some/type",
|
29
|
+
'name' => 'test',
|
30
|
+
'content' => Base64.encode64("testing some test test file")
|
31
|
+
}])
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "with api syntax" do
|
36
|
+
it "formats the correct attachment data" do
|
37
|
+
expect(core_mailer.new.send(:mandrill_attachment_args, [api_args])).to eq([{
|
38
|
+
'type' => "some/type",
|
39
|
+
'name' => 'test',
|
40
|
+
'content' => Base64.encode64("testing some test test file")
|
41
|
+
}])
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe '#mandrill_images_args' do
|
47
|
+
context "with file syntax" do
|
48
|
+
it "formats the correct attachment data" do
|
49
|
+
expect(core_mailer.new.send(:mandrill_attachment_args, [file_args])).to eq([{
|
50
|
+
'type' => "some/type",
|
51
|
+
'name' => 'test',
|
52
|
+
'content' => Base64.encode64("testing some test test file")
|
53
|
+
}])
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "with api syntax" do
|
58
|
+
it "formats the correct attachment data" do
|
59
|
+
expect(core_mailer.new.send(:mandrill_attachment_args, [api_args])).to eq([{
|
60
|
+
'type' => "some/type",
|
61
|
+
'name' => 'test',
|
62
|
+
'content' => Base64.encode64("testing some test test file")
|
63
|
+
}])
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -58,8 +58,8 @@ describe MandrillMailer::TemplateMailer do
|
|
58
58
|
url_strip_qs: false
|
59
59
|
}
|
60
60
|
end
|
61
|
-
|
62
|
-
|
61
|
+
|
62
|
+
|
63
63
|
let(:message_args) do
|
64
64
|
{
|
65
65
|
text: "Example text content",
|
@@ -97,7 +97,7 @@ describe MandrillMailer::TemplateMailer do
|
|
97
97
|
MandrillMailer.config.default_url_options = { host: default_host }
|
98
98
|
#MandrillMailer.config.stub(:image_path).and_return(image_path)
|
99
99
|
allow(MandrillMailer.config).to receive(:image_path).and_return(image_path)
|
100
|
-
|
100
|
+
|
101
101
|
MandrillMailer::TemplateMailer.default from: from_email, from_name: from_name
|
102
102
|
end
|
103
103
|
|
@@ -215,7 +215,7 @@ describe MandrillMailer::TemplateMailer do
|
|
215
215
|
expect(subject.template_name).to eq 'Email Template'
|
216
216
|
end
|
217
217
|
|
218
|
-
|
218
|
+
|
219
219
|
it 'should set the template content' do
|
220
220
|
expect(subject.template_content).to eq [{'name' => template_content_name, 'content' => template_content_content}]
|
221
221
|
end
|
@@ -252,6 +252,7 @@ describe MandrillMailer::TemplateMailer do
|
|
252
252
|
"url_strip_qs" => args[:url_strip_qs],
|
253
253
|
"preserve_recipients" => false,
|
254
254
|
"bcc_address" => args[:bcc],
|
255
|
+
"merge_language" => args[:merge_language],
|
255
256
|
"global_merge_vars" => [{"name" => var_name, "content" => var_content}],
|
256
257
|
"merge_vars" => [{"rcpt" => to_email, "vars" => [{"name" => var_rcpt_name, "content" => var_rcpt_content}]}],
|
257
258
|
"tags" => args[:tags],
|
@@ -299,6 +300,7 @@ describe MandrillMailer::TemplateMailer do
|
|
299
300
|
"url_strip_qs" => args[:url_strip_qs],
|
300
301
|
"preserve_recipients" => false,
|
301
302
|
"bcc_address" => @intercepted_params[:bcc_address],
|
303
|
+
"merge_language" => args[:merge_language],
|
302
304
|
"global_merge_vars" => [{"name" => var_name, "content" => var_content}],
|
303
305
|
"merge_vars" => [{"rcpt" => to_email, "vars" => [{"name" => var_rcpt_name, "content" => var_rcpt_content}]}],
|
304
306
|
"tags" => @intercepted_params[:tags],
|
@@ -313,7 +315,7 @@ describe MandrillMailer::TemplateMailer do
|
|
313
315
|
end
|
314
316
|
end
|
315
317
|
|
316
|
-
|
318
|
+
|
317
319
|
describe 'url helpers in mailer' do
|
318
320
|
subject { mailer.send(:course_url) }
|
319
321
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mandrill_mailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Rensel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- lib/mandrill_mailer/template_mailer.rb
|
102
102
|
- lib/mandrill_mailer/version.rb
|
103
103
|
- mandrill_mailer.gemspec
|
104
|
+
- spec/core_mailer_spec.rb
|
104
105
|
- spec/fake_rails/fake_rails.rb
|
105
106
|
- spec/message_mailer_spec.rb
|
106
107
|
- spec/spec_helper.rb
|
@@ -131,6 +132,7 @@ signing_key:
|
|
131
132
|
specification_version: 4
|
132
133
|
summary: Transactional Mailer for Mandrill
|
133
134
|
test_files:
|
135
|
+
- spec/core_mailer_spec.rb
|
134
136
|
- spec/fake_rails/fake_rails.rb
|
135
137
|
- spec/message_mailer_spec.rb
|
136
138
|
- spec/spec_helper.rb
|