griddler 1.0.0.pre.alpha.1 → 1.0.0.pre.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/griddler.rb +1 -2
- data/lib/griddler/version.rb +1 -1
- metadata +1 -2
- data/lib/griddler/adapters/mailgun_adapter.rb +0 -65
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14d0542f8b3e4760904cd0cae896aa2f2b38bfef
|
4
|
+
data.tar.gz: ce6967089ef0171910af88f294a6a6aafba876fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4163d740d3bccefdb2339663331a3ffa8a3bb7e5caa7687188a21446a143a2670588b2c4b3654a35e99455f64a4c843d2ace43ebc60e0fb1ef9b6ad40ef1067
|
7
|
+
data.tar.gz: 88a91945c578a51cda0f769715533ab6fa66431d7f9e7ccc59dd4f195a19e7936a20c6873df444b35c81a37eca3866cf4b64065f5939dbfdabe726820adc8d46
|
data/README.md
CHANGED
@@ -166,9 +166,11 @@ adapter gem in addition to `griddler`.
|
|
166
166
|
| ------- | -------
|
167
167
|
| sendgrid | [griddler-sendgrid]
|
168
168
|
| mandrill | [griddler-mandrill]
|
169
|
+
| mailgun | [griddler-mailgun]
|
169
170
|
|
170
171
|
[griddler-sendgrid]: https://github.com/thoughtbot/griddler-sendgrid
|
171
172
|
[griddler-mandrill]: https://github.com/wingrunr21/griddler-mandrill
|
173
|
+
[griddler-mailgun]: https://github.com/bradpauly/griddler-mailgun
|
172
174
|
|
173
175
|
Writing an Adapter
|
174
176
|
------------------
|
data/lib/griddler.rb
CHANGED
@@ -9,11 +9,10 @@ require 'griddler/route_extensions'
|
|
9
9
|
require 'griddler/adapter_registry'
|
10
10
|
require 'griddler/adapters/cloudmailin_adapter'
|
11
11
|
require 'griddler/adapters/postmark_adapter'
|
12
|
-
require 'griddler/adapters/mailgun_adapter'
|
13
12
|
|
14
13
|
require 'griddler/sendgrid'
|
15
14
|
require 'griddler/mandrill'
|
15
|
+
require 'griddler/mailgun'
|
16
16
|
|
17
17
|
Griddler.adapter_registry.register(:cloudmailin, Griddler::Adapters::CloudmailinAdapter)
|
18
18
|
Griddler.adapter_registry.register(:postmark, Griddler::Adapters::PostmarkAdapter)
|
19
|
-
Griddler.adapter_registry.register(:mailgun, Griddler::Adapters::MailgunAdapter)
|
data/lib/griddler/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: griddler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.alpha.
|
4
|
+
version: 1.0.0.pre.alpha.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Caleb Thompson
|
@@ -100,7 +100,6 @@ files:
|
|
100
100
|
- lib/griddler.rb
|
101
101
|
- lib/griddler/adapter_registry.rb
|
102
102
|
- lib/griddler/adapters/cloudmailin_adapter.rb
|
103
|
-
- lib/griddler/adapters/mailgun_adapter.rb
|
104
103
|
- lib/griddler/adapters/postmark_adapter.rb
|
105
104
|
- lib/griddler/configuration.rb
|
106
105
|
- lib/griddler/email.rb
|
@@ -1,65 +0,0 @@
|
|
1
|
-
module Griddler
|
2
|
-
module Adapters
|
3
|
-
class MailgunAdapter
|
4
|
-
def initialize(params)
|
5
|
-
@params = params
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.normalize_params(params)
|
9
|
-
adapter = new(params)
|
10
|
-
adapter.normalize_params
|
11
|
-
end
|
12
|
-
|
13
|
-
def normalize_params
|
14
|
-
params.merge(
|
15
|
-
to: tos,
|
16
|
-
cc: ccs,
|
17
|
-
text: params['body-plain'],
|
18
|
-
html: params['body-html'],
|
19
|
-
headers: params['message-headers'],
|
20
|
-
attachments: attachment_files
|
21
|
-
)
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
attr_reader :params
|
27
|
-
|
28
|
-
def tos
|
29
|
-
to = param_or_header(:To)
|
30
|
-
to = params[:recipient] unless to
|
31
|
-
to.split(',').map(&:strip)
|
32
|
-
end
|
33
|
-
|
34
|
-
def ccs
|
35
|
-
cc = param_or_header(:Cc)
|
36
|
-
cc.split(',').map(&:strip)
|
37
|
-
end
|
38
|
-
|
39
|
-
def extract_header(key)
|
40
|
-
return nil unless params['message-headers'].present?
|
41
|
-
|
42
|
-
headers = params['message-headers'].select do |h|
|
43
|
-
h.first.to_s == key.to_s
|
44
|
-
end
|
45
|
-
headers.flatten.last
|
46
|
-
end
|
47
|
-
|
48
|
-
def param_or_header(key)
|
49
|
-
if params[key].present?
|
50
|
-
params[key]
|
51
|
-
else
|
52
|
-
extract_header(key)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def attachment_files
|
57
|
-
attachment_count = params['attachment-count'].to_i
|
58
|
-
|
59
|
-
attachment_count.times.map do |index|
|
60
|
-
params.delete("attachment-#{index+1}")
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|