griddler-mailgun 1.0.1 → 1.0.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 +4 -4
- data/.ruby-version +1 -1
- data/Gemfile +1 -1
- data/lib/griddler/mailgun/adapter.rb +18 -4
- data/lib/griddler/mailgun/version.rb +1 -1
- data/spec/griddler/mailgun/adapter_spec.rb +25 -5
- data/spec/spec_helper.rb +0 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2377ee3b434c8ed1763841a6158052ef0d5cdfcd
|
4
|
+
data.tar.gz: 3138c2e3d6962b70aa89c2df0e262ef74eea0bb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 082e170f993d4f7751361d33f5bb6ff211612ddb6d957675fdda01f8c922d48b88ff3833fa9517de0ff7d90eede0dc53451e9dbf0371ad81237e845a10122fde
|
7
|
+
data.tar.gz: 0a2a0956210186cb7d228f8b6fec99d2d83f37a0a1439d418a90fca09b639ef3f07a444fe8138c47cb286bfa82ba61276373417a4716a90c1a89baa6276f083d
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.2
|
data/Gemfile
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module Griddler
|
2
2
|
module Mailgun
|
3
3
|
class Adapter
|
4
|
+
attr_reader :params
|
5
|
+
|
4
6
|
def initialize(params)
|
5
7
|
@params = params
|
6
8
|
end
|
@@ -14,17 +16,17 @@ module Griddler
|
|
14
16
|
{
|
15
17
|
to: to_recipients,
|
16
18
|
cc: cc_recipients,
|
19
|
+
bcc: Array.wrap(param_or_header(:Bcc)),
|
17
20
|
from: determine_sender,
|
18
21
|
subject: params[:subject],
|
19
22
|
text: params['body-plain'],
|
20
23
|
html: params['body-html'],
|
21
|
-
attachments: attachment_files
|
24
|
+
attachments: attachment_files,
|
25
|
+
headers: serialized_headers
|
22
26
|
}
|
23
27
|
end
|
24
28
|
|
25
|
-
|
26
|
-
|
27
|
-
attr_reader :params
|
29
|
+
private
|
28
30
|
|
29
31
|
def determine_sender
|
30
32
|
sender = param_or_header(:From)
|
@@ -55,6 +57,18 @@ module Griddler
|
|
55
57
|
ActiveSupport::HashWithIndifferentAccess.new(extracted_headers)
|
56
58
|
end
|
57
59
|
|
60
|
+
def serialized_headers
|
61
|
+
|
62
|
+
# Griddler expects unparsed headers to pass to ActionMailer, which will manually
|
63
|
+
# unfold, split on line-endings, and parse into individual fields.
|
64
|
+
#
|
65
|
+
# Mailgun already provides fully-parsed headers in JSON -- so we're reconstructing
|
66
|
+
# fake headers here for now, until we can find a better way to pass the parsed
|
67
|
+
# headers directly to Griddler
|
68
|
+
|
69
|
+
headers.to_a.collect { |header| "#{header[0]}: #{header[1]}" }.join("\n")
|
70
|
+
end
|
71
|
+
|
58
72
|
def param_or_header(key)
|
59
73
|
if params[key].present?
|
60
74
|
params[key]
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Griddler::Mailgun::Adapter do
|
4
4
|
it 'registers itself with griddler' do
|
5
|
-
Griddler.adapter_registry[:mailgun].
|
5
|
+
expect(Griddler.adapter_registry[:mailgun]).to eq Griddler::Mailgun::Adapter
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
@@ -27,12 +27,12 @@ describe Griddler::Mailgun::Adapter, '.normalize_params' do
|
|
27
27
|
)
|
28
28
|
|
29
29
|
normalized_params = Griddler::Mailgun::Adapter.normalize_params(params)
|
30
|
-
normalized_params[:attachments].
|
30
|
+
expect(normalized_params[:attachments]).to eq [upload_1, upload_2]
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'has no attachments' do
|
34
34
|
normalized_params = Griddler::Mailgun::Adapter.normalize_params(default_params)
|
35
|
-
normalized_params[:attachments].
|
35
|
+
expect(normalized_params[:attachments]).to be_empty
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'gets sender from headers' do
|
@@ -69,6 +69,26 @@ describe Griddler::Mailgun::Adapter, '.normalize_params' do
|
|
69
69
|
expect(normalized_params[:to]).to eq ['johndoe@example.com']
|
70
70
|
end
|
71
71
|
|
72
|
+
it 'handles message-headers' do
|
73
|
+
params = default_params.merge(
|
74
|
+
'message-headers' => '[["NotCc", "emily@example.mailgun.org"], ["Reply-To", "mail2@example.mailgun.org"]]'
|
75
|
+
)
|
76
|
+
normalized_params = Griddler::Mailgun::Adapter.normalize_params(params)
|
77
|
+
email = Griddler::Email.new(normalized_params)
|
78
|
+
expect(email.headers["Reply-To"]).to eq "mail2@example.mailgun.org"
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'adds Bcc when it exists' do
|
82
|
+
params = default_params.merge('Bcc' => 'bcc@example.com')
|
83
|
+
normalized_params = Griddler::Mailgun::Adapter.normalize_params(params)
|
84
|
+
expect(normalized_params[:bcc]).to eq ['bcc@example.com']
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'bcc is empty array when it missing' do
|
88
|
+
normalized_params = Griddler::Mailgun::Adapter.normalize_params(default_params)
|
89
|
+
expect(normalized_params[:bcc]).to eq []
|
90
|
+
end
|
91
|
+
|
72
92
|
def upload_1
|
73
93
|
@upload_1 ||= ActionDispatch::Http::UploadedFile.new(
|
74
94
|
filename: 'photo1.jpg',
|
@@ -100,7 +120,7 @@ describe Griddler::Mailgun::Adapter, '.normalize_params' do
|
|
100
120
|
end
|
101
121
|
|
102
122
|
def short_params
|
103
|
-
|
123
|
+
ActiveSupport::HashWithIndifferentAccess.new(
|
104
124
|
{
|
105
125
|
"from" => "Jon Snow <jon@example.com>",
|
106
126
|
"recipient" => "johndoe@example.com",
|
@@ -110,7 +130,7 @@ describe Griddler::Mailgun::Adapter, '.normalize_params' do
|
|
110
130
|
end
|
111
131
|
|
112
132
|
def default_params
|
113
|
-
|
133
|
+
ActiveSupport::HashWithIndifferentAccess.new(
|
114
134
|
{
|
115
135
|
"Cc"=>"Brandon Stark <brandon@example.com>, Arya Stark <arya@example.com>",
|
116
136
|
"From"=>"Jon Snow <jon@example.com>",
|
data/spec/spec_helper.rb
CHANGED
@@ -5,7 +5,6 @@ require 'active_support/core_ext/string'
|
|
5
5
|
require 'active_support/core_ext/hash'
|
6
6
|
|
7
7
|
RSpec.configure do |config|
|
8
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
8
|
config.run_all_when_everything_filtered = true
|
10
9
|
config.order = 'random'
|
11
10
|
config.include Griddler::Testing
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: griddler-mailgun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brad Pauly
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -103,3 +103,4 @@ test_files:
|
|
103
103
|
- spec/fixtures/photo2.jpg
|
104
104
|
- spec/griddler/mailgun/adapter_spec.rb
|
105
105
|
- spec/spec_helper.rb
|
106
|
+
has_rdoc:
|