capistrano_mailer 3.1.10 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- = Capistrano Mailer v3.1.3 (20090925)
1
+ = Capistrano Mailer
2
2
 
3
3
  * For Capistrano Deployment Email Notification
4
4
  * It is a Capistrano Plugin / Ruby Gem that requires ActionMailer
@@ -22,7 +22,7 @@ The first time you deploy to a server (a 'cold' deploy) capistrano mailer will c
22
22
 
23
23
  == Home Page
24
24
 
25
- http://github.com/pboling/capistrano_mailer/tree/master
25
+ http://github.com/pboling/capistrano_mailer
26
26
 
27
27
 
28
28
  == Credit where Credit is Due
@@ -62,7 +62,7 @@ Then cd to your rails app to optionally freeze the gem into your app:
62
62
 
63
63
  rake gems:freeze GEM=capistrano_mailer
64
64
  # You do NOT need to add a config.gem line to environment.rb for capistrano mailer,
65
- # But in order to use the gems:freeze task you DO need ot add it as a config.gem, at least temporarily.
65
+ # But in order to use the gems:freeze task you DO need to add it as a config.gem, at least temporarily.
66
66
 
67
67
  Plugin using Git:
68
68
 
@@ -75,9 +75,14 @@ Using SVN (deprecated, repository is no longer updated):
75
75
 
76
76
  == Upgrading
77
77
 
78
- From version 2.1.0 to version 3.x.x:
78
+ From version 3.1.x to version 3.2.x
79
79
 
80
- 1. Update the way CapistranoMailer is configured using the new method: CapMailer.configure_capistrano_mailer, see below.
80
+ 1. Update the way CapistranoMailer is configured using the new method: CapMailer.configure (see Usage below).
81
+ 2. require the cap mailer config file (see Usage below)
82
+
83
+ From version 2.1.0 to version 3.1.x:
84
+
85
+ 1. Update the way CapistranoMailer is configured using the new method: CapMailer.configure_capistrano_mailer (changed in later versions to just 'configure') (see Usage below).
81
86
  2. Update the require statement at the top of deploy.rb, see below (note for plugin change from capistrano_mailer to capistrano/mailer).
82
87
  3. Change the mailer.send to mailer.send_notification_email in your cap recipe.
83
88
 
@@ -87,17 +92,21 @@ From version 2.1.0 to version 3.x.x:
87
92
 
88
93
  2. Add this line to the top of your config/deploy.rb:
89
94
 
90
- # For gem:
91
- # You do NOT need to register the gem in your environment file using config.gem
92
- require 'capistrano/mailer'
93
-
94
95
  # For plugin:
95
96
  # You must make capistrano_mailer's libraries available in Ruby's load path. This is one way to do that:
96
97
  # Add to the top of your config/deploy.rb file:
97
98
  $:.unshift 'vendor/plugins/capistrano_mailer/lib'
99
+
100
+ # then for gem or plugin:
101
+ ####################################
102
+ # Capistrano Plugins go here
98
103
  require 'capistrano/mailer'
104
+ #configure capistrano_mailer:
105
+ # The configuration file can go anywhere, but in past versions of the gem it was required to be in the config/ dir.
106
+ require 'config/cap_mailer_settings'
107
+ ####################################
99
108
 
100
- 3. Add a cap_mailer_settings.rb file to your config/ directory:
109
+ 3. Configure Caistrano Mailer in the settings file required in step 2:
101
110
 
102
111
  # If installed as a plugin might need the require here as well
103
112
 
@@ -112,7 +121,7 @@ From version 2.1.0 to version 3.x.x:
112
121
  :authentication => :login }
113
122
  ActionMailer::Base.default_charset = "utf-8"# or "latin1" or whatever you are using
114
123
 
115
- CapMailer.configure_capistrano_mailer do |config|
124
+ CapMailer.configure do |config|
116
125
  config[:recipient_addresses] = ["dev1@example.com"]
117
126
  # NOTE: THERE IS A BUG IN RAILS 2.3.3 which forces us to NOT use anything but a simple email address string for the sender address.
118
127
  # https://rails.lighthouseapp.com/projects/8994/tickets/2340
@@ -139,48 +148,7 @@ From version 2.1.0 to version 3.x.x:
139
148
  desc "Send email notification of deployment (only send variables you want to be in the email)"
140
149
  task :notify, :roles => :app do
141
150
  show.me # this sets the task_name variable
142
- mailer.send_notification_email([
143
- :rails_env => rails_env,
144
- :host => host,
145
- :task_name => task_name,
146
- :application => application,
147
- :repository => repository,
148
- :scm => scm,
149
- :deploy_via => deploy_via,
150
- :deploy_to => deploy_to,
151
- :revision => revision,
152
- :real_revision => real_revision,
153
- :release_name => release_name,
154
- :version_dir => version_dir,
155
- :shared_dir => shared_dir,
156
- :current_dir => current_dir,
157
- :releases_path => releases_path,
158
- :shared_path => shared_path,
159
- :current_path => current_path,
160
- :release_path => release_path,
161
- :releases => releases,
162
- :current_release => current_release,
163
- :previous_release => previous_release,
164
- :current_revision => current_revision,
165
- :latest_revision => latest_revision,
166
- :previous_revision => previous_revision,
167
- :run_method => run_method,
168
- :latest_release => latest_release,
169
- ],[ # Send some custom vars you've setup in your deploy.rb to be sent out with the notification email!
170
- # will be rendered as a section of the email called 'Release Data'
171
- #:some_other_var1 => some_other_var1,
172
- #:some_other_var2 => some_other_var2,
173
- #:some_other_var3 => some_other_var3
174
- ],[ # Send some more custom vars you've setup in your deploy.rb to be sent out with the notification email!
175
- # will be rendered as a section of the email called 'Extra Information'
176
- #:some_other_var4 => some_other_var4,
177
- #:some_other_var5 => some_other_var5,
178
- #:some_other_var6 => some_other_var6
179
- ],[ # and even more!!!
180
- # these will not be rendered as a section, but will be passed to the email template in the @data hash,
181
- # and be available there if you want to write your own template
182
- ]
183
- )
151
+ mailer.send_notification_email(self)
184
152
  end
185
153
 
186
154
  ...
@@ -189,13 +157,15 @@ From version 2.1.0 to version 3.x.x:
189
157
  Make _sure_ you've defined `rails_env`, `repository`, `deploy_to`, `host`, and `application`.
190
158
  task_name is defined by the show:me task above, and the others are defined behind the scenes by Capistrano!
191
159
 
192
- The only parameter to mailer.send_notification_email that is *required* is the first array of hashes, and _minimally_ it needs the keys:
160
+ The only parameter to mailer.send_notification_email that is *required* is the first. _Minimally_ you need to define the capistrano variables:
193
161
  :rails_env
194
162
  :repository
195
163
  :task_name (provided by the show:me task included in this readme)
196
164
  :deploy_to
197
165
  :host
198
166
  :application
167
+
168
+ But there are tons of others - just take a look at lib/mailer/cap_mailer.rb.
199
169
 
200
170
  If anyone has a cool way of recording the *output* into a capistrano accessible variable,
201
171
  so that it can be shoved into the release email that would be an excellent contribution!
@@ -222,6 +192,16 @@ From version 2.1.0 to version 3.x.x:
222
192
 
223
193
  Take a look at the templates that comes with the plugin to see how it is done (views/cap_mailer/...)
224
194
 
195
+ == Authors
196
+
197
+ Peter Boling (pboling) - Wrote original
198
+ Dave Nolan (textgoeshere) - lots of refactoring merged into 3.2 release
199
+
200
+ == Contributors
201
+
202
+ Dustin Deyoung - HTML Email Templates
203
+ mixonix - SCMs compatibility
204
+ greut - SCMs compatibility
225
205
 
226
206
  ----------------------------------------------------------------------------------
227
207
  This plugin is a collaboration between Sagebit, LLC (http://www.sagebit.com) and Peter Boling (http://www.peterboling.com).
data/Rakefile CHANGED
@@ -8,9 +8,9 @@ begin
8
8
  gemspec.name = "capistrano_mailer"
9
9
  gemspec.summary = "Capistrano Deployment Email Notification"
10
10
  gemspec.description = %q{Capistrano Deployment Email Notification. Keep the whole team informed of each release!}
11
- gemspec.email = "peter.boling@gmail.com"
11
+ gemspec.email = ["peter.boling@gmail.com", "dave@textgoeshere.org.uk"]
12
12
  gemspec.homepage = "http://github.com/pboling/capistrano_mailer"
13
- gemspec.authors = ["Peter Boling"]
13
+ gemspec.authors = ["Peter Boling", "Dave Nolan"]
14
14
  gemspec.add_dependency 'actionmailer'
15
15
  gemspec.files = ["README.rdoc",
16
16
  "capistrano_mailer.gemspec",
@@ -29,7 +29,7 @@ begin
29
29
  end
30
30
  Jeweler::GemcutterTasks.new
31
31
  rescue LoadError
32
- puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
32
+ puts "Jeweler not available. Install it with: sudo gem install jeweler"
33
33
  end
34
34
 
35
35
  desc 'Default: run unit tests.'
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 3
3
- :minor: 1
4
- :patch: 10
3
+ :minor: 2
4
+ :patch: 1
5
5
  :build:
data/about.yml CHANGED
@@ -5,5 +5,5 @@ summary: Sends rails deployment notification emails from Capistrano
5
5
  homepage: http://github.com/pboling/capistrano_mailer/tree/master
6
6
  plugin: http://github.com/pboling/capistrano_mailer.git
7
7
  license: MIT
8
- version: 3.1.3
8
+ version: 3.2.1
9
9
  rails_version: 1.2.6+
@@ -5,13 +5,13 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{capistrano_mailer}
8
- s.version = "3.1.10"
8
+ s.version = "3.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Peter Boling"]
12
- s.date = %q{2010-01-07}
11
+ s.authors = ["Peter Boling", "Dave Nolan"]
12
+ s.date = %q{2010-01-13}
13
13
  s.description = %q{Capistrano Deployment Email Notification. Keep the whole team informed of each release!}
14
- s.email = %q{peter.boling@gmail.com}
14
+ s.email = ["peter.boling@gmail.com", "dave@textgoeshere.org.uk"]
15
15
  s.extra_rdoc_files = [
16
16
  "README.rdoc"
17
17
  ]
@@ -1,6 +1,6 @@
1
1
  class CapMailer < ActionMailer::Base
2
2
 
3
- @@config ||= {
3
+ @@default_base_config ||= {
4
4
  :sender_address => %("#{(defined?(Rails) ? Rails.env.capitalize : defined?(RAILS_ENV) ? RAILS_ENV.capitalize : defined?(ENV) ? ENV['RAILS_ENV'] : "")} Capistrano Deployment" <capistrano.mailer@example.com>),
5
5
  :recipient_addresses => [],
6
6
  # Customize the subject line
@@ -13,122 +13,164 @@ class CapMailer < ActionMailer::Base
13
13
  :template_root => "#{File.dirname(__FILE__)}/../views"
14
14
  }
15
15
 
16
- cattr_accessor :config
16
+ cattr_accessor :default_base_config
17
+ attr_accessor :config, :options
18
+ attr_accessor :date, :time, :inferred_command, :task_name, :repo_end
19
+
20
+ def self.configure(&block)
21
+ yield @@default_base_config
22
+ end
17
23
 
18
24
  def self.configure_capistrano_mailer(&block)
19
- yield @@config
25
+ puts "Deprecated 'configure_capistrano_mailer'. Please update your capistrano_mailer configuration to use 'configure' instead of 'configure_capistrano_mailer'"
20
26
  end
21
27
 
22
- self.template_root = config[:template_root]
28
+ self.template_root = default_base_config[:template_root]
23
29
 
24
30
  def self.reloadable?() false end
25
-
26
- def notification_email(cap_vars, release_data = {}, extra_information = {}, data = {})
27
- body_hash = body_data_hash(cap_vars, release_data = {}, extra_information = {}, data = {})
28
- subject "#{config[:subject_prepend]}[#{cap_vars.first[:rails_env].upcase}][#{body_hash[:repo_end]}] #{body_hash[:inferred_command]}#{config[:subject_append]}"
29
- recipients config[:recipient_addresses]
30
- from config[:sender_address]
31
- content_type config[:email_content_type]
32
-
33
- body body_hash
31
+
32
+ def notification_email(cap, config = {}, *args)
33
+ @options = { :release_data => {}, :extra_information => {}, :data => {} }.merge(args.extract_options!)
34
+ @config = default_base_config.merge(config.reverse_merge({
35
+ :rails_env => cap.rails_env,
36
+ :host => cap.host,
37
+ :task_name => cap.task_name,
38
+ :application => cap.application,
39
+ :repository => cap.repository,
40
+ :scm => cap.scm,
41
+ :deploy_via => cap.deploy_via,
42
+ :deploy_to => cap.deploy_to,
43
+ :revision => cap.revision,
44
+ :real_revision => cap.real_revision,
45
+ :release_name => cap.release_name,
46
+ :version_dir => cap.version_dir,
47
+ :shared_dir => cap.shared_dir,
48
+ :current_dir => cap.current_dir,
49
+ :releases_path => cap.releases_path,
50
+ :shared_path => cap.shared_path,
51
+ :current_path => cap.current_path,
52
+ :release_path => cap.release_path,
53
+ :releases => cap.releases,
54
+ :current_release => cap.current_release,
55
+ :previous_release => cap.previous_release,
56
+ :current_revision => cap.current_revision,
57
+ :latest_revision => cap.latest_revision,
58
+ :previous_revision => cap.previous_revision,
59
+ :run_method => cap.run_method,
60
+ :latest_release => cap.latest_release
61
+ #This does not appear to be a capistrano variable:
62
+ #:site_url => cap.site_url
63
+ }))
64
+
65
+ @date = Date.today.to_s
66
+ @time = Time.now.strftime("%I:%M %p").to_s
67
+ @inferred_command = "cap #{@config[:rails_env]} #{@config[:task_name]}"
68
+ @task_name = @config[:task_name] || "unknown"
69
+
70
+ repo = @config[:repository]
71
+ x = repo.include?('/') ? repo.rindex('/') - 1 : repo.length
72
+ front = repo.slice(0..x)
73
+ back = repo.sub(front, '')
74
+ unless back == 'trunk'
75
+ x = front.include?('/') ? front.rindex('/') - 1 : front.length
76
+ front = front.slice(0..x)
77
+ end
78
+ @repo_end = repo.sub(front, '')
79
+
80
+ subject subject_line
81
+ recipients @config[:recipient_addresses]
82
+ from @config[:sender_address]
83
+ content_type @config[:email_content_type]
84
+
85
+ body body_data_hash
34
86
  end
35
87
 
36
88
  private
89
+
90
+ def subject_line
91
+ config[:subject] || "[#{config[:application]}] #{inferred_command} by #{config[:user]}"
92
+ end
37
93
 
38
- def body_data_hash(cap_vars, release_data = {}, extra_information = {}, data = {})
39
- date = Date.today.to_s
40
- time = Time.now.strftime("%I:%M %p").to_s
41
- inferred_command = "cap #{cap_vars.first[:rails_env]} #{cap_vars.first[:task_name]}"
42
- repo = cap_vars.first[:repository]
43
- x = repo.include?('/') ? repo.rindex('/') - 1 : repo.length
44
- front = repo.slice(0..x)
45
- back = repo.sub(front, '')
46
- unless back == 'trunk'
47
- x = front.include?('/') ? front.rindex('/') - 1 : front.length
48
- front = front.slice(0..x)
49
- end
50
- repo_end = repo.sub(front, '')
51
- task_name = cap_vars.first[:task_name] || "unknown"
52
-
53
- return data.merge({
54
- :section_data => section_data_hash(cap_vars, date, time, task_name, inferred_command, repo_end, release_data, extra_information),
55
- :date => date,
56
- :time => time,
57
- :task_name => task_name,
94
+ def body_data_hash
95
+ options[:data].merge({
96
+ :section_data => section_data_hash,
97
+ :date => date,
98
+ :time => time,
99
+ :task_name => task_name,
58
100
  :inferred_command => inferred_command,
59
- :repo_end => repo_end,
60
- :site_name => config[:site_name],
61
- :application => cap_vars.first[:application],
62
- :sections => config[:sections]
101
+ :repo_end => repo_end,
102
+ :site_name => config[:site_name],
103
+ :site_url => config[:site_url],
104
+ :application => config[:application],
105
+ :sections => config[:sections]
63
106
  })
64
107
  end
65
108
 
66
- def section_data_hash(cap_vars, date, time, task_name, inferred_command, repo_end, release_data, extra_information)
109
+ def section_data_hash
67
110
  {
68
- :deployment => section_hash_deployment(cap_vars, date, time, task_name, inferred_command),
69
- :source_control => section_hash_source_control(cap_vars, repo_end),
70
- :latest_release => section_hash_latest_release(cap_vars),
71
- :previous_release => section_hash_previous_release(cap_vars),
72
- :other_deployment_info => section_hash_other_deployment_info(cap_vars),
73
- :release_data => release_data,
74
- :extra_information => extra_information
111
+ :deployment => section_hash_deployment,
112
+ :source_control => section_hash_source_control,
113
+ :latest_release => section_hash_latest_release,
114
+ :previous_release => section_hash_previous_release,
115
+ :other_deployment_info => section_hash_other_deployment_info,
116
+ :release_data => options[:release_data],
117
+ :extra_information => options[:extra_information]
75
118
  }
76
119
  end
77
120
 
78
- def section_hash_deployment(cap_vars, date, time, task_name, inferred_command)
121
+ def section_hash_deployment
79
122
  {
80
- :date => date,
81
- :time => time,
82
- :rails_env => cap_vars.first[:rails_env],
83
- :task_name => task_name,
123
+ :date => date,
124
+ :time => time,
125
+ :rails_env => config[:rails_env],
126
+ :task_name => task_name,
84
127
  :inferred_command => inferred_command,
85
- :host => cap_vars.first[:host],
86
- :release_name => cap_vars.first[:release_name]
128
+ :host => config[:host],
129
+ :release_name => config[:release_name]
87
130
  }
88
131
  end
89
132
 
90
- def section_hash_source_control(cap_vars, repo_end)
133
+ def section_hash_source_control
91
134
  {
92
- :revision => cap_vars.first[:revision],
93
- :released => repo_end,
94
- :repository => cap_vars.first[:repository],
95
- :branch => cap_vars.first[:branch],
96
- :scm => cap_vars.first[:scm],
97
- :deploy_via => cap_vars.first[:deploy_via],
98
- :deploy_to => cap_vars.first[:deploy_to]
135
+ :revision => config[:revision],
136
+ :released => repo_end,
137
+ :repository => config[:repository],
138
+ :branch => config[:branch],
139
+ :scm => config[:scm],
140
+ :deploy_via => config[:deploy_via],
141
+ :deploy_to => config[:deploy_to]
99
142
  }
100
143
  end
101
144
 
102
- def section_hash_latest_release(cap_vars)
145
+ def section_hash_latest_release
103
146
  {
104
- :latest_release => cap_vars.first[:latest_release],
105
- :latest_revision => cap_vars.first[:latest_revision],
106
- :release_path => cap_vars.first[:release_path],
107
- :real_revision => cap_vars.first[:real_revision],
108
- :current_path => cap_vars.first[:current_path]
147
+ :latest_release => config[:latest_release],
148
+ :latest_revision => config[:latest_revision],
149
+ :release_path => config[:release_path],
150
+ :real_revision => config[:real_revision],
151
+ :current_path => config[:current_path]
109
152
  }
110
153
  end
111
154
 
112
- def section_hash_previous_release(cap_vars)
155
+ def section_hash_previous_release
113
156
  {
114
- :current_release => cap_vars.first[:current_release],
115
- :current_revision => cap_vars.first[:current_revision],
116
- :previous_release => cap_vars.first[:previous_release],
117
- :previous_revision => cap_vars.first[:previous_revision],
118
- :releases => cap_vars.first[:releases]
157
+ :current_release => config[:current_release],
158
+ :current_revision => config[:current_revision],
159
+ :previous_release => config[:previous_release],
160
+ :previous_revision => config[:previous_revision],
161
+ :releases => config[:releases]
119
162
  }
120
163
  end
121
164
 
122
- def section_hash_other_deployment_info(cap_vars)
165
+ def section_hash_other_deployment_info
123
166
  {
124
- :version_dir => cap_vars.first[:version_dir],
125
- :shared_dir => cap_vars.first[:shared_dir],
126
- :current_dir => cap_vars.first[:current_dir],
127
- :releases_path => cap_vars.first[:releases_path],
128
- :shared_path => cap_vars.first[:shared_path],
129
- :run_method => cap_vars.first[:run_method],
130
- :ip_address => cap_vars.first[:ip_address]
167
+ :version_dir => config[:version_dir],
168
+ :shared_dir => config[:shared_dir],
169
+ :current_dir => config[:current_dir],
170
+ :releases_path => config[:releases_path],
171
+ :shared_path => config[:shared_path],
172
+ :run_method => config[:run_method],
173
+ :ip_address => config[:ip_address]
131
174
  }
132
175
  end
133
-
134
176
  end
@@ -1,5 +1,6 @@
1
1
  require 'rubygems' unless defined?(Rubygems)
2
2
  require 'capistrano' unless defined?(Capistrano)
3
+ require 'active_support'
3
4
 
4
5
  unless Capistrano::Configuration.respond_to?(:instance)
5
6
  abort "capistrano/mailer requires Capistrano 2"
@@ -9,15 +10,12 @@ require 'action_mailer' unless defined?(ActionMailer)
9
10
 
10
11
  require 'cap_mailer' unless defined?(CapMailer)
11
12
 
12
- # ActionMailer configuration in the rails app
13
- require 'config/cap_mailer_settings'
14
-
15
13
 
16
14
  module Capistrano
17
15
  class Configuration
18
16
  module CapistranoMailer
19
- def send_notification_email(cap_vars, extra = {}, data = {})
20
- CapMailer.deliver_notification_email(cap_vars, extra, data)
17
+ def send_notification_email(cap, config = {}, *args)
18
+ CapMailer.deliver_notification_email(cap, config, args)
21
19
  end
22
20
  end
23
21
 
@@ -7,15 +7,17 @@
7
7
  <body style="font: 14px normal Helvetica, Arial, Sans; background: #999;">
8
8
 
9
9
  <div style="width:800px; margin: 10px auto; background: #fff; border: 10px solid #aaa;">
10
-
10
+
11
11
  <h1 style="clear: both; margin: 0; padding: 40px 20px 5px 20px; border-bottom: 1px dotted; background: #ccc;">
12
12
  <%= @site_name %> <%=@task_name.titleize unless @task_name.nil? %>
13
13
  </h1>
14
14
 
15
- <p style="margin: 8px 0 20px 20px; padding: 0px; font-style: italic;" >
16
- Brought to you by: <a href="http://github.com/pboling/capistrano_mailer">Capistrano Mailer</a>
17
- </p>
18
-
15
+ <% unless @site_url.nil? %>
16
+ <p style="margin: 8px 0 20px 20px; padding: 0px; font-style: italic;" >
17
+ View site: <a href="<%= @site_url -%>"><%= @site_url -%></a>
18
+ </p>
19
+ <% end %>
20
+
19
21
  <p style="margin: 10px 20px; font-weight: bold;">Released: <%= @date %> at <%= @time %></p>
20
22
 
21
23
  <%= @sections.map { |section|
@@ -30,9 +32,8 @@
30
32
  }.join unless @sections.nil? %>
31
33
  </div>
32
34
 
33
- <div style="text-align:center;">
34
- &copy; 2009 <a href="http://www.9thbit.net">9thBit LLC</a>, MIT License<br/>
35
- &copy; 2007-8 <a href="http://www.sagebit.com">Sagebit LLC</a>, MIT License
36
- </div>
35
+ <p style="margin: 8px 0 20px 20px; padding: 0px; font-style: italic;" >
36
+ Brought to you by: <a href="http://github.com/textgoeshere/capistrano_mailer">Capistrano Mailer</a>
37
+ </p>
37
38
  </body>
38
39
  </html>
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano_mailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.10
4
+ version: 3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
8
+ - Dave Nolan
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2010-01-07 00:00:00 -05:00
13
+ date: 2010-01-13 00:00:00 -05:00
13
14
  default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
@@ -23,7 +24,9 @@ dependencies:
23
24
  version: "0"
24
25
  version:
25
26
  description: Capistrano Deployment Email Notification. Keep the whole team informed of each release!
26
- email: peter.boling@gmail.com
27
+ email:
28
+ - peter.boling@gmail.com
29
+ - dave@textgoeshere.org.uk
27
30
  executables: []
28
31
 
29
32
  extensions: []