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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTdmZmQ0MTg2NGUwNmE3NGRiNjQxMTc5MDcyOTBiMDJjMTg5MTY0Yg==
4
+ Y2VmMGFhYjViZGU1MGI5YTk4NzY3OWNkMzk5N2ZhYzE1ZGY1NWU4OQ==
5
5
  data.tar.gz: !binary |-
6
- MmNkYjMyZmQxODAzZDhmYmI0Y2YzYWExMGFjYjRhZDYwNzQwNzc4Ng==
6
+ ZWUwMGI0MjU1ZmExNWY2YmI0NzcyZDM0Yjc1OTY4YmUwYjM4MGZkYw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTQ2OGYzMGUxN2Q2N2U2MjJkYWI4ZWYyNjVkNjJiZmU5M2QyNTFjNDUzZjVk
10
- YzUwYTgyMmZkMjIxNDkwMTVkM2RjOTllNzRkOGY4ZGI1YzlmYWI5MTgzZTRm
11
- NzYwOThlMzI1OGE2OGY5MzJiYTYxNmFlNjQxNjc3ZTVmYTcyMDM=
9
+ NDhjMzc2Yzk1MGJhZGYzZmE2MTIwNGVlMjBjNDJkYmIzODViN2IzYTZjZjRh
10
+ MGJjMWVmMWMwMjI3Mzc5YjQwNDBjODExNTVhZTkwMDdiZGIwOTE4Zjc0YTc0
11
+ ZDc4ODAwMmVjNzFjZWI3MmI3NDhiMDc5YWYyNzg0ZDJiMTlhMTQ=
12
12
  data.tar.gz: !binary |-
13
- YmQ5OWI4OWE4MWRmMTlkYWZlZWJhZjU2Y2U2YWRmYzYyYTY1OGVjZGUxOGM1
14
- NzA5M2M3YTMzZmYzYzc4NGNjZWMzNTlhYmQ1YWI3MzNlMDc5YzFkMGI4Njc4
15
- ZGRlOTA0OGZiZjk1YTk4ZTc2MGE3ZTZhMzk2YmNhZGQwMTljMGM=
13
+ YTI4MTJlNWM1MzdmMTk1NjMwMjM2NzQ1YmRlNmVmMjUxODllYWU2YzIxMTU0
14
+ NGI0MWE4NGM2NGU0OWY1YmFlNjk5YjVmNjI0MTljNjM4OTc4ZTE0ZDZjZjRl
15
+ ZDgzY2JhODBkOTI3YjcxZWNjYWE3MjdhYTEzNTU4NTBlMzk5YWY=
@@ -1,3 +1,6 @@
1
+ # 0.5.0
2
+ - [IMPROVEMENT] Made the file attachment and image apis compatible with mandrill api doc syntax
3
+
1
4
  # 0.4.9
2
5
  - [FEATURE] Added offline support for the MandrillMailer::Messenger class. Thanks @arthurtalkgoal
3
6
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Mandrill Mailer
2
- [![Gem Version](http://img.shields.io/gem/v/mandrill_mailer.svg)](rubygems.org/gems/mandrill_mailer)
3
- [![Code Climate](http://img.shields.io/codeclimate/github/renz45/mandrill_mailer.svg)](https://codeclimate.com/github/renz45/mandrill_mailer)
1
+ # Mandrill Mailer
2
+ [![Gem Version](http://img.shields.io/gem/v/mandrill_mailer.svg)](rubygems.org/gems/mandrill_mailer)
3
+ [![Code Climate](http://img.shields.io/codeclimate/github/renz45/mandrill_mailer.svg)](https://codeclimate.com/github/renz45/mandrill_mailer)
4
4
  [![Dependencies](http://img.shields.io/gemnasium/renz45/mandrill_mailer.svg)](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['MANDRILL_PASSWORD'],
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 template: 'group-invite',
72
- subject: I18n.t('invitation_mailer.invite.subject'),
73
- to: invitees,
74
- # to: invitation.email,
75
- # to: { email: invitation.email, name: 'Honored Guest' },
76
- vars: {
77
- 'OWNER_NAME' => invitation.owner_name,
78
- 'PROJECT_NAME' => invitation.project_name
79
- },
80
- important: true,
81
- inline_css: true,
82
- recipient_vars: invitation.invitees.map do |invitee| # invitation.invitees is an Array
83
- { invitee.email =>
84
- {
85
- 'INVITEE_NAME' => invitee.name,
86
- 'INVITATION_URL' => new_invitation_url(invitee.email, secret: invitee.secret_code)
87
- }
88
- }
89
- end
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
- * `file:` This is the actual file, it will be converted to byte data in the mailer
145
- * `filename:` The name of the file
146
- * `mimetype:` This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc
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
- * `file:` This is the actual file, it will be converted to byte data in the mailer
150
- * `filename:` The Content ID of the image - use `<img src="cid:THIS_VALUE">` to reference the image in your HTML content
151
- * `mimetype:` The MIME type of the image - must start with "image/"
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.map do |attachment|
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: [{file: File.read(File.expand_path('assets/some_image.png')), filename: 'My Image.png', mimetype: 'image/png'}],
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
- # file: This is the actual file, it will be converted to byte data in the mailer
66
- # filename: The name of the file
67
- # mimetype: This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc
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
- # file: This is the actual file, it will be converted to byte data in the mailer
71
- # filename: The Content ID of the image - use <img src="cid:THIS_VALUE"> to reference the image in your HTML content
72
- # mimetype: The MIME type of the image - must start with "image/"
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: [{file: File.read(File.expand_path('assets/some_image.png')), filename: 'My Image.png', mimetype: 'image/png'}],
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
- # file: This is the actual file, it will be converted to byte data in the mailer
71
- # filename: The name of the file
72
- # mimetype: This is the mimetype of the file. Ex. png = image/png, pdf = application/pdf, txt = text/plain etc
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
- # file: This is the actual file, it will be converted to byte data in the mailer
76
- # filename: The Content ID of the image - use <img src="cid:THIS_VALUE"> to reference the image in your HTML content
77
- # mimetype: The MIME type of the image - must start with "image/"
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
 
@@ -1,3 +1,3 @@
1
1
  module MandrillMailer
2
- VERSION = "0.4.13"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -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.13
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-12 00:00:00.000000000 Z
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