mandrill_mailer 0.4.1 → 0.4.2
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 +5 -13
- data/README.md +11 -0
- data/change_log.md +4 -0
- data/lib/mandrill_mailer/template_mailer.rb +8 -0
- data/lib/mandrill_mailer/version.rb +1 -1
- data/spec/template_mailer_spec.rb +70 -26
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
Y2Y0M2Y0ZjkzYTllNDg4NmUxOWU3YWVlYjIzNzEwYzA0MmZkZDU4MQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1bfa455214d0fad5180b76450327ac30b7ffcc74
|
4
|
+
data.tar.gz: aaa9f37d06d8c32a1d3bb0ba33490c7ce4e3b36d
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
Y2JmNGE3NjA4ODA4M2JmZjZiNDRjYmJkM2FkYTUzY2NhYjUzOTk2ODExNTlj
|
11
|
-
ZDJjYTUzN2JkMjEwMTAxNGZiMzJjNTFjNWM1NjVlMWI0ZjBkOTE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZTI4YjdmY2ZmNmU5MTYwYjJhNmJhZTRiMWVmMzE1YzhlNTc4MDc4ZDZjZTky
|
14
|
-
ODc5YjIzYzQ0N2Q5NzExZjk5MDRkOWE2YzMxODRlYjIwYWE1MTU3MjJkYzI3
|
15
|
-
OGY1ZTBmNTRlYzRlNGEyMGJkYmQ5OWIyM2NjYmIzOGQ1NTQ3YmE=
|
6
|
+
metadata.gz: 3f5580807bc7f7a0c13c6bcdc8749719e7b638e141253025b93b7fb3fc33dfe5735bf5f80f1bef647b5530f971647a80f133bb054d620e84b615b727eb9b76b1
|
7
|
+
data.tar.gz: 6dad0436a16f92014ac77929794d5e075a547be5ce19696f8a460e97af2589a34338a3b8c3c3f0e68c164ee2eeda95533e52eb54f42920a2db7a88d712e92a5d
|
data/README.md
CHANGED
@@ -191,3 +191,14 @@ class UpdateEmailJob < Struct.new(:user_id)
|
|
191
191
|
end
|
192
192
|
end
|
193
193
|
```
|
194
|
+
|
195
|
+
## Using an interceptor
|
196
|
+
You can set a mailer interceptor to override any params used when you deliver an e-mail.
|
197
|
+
|
198
|
+
Example:
|
199
|
+
|
200
|
+
```ruby
|
201
|
+
MandrillMailer.configure do |config|
|
202
|
+
config.interceptor_params = { to: "emailtothatwillbeusedinall@emailssent.com" }
|
203
|
+
end
|
204
|
+
```
|
data/change_log.md
CHANGED
@@ -91,6 +91,7 @@ module MandrillMailer
|
|
91
91
|
|
92
92
|
class InvalidEmail < StandardError; end
|
93
93
|
class InvalidMailerMethod < StandardError; end
|
94
|
+
class InvalidInterceptorParams < StandardError; end
|
94
95
|
|
95
96
|
# Public: Defaults for the mailer. Currently the only option is from:
|
96
97
|
#
|
@@ -267,6 +268,13 @@ module MandrillMailer
|
|
267
268
|
"attachments" => mandrill_attachment_args(args[:attachments])
|
268
269
|
}
|
269
270
|
|
271
|
+
unless MandrillMailer.config.interceptor_params.nil?
|
272
|
+
unless MandrillMailer.config.interceptor_params.is_a?(Hash)
|
273
|
+
raise InvalidInterceptorParams.new "The interceptor_params config must be a Hash"
|
274
|
+
end
|
275
|
+
self.message.merge!(MandrillMailer.config.interceptor_params.stringify_keys)
|
276
|
+
end
|
277
|
+
|
270
278
|
# return self so we can chain deliver after the method call, like a normal mailer.
|
271
279
|
return self
|
272
280
|
end
|
@@ -178,32 +178,6 @@ describe MandrillMailer::TemplateMailer do
|
|
178
178
|
subject.template_content.should eq [{'name' => template_content_name, 'content' => template_content_content}]
|
179
179
|
end
|
180
180
|
|
181
|
-
it 'should produce the correct message' do
|
182
|
-
subject.message.should eq ({
|
183
|
-
"subject" => args[:subject],
|
184
|
-
"from_email" => from_email,
|
185
|
-
"from_name" => from_name,
|
186
|
-
"to" => [{'email' => to_email, 'name' => to_name}],
|
187
|
-
"headers" => args[:headers],
|
188
|
-
"important" => args[:important],
|
189
|
-
"inline_css" => args[:inline_css],
|
190
|
-
"track_opens" => args[:track_opens],
|
191
|
-
"track_clicks" => args[:track_clicks],
|
192
|
-
"auto_text" => true,
|
193
|
-
"url_strip_qs" => args[:url_strip_qs],
|
194
|
-
"preserve_recipients" => false,
|
195
|
-
"bcc_address" => args[:bcc],
|
196
|
-
"global_merge_vars" => [{"name" => var_name, "content" => var_content}],
|
197
|
-
"merge_vars" => [{"rcpt" => to_email, "vars" => [{"name" => var_rcpt_name, "content" => var_rcpt_content}]}],
|
198
|
-
"tags" => args[:tags],
|
199
|
-
"metadata" => args[:metadata],
|
200
|
-
"subaccount" => args[:subaccount],
|
201
|
-
"google_analytics_domains" => args[:google_analytics_domains],
|
202
|
-
"google_analytics_campaign" => args[:google_analytics_campaign],
|
203
|
-
"attachments" => [{'type' => attachment_mimetype, 'name' => attachment_filename, 'content' => Base64.encode64(attachment_file)}]
|
204
|
-
})
|
205
|
-
end
|
206
|
-
|
207
181
|
it 'should retain data method' do
|
208
182
|
subject.data.should eq({
|
209
183
|
"key" => MandrillMailer.config.api_key,
|
@@ -219,6 +193,76 @@ describe MandrillMailer::TemplateMailer do
|
|
219
193
|
it 'should set send_at option' do
|
220
194
|
subject.send_at.should eq('2020-01-01 08:00:00')
|
221
195
|
end
|
196
|
+
|
197
|
+
context "without interceptor" do
|
198
|
+
it 'should produce the correct message' do
|
199
|
+
subject.message.should eq ({
|
200
|
+
"subject" => args[:subject],
|
201
|
+
"from_email" => from_email,
|
202
|
+
"from_name" => from_name,
|
203
|
+
"to" => [{'email' => to_email, 'name' => to_name}],
|
204
|
+
"headers" => args[:headers],
|
205
|
+
"important" => args[:important],
|
206
|
+
"inline_css" => args[:inline_css],
|
207
|
+
"track_opens" => args[:track_opens],
|
208
|
+
"track_clicks" => args[:track_clicks],
|
209
|
+
"auto_text" => true,
|
210
|
+
"url_strip_qs" => args[:url_strip_qs],
|
211
|
+
"preserve_recipients" => false,
|
212
|
+
"bcc_address" => args[:bcc],
|
213
|
+
"global_merge_vars" => [{"name" => var_name, "content" => var_content}],
|
214
|
+
"merge_vars" => [{"rcpt" => to_email, "vars" => [{"name" => var_rcpt_name, "content" => var_rcpt_content}]}],
|
215
|
+
"tags" => args[:tags],
|
216
|
+
"metadata" => args[:metadata],
|
217
|
+
"subaccount" => args[:subaccount],
|
218
|
+
"google_analytics_domains" => args[:google_analytics_domains],
|
219
|
+
"google_analytics_campaign" => args[:google_analytics_campaign],
|
220
|
+
"attachments" => [{'type' => attachment_mimetype, 'name' => attachment_filename, 'content' => Base64.encode64(attachment_file)}]
|
221
|
+
})
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
context "with interceptor" do
|
226
|
+
before(:each) do
|
227
|
+
@intercepted_params = {
|
228
|
+
to: { email: 'interceptedto@test.com', name: 'Mr. Interceptor' },
|
229
|
+
tags: ['intercepted-tag'],
|
230
|
+
bcc_address: 'interceptedbbc@email.com'
|
231
|
+
}
|
232
|
+
MandrillMailer.config.interceptor_params = @intercepted_params
|
233
|
+
end
|
234
|
+
|
235
|
+
it "should raise an error if interceptor params is not a Hash" do
|
236
|
+
MandrillMailer.config.interceptor_params = "error"
|
237
|
+
expect { subject }.to raise_error(MandrillMailer::TemplateMailer::InvalidInterceptorParams, "The interceptor_params config must be a Hash")
|
238
|
+
end
|
239
|
+
|
240
|
+
it 'should produce the correct message' do
|
241
|
+
subject.message.should eq ({
|
242
|
+
"subject" => args[:subject],
|
243
|
+
"from_email" => from_email,
|
244
|
+
"from_name" => from_name,
|
245
|
+
"to" => @intercepted_params[:to],
|
246
|
+
"headers" => args[:headers],
|
247
|
+
"important" => args[:important],
|
248
|
+
"inline_css" => args[:inline_css],
|
249
|
+
"track_opens" => args[:track_opens],
|
250
|
+
"track_clicks" => args[:track_clicks],
|
251
|
+
"auto_text" => true,
|
252
|
+
"url_strip_qs" => args[:url_strip_qs],
|
253
|
+
"preserve_recipients" => false,
|
254
|
+
"bcc_address" => @intercepted_params[:bcc_address],
|
255
|
+
"global_merge_vars" => [{"name" => var_name, "content" => var_content}],
|
256
|
+
"merge_vars" => [{"rcpt" => to_email, "vars" => [{"name" => var_rcpt_name, "content" => var_rcpt_content}]}],
|
257
|
+
"tags" => @intercepted_params[:tags],
|
258
|
+
"metadata" => args[:metadata],
|
259
|
+
"subaccount" => args[:subaccount],
|
260
|
+
"google_analytics_domains" => args[:google_analytics_domains],
|
261
|
+
"google_analytics_campaign" => args[:google_analytics_campaign],
|
262
|
+
"attachments" => [{'type' => attachment_mimetype, 'name' => attachment_filename, 'content' => Base64.encode64(attachment_file)}]
|
263
|
+
})
|
264
|
+
end
|
265
|
+
end
|
222
266
|
end
|
223
267
|
|
224
268
|
describe 'url helpers in mailer' do
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mandrill_mailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Rensel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: actionpack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -56,28 +56,28 @@ dependencies:
|
|
56
56
|
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
description: Transactional Mailer for Mandrill
|
@@ -112,12 +112,12 @@ require_paths:
|
|
112
112
|
- lib
|
113
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
|
-
- -
|
120
|
+
- - '>='
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
requirements: []
|