capistrano-mailgun 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/capistrano-mailgun/version.rb +1 -1
- data/lib/capistrano-mailgun.rb +21 -4
- metadata +3 -3
data/lib/capistrano-mailgun.rb
CHANGED
@@ -6,6 +6,9 @@ require 'erb'
|
|
6
6
|
module Capistrano
|
7
7
|
module Mailgun
|
8
8
|
|
9
|
+
# Load the base configuration into the given Capistrano::Instance.
|
10
|
+
# This is primarily used for testing and is executed automatically when requiring
|
11
|
+
# the library in a Capistrano recipe.
|
9
12
|
def self.load_into(config)
|
10
13
|
config.load do
|
11
14
|
|
@@ -31,14 +34,26 @@ module Capistrano
|
|
31
34
|
end # config.load
|
32
35
|
end
|
33
36
|
|
34
|
-
#
|
37
|
+
# Simple wrapper for sending an email with a given template
|
38
|
+
# Supports all options that the Mailgun API supports. In addition, it also accepts:
|
39
|
+
# +:text_template+ -- the path to the template for the text body. It will be processed and interpolated and set the +text+ field when doing the API call.
|
40
|
+
# +:html_template+ -- the path to the template for the html body. It will be processed and interpolated and set the +html+ field when doing the API call.
|
35
41
|
def send_email(options)
|
36
42
|
options = process_send_email_options(options)
|
37
43
|
|
38
44
|
RestClient.post build_mailgun_uri( mailgun_api_key, mailgun_domain ), options
|
39
45
|
end
|
40
46
|
|
41
|
-
#
|
47
|
+
# Sends the email via the Mailgun API using variables configured in Capistrano.
|
48
|
+
# It depends on the following Capistrano vars in addition to the default:
|
49
|
+
# +mailgun_recipients+
|
50
|
+
# +mailgun_from+
|
51
|
+
# +mailgun_subject+
|
52
|
+
# Requires one or both of the following:
|
53
|
+
# +mailgun_text_template+
|
54
|
+
# +mailgun_html_template+
|
55
|
+
#
|
56
|
+
# See README for explanations of the above variables.
|
42
57
|
def notify_of_deploy
|
43
58
|
options = {
|
44
59
|
:to => build_recipients( fetch(:mailgun_recipients) ),
|
@@ -56,13 +71,14 @@ module Capistrano
|
|
56
71
|
send_email options
|
57
72
|
end
|
58
73
|
|
59
|
-
#
|
74
|
+
# Placeholder method for hunting down templates. Currently does nothing.
|
60
75
|
def find_template(t)
|
61
76
|
return t
|
62
77
|
File.join( File.dirname(__FILE__), t )
|
63
78
|
end
|
64
79
|
|
65
|
-
#
|
80
|
+
# Given an array of +recipients+, it returns a comma-delimited, deduplicated string, suitable for populating the +to+ field of a Mailgun API call.
|
81
|
+
# Optionally, it will take a +default_domain+ which will automatically be appended to any unqualified recipients (eg: 'spike' => 'spike@example.com')
|
66
82
|
def build_recipients(recipients, default_domain=nil)
|
67
83
|
[*recipients].map do |r|
|
68
84
|
if r.match /.+?@.+?$/ # the email contains an @ so it's fully-qualified.
|
@@ -86,6 +102,7 @@ module Capistrano
|
|
86
102
|
options
|
87
103
|
end
|
88
104
|
|
105
|
+
# builds the Mailgun API URI from the given options.
|
89
106
|
def build_mailgun_uri(mailgun_api_key, mailgun_domain)
|
90
107
|
"https://api:#{ mailgun_api_key }@api.mailgun.net/v2/#{ mailgun_domain }/messages"
|
91
108
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-mailgun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -79,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
79
|
version: '0'
|
80
80
|
segments:
|
81
81
|
- 0
|
82
|
-
hash:
|
82
|
+
hash: -2168870135844714304
|
83
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
version: '0'
|
89
89
|
segments:
|
90
90
|
- 0
|
91
|
-
hash:
|
91
|
+
hash: -2168870135844714304
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
94
|
rubygems_version: 1.8.24
|