capistrano-notifier 0.2.2 → 0.3.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4d9227ceb01d7add2fed25486430cd6e0b5da2a7
4
+ data.tar.gz: 529fa6ce30beff4acc1ae87183cc7c20fb0c8e35
5
+ SHA512:
6
+ metadata.gz: 66b2281400a6d5b61d02959e57adb11060f93fec8b600d11a8d9eef444054fc714a3a16e4015931d643ad6cfba19688d352ace8ec1c0f66a65478a91f2d2c39c
7
+ data.tar.gz: 916d98341f09ae07879b2e395af6d723a39510d7dc18565056ea984a77f9cbd5ef48d7870a076e73a2a59692e6738ee44110510246ac11d37337fbda68ff6a2a
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  .DS_Store
19
+ .ruby-version
data/.travis.yml CHANGED
@@ -1,25 +1,17 @@
1
1
  env:
2
2
  - RAILS_VERSION=none
3
- - RAILS_VERSION=2.3
4
- - RAILS_VERSION=3.0
5
- - RAILS_VERSION=3.1
6
3
  - RAILS_VERSION=3.2
4
+ - RAILS_VERSION=4.0
7
5
  rvm:
8
- - 1.8.7
9
- - 1.9.2
10
6
  - 1.9.3
11
- - jruby
12
- - rbx
13
- - ree
7
+ - 2.0.0
14
8
  - ruby-head
9
+ - jruby-19mode
10
+ - jruby-head
15
11
  matrix:
16
12
  allow_failures:
17
- - rvm: jruby
18
- - rvm: rbx
19
13
  - rvm: ruby-head
20
- exclude:
21
- - rvm: ruby-head
22
- env: RAILS_VERSION=2.3
14
+ - rvm: jruby-head
23
15
  notifications:
24
16
  email:
25
17
  - sysadmin@cramerdev.com
data/Gemfile CHANGED
@@ -2,12 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- group :development, :test do
6
- gem 'rake'
7
-
8
- group :darwin do
9
- gem 'rb-fsevent'
10
- gem 'growl'
11
- end
12
- end
13
-
5
+ gem 'guard-rspec'
data/README.md CHANGED
@@ -55,6 +55,45 @@ set :notifier_mail_options, {
55
55
  }
56
56
  ```
57
57
 
58
+ ### Templates
59
+
60
+ This gem comes with two different ERB templates that are used to generate the body of the email. To choose from each one of them, you can set the `format` option to either `:html` - for HTML emails - or `:text` - for plain text.
61
+
62
+ The following are the default values for the template options:
63
+
64
+ - `format`: `:text`
65
+ - `templates_path`: `"config/deploy/templates"`
66
+ - `template`: `"mail.#{format}.erb"`. Note the dependency of this option on `format`.
67
+
68
+ The relationship between these variables might seem a bit complex but provides great flexibility. The logic used is as follows:
69
+
70
+ - If the file exists in `"#{templates_path}/#{template}"`, then use that one. With no option set, this will default to `config/deploy/templates/mail.text.erb`.
71
+
72
+ - If the file doesn't exist in the previous path, load `"#{template}"` from one of the gem's templates, either `mail.text.erb` or `mail.html.erb`. With no options set, this will default to `mail.text.erb` due to how the `template` option is generated. See above.
73
+
74
+ For those interested in creating customized templates, it is important to know that you can use any of the variables defined in capistrano by prefixing it with the `cap` method like below:
75
+
76
+ ```rb
77
+ <%= cap.any_variable_defined_in_capistrano %>
78
+ ```
79
+
80
+ The following is a list of some popular variables that don't require the use of the `cap.` prefix:
81
+
82
+ - `application`: Name of the application.
83
+ - `branch`: Name of the branch to be deployed.
84
+ - `git_commit_prefix`: URL of the format `"#{git_prefix}/commit"`.
85
+ - `git_compare_prefix`: URL of the format `"#{git_prefix}/compare"`.
86
+ - `git_current_revision`: Commit for current revision.
87
+ - `git_log`: Simplified log of commits in the `git_range`.
88
+ - `git_prefix`: URL to the github repository. Depends on `giturl` or `github` variables.
89
+ - `git_previous_revision`: Commit for previous revision.
90
+ - `git_range`: Range of commits between previous and current revision. Example: xxx..yyy
91
+ - `github`: URL path to the GitHub respository. Ex: 'MyCompany/project-name'.
92
+ - `giturl`: Base URL to the repository.
93
+ - `now`: Current time.
94
+ - `stage`: Name of the stage from the capistrano multistage extension.
95
+ - `user_name`: Name of the local git author.
96
+
58
97
  ## StatsD
59
98
 
60
99
  ```rb
@@ -81,4 +120,16 @@ set :notifier_statsd_options, {
81
120
  }
82
121
  ```
83
122
 
123
+ You can define the pattern that will be used to define the key.
124
+ In the example the key will be 'test.deployment.example'
125
+
126
+ ```rb
127
+ set :application, 'example'
128
+ set :stage, 'test'
129
+
130
+ set :notifier_statsd_options, {
131
+ :pattern => "#{stage}.deployment.#{application}"
132
+ }
133
+ ```
134
+
84
135
  The `nc` ([Netcat](http://netcat.sourceforge.net/)) command is used to send messages to statsd and must be installed on the remote hosts. This is installed by default on most Unix machines.
@@ -16,22 +16,18 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Capistrano::Notifier::VERSION
17
17
 
18
18
  case ENV['RAILS_VERSION']
19
- when '2.3'
20
- gem.add_dependency 'actionmailer', '~> 2.3.0'
21
- when '3.0'
22
- gem.add_dependency 'actionmailer', '~> 3.0.0'
23
- when '3.1'
24
- gem.add_dependency 'actionmailer', '~> 3.1.0'
25
19
  when '3.2'
26
20
  gem.add_dependency 'actionmailer', '~> 3.2.0'
21
+ when '4.0'
22
+ gem.add_dependency 'actionmailer', '~> 4.0.0'
27
23
  else
28
24
  gem.add_dependency 'actionmailer'
29
25
  end
30
26
 
31
27
  gem.add_dependency 'activesupport'
32
- gem.add_dependency 'capistrano', '>= 2'
28
+ gem.add_dependency 'capistrano', '>= 2', '< 3'
33
29
 
34
- gem.add_development_dependency 'guard-rspec'
30
+ gem.add_development_dependency 'rake'
35
31
  gem.add_development_dependency 'rspec'
36
32
  gem.add_development_dependency 'timecop'
37
33
  end
@@ -2,28 +2,34 @@ require 'capistrano/notifier'
2
2
 
3
3
  begin
4
4
  require 'action_mailer'
5
- rescue LoadError => e
5
+ rescue LoadError
6
6
  require 'actionmailer'
7
7
  end
8
8
 
9
9
  class Capistrano::Notifier::Mailer < ActionMailer::Base
10
10
 
11
+ def content_type_for_format(format)
12
+ format == :html ? 'text/html' : 'text/plain'
13
+ end
14
+
11
15
  if ActionMailer::Base.respond_to?(:mail)
12
- def notice(text, from, subject, to, delivery_method)
16
+ def notice(text, from, subject, to, delivery_method, format)
13
17
  mail({
14
- :body => text,
15
- :delivery_method => delivery_method,
16
- :from => from,
17
- :subject => subject,
18
- :to => to
18
+ body: text,
19
+ delivery_method: delivery_method,
20
+ content_type: content_type_for_format(format),
21
+ from: from,
22
+ subject: subject,
23
+ to: to
19
24
  })
20
25
  end
21
26
  else
22
- def notice(text, from, subject, to)
27
+ def notice(text, from, subject, to, format)
23
28
  body text
29
+ content_type content_type_for_format(format)
24
30
  from from
25
- subject subject
26
31
  recipients to
32
+ subject subject
27
33
  end
28
34
  end
29
35
 
@@ -61,54 +67,44 @@ class Capistrano::Notifier::Mail < Capistrano::Notifier::Base
61
67
 
62
68
  def perform_with_legacy_action_mailer(notifier = Capistrano::Notifier::Mailer)
63
69
  notifier.delivery_method = notify_method
64
- notifier.deliver_notice(text, from, subject, to)
70
+ notifier.deliver_notice(text, from, subject, to, format)
65
71
  end
66
72
 
67
73
  def perform_with_action_mailer(notifier = Capistrano::Notifier::Mailer)
68
74
  notifier.smtp_settings = smtp_settings
69
- notifier.notice(text, from, subject, to, notify_method).deliver
75
+ notifier.notice(text, from, subject, to, notify_method, format).deliver
70
76
  end
71
77
 
72
- def body
73
- <<-BODY.gsub(/^ {6}/, '')
74
- #{user_name} deployed
75
- #{application.titleize} branch
76
- #{branch} to
77
- #{stage} on
78
- #{now.strftime("%m/%d/%Y")} at
79
- #{now.strftime("%I:%M %p %Z")}
78
+ def email_template
79
+ cap.notifier_mail_options[:template] || "mail.#{format.to_s}.erb"
80
+ end
80
81
 
81
- #{git_range}
82
- #{git_log}
83
- BODY
82
+ def format
83
+ cap.notifier_mail_options[:format] || :text
84
84
  end
85
85
 
86
86
  def from
87
87
  cap.notifier_mail_options[:from]
88
88
  end
89
89
 
90
- def github_commit_prefix
91
- "#{github_prefix}/commit"
90
+ def git_commit_prefix
91
+ "#{git_prefix}/commit"
92
92
  end
93
93
 
94
- def github_compare_prefix
95
- "#{github_prefix}/compare"
94
+ def git_compare_prefix
95
+ "#{git_prefix}/compare"
96
96
  end
97
97
 
98
- def github_prefix
99
- "https://github.com/#{github}"
98
+ def git_prefix
99
+ giturl ? giturl : "https://github.com/#{github}"
100
100
  end
101
101
 
102
102
  def github
103
103
  cap.notifier_mail_options[:github]
104
104
  end
105
105
 
106
- def html
107
- body.gsub(
108
- /([0-9a-f]{7})\.\.([0-9a-f]{7})/, "<a href=\"#{github_compare_prefix}/\\1...\\2\">\\1..\\2</a>"
109
- ).gsub(
110
- /^([0-9a-f]{7})/, "<a href=\"#{github_commit_prefix}/\\0\">\\0</a>"
111
- )
106
+ def giturl
107
+ cap.notifier_mail_options[:giturl]
112
108
  end
113
109
 
114
110
  def notify_method
@@ -123,8 +119,22 @@ class Capistrano::Notifier::Mail < Capistrano::Notifier::Base
123
119
  "#{application.titleize} branch #{branch} deployed to #{stage}"
124
120
  end
125
121
 
122
+ def template(template_name)
123
+ config_file = "#{templates_path}/#{template_name}"
124
+
125
+ unless File.exists?(config_file)
126
+ config_file = File.join(File.dirname(__FILE__), "templates/#{template_name}")
127
+ end
128
+
129
+ ERB.new(File.read(config_file), nil, '-').result(binding)
130
+ end
131
+
132
+ def templates_path
133
+ cap.notifier_mail_options[:templates_path] || 'config/deploy/templates'
134
+ end
135
+
126
136
  def text
127
- body.gsub(/([0-9a-f]{7})\.\.([0-9a-f]{7})/, "#{github_compare_prefix}/\\1...\\2")
137
+ template(email_template)
128
138
  end
129
139
 
130
140
  def to
@@ -2,7 +2,7 @@ require 'capistrano/notifier'
2
2
  require 'socket'
3
3
 
4
4
  class Capistrano::Notifier::StatsD < Capistrano::Notifier::Base
5
- DEFAULTS = { :host => "127.0.0.1", :port => "8125", :with => :counter }
5
+ DEFAULTS = { host: "127.0.0.1", port: "8125", with: :counter }
6
6
 
7
7
  def self.load_into(configuration)
8
8
  configuration.load do
@@ -38,11 +38,17 @@ class Capistrano::Notifier::StatsD < Capistrano::Notifier::Base
38
38
  end
39
39
 
40
40
  def packet
41
- if stage
42
- "#{application}.#{stage}.deploy:#{with}"
43
- else
44
- "#{application}.deploy:#{with}"
45
- end
41
+ "#{pattern}:#{with}"
42
+ end
43
+
44
+ def pattern
45
+ options.fetch(:pattern){
46
+ if stage
47
+ "#{application}.#{stage}.deploy"
48
+ else
49
+ "#{application}.deploy"
50
+ end
51
+ }
46
52
  end
47
53
 
48
54
  def port
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
+ </head>
6
+ <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
7
+ <h3>Details:</h3>
8
+ <table>
9
+ <tbody>
10
+ <tr>
11
+ <td><strong>Deployer:</strong></td>
12
+ <td><%= user_name %></td>
13
+ </tr>
14
+ <tr>
15
+ <td><strong>Application:</strong></td>
16
+ <td><%= application.titleize %></td>
17
+ </tr>
18
+ <tr>
19
+ <td><strong>Branch:</strong></td>
20
+ <td><%= branch %></td>
21
+ </tr>
22
+ <tr>
23
+ <td><strong>Environment:</strong></td>
24
+ <td><%= stage %></td>
25
+ </tr>
26
+ <tr>
27
+ <td><strong>Time:</strong></td>
28
+ <td><%= now.strftime("%m/%d/%Y") %> at <%= now.strftime("%I:%M %p %Z") %></td>
29
+ </tr>
30
+ </tbody>
31
+ </table>
32
+
33
+ <h3>Compare:</h3>
34
+ <p><%= git_compare_prefix %>/<%= git_range.gsub('..', '...') %></p>
35
+
36
+ <h3>Commits:</h3>
37
+ <%- git_log.split(/\n/).each do |commit| -%>
38
+ <p><%= commit %></p>
39
+ <%- end -%>
40
+
41
+ </body>
42
+ </html>
@@ -0,0 +1,11 @@
1
+ Deployer: <%= user_name %>
2
+ Application: <%= application.titleize %>
3
+ Branch: <%= branch %>
4
+ Environment: <%= stage %>
5
+ Time: <%= now.strftime("%m/%d/%Y") %> at <%= now.strftime("%I:%M %p %Z") %>
6
+
7
+ Compare:
8
+ <%= git_compare_prefix %>/<%= git_range.gsub('..', '...') %>
9
+
10
+ Commits:
11
+ <%= git_log %>
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Notifier
3
- VERSION = '0.2.2'
3
+ VERSION = '0.3.0'
4
4
  end
5
5
  end
@@ -8,10 +8,11 @@ describe Capistrano::Notifier::Mail do
8
8
  before :each do
9
9
  configuration.load do |configuration|
10
10
  set :notifier_mail_options, {
11
- :github => 'example/example',
12
- :method => :sendmail,
13
- :from => 'sender@example.com',
14
- :to => 'example@example.com'
11
+ github: 'example/example',
12
+ method: :sendmail,
13
+ from: 'sender@example.com',
14
+ to: 'example@example.com',
15
+ format: :text
15
16
  }
16
17
 
17
18
  set :application, 'example'
@@ -22,7 +23,7 @@ describe Capistrano::Notifier::Mail do
22
23
  set :previous_revision, '890abcd0000000000000000000000000'
23
24
  end
24
25
 
25
- subject.stub(:git_log).and_return <<-LOG.gsub /^ {6}/, ''
26
+ subject.stub(:git_log).and_return <<-LOG.gsub(/^ {6}/, '')
26
27
  1234567 This is the current commit (John Doe)
27
28
  890abcd This is the previous commit (John Doe)
28
29
  LOG
@@ -32,10 +33,10 @@ describe Capistrano::Notifier::Mail do
32
33
  it 'delivers mail' do
33
34
  configuration.load do |configuration|
34
35
  set :notifier_mail_options, {
35
- :github => 'example/example',
36
- :method => :test,
37
- :from => 'sender@example.com',
38
- :to => 'example@example.com'
36
+ github: 'example/example',
37
+ method: :test,
38
+ from: 'sender@example.com',
39
+ to: 'example@example.com'
39
40
  }
40
41
  end
41
42
 
@@ -48,7 +49,7 @@ describe Capistrano::Notifier::Mail do
48
49
 
49
50
  ActionMailer::Base.deliveries.clear
50
51
  end
51
-
52
+
52
53
  it { subject.send(:github).should == 'example/example' }
53
54
  it { subject.send(:notify_method).should == :sendmail }
54
55
  it { subject.send(:from).should == 'sender@example.com' }
@@ -58,18 +59,18 @@ describe Capistrano::Notifier::Mail do
58
59
  it 'delivers smtp mail' do
59
60
  configuration.load do |configuration|
60
61
  set :notifier_mail_options, {
61
- :github => 'example/example',
62
- :method => :test,
63
- :from => 'sender@example.com',
64
- :to => 'example@example.com',
65
- :smtp_settings => {
66
- :address => "smtp.gmail.com",
67
- :port => 587,
68
- :domain => "gmail.com",
69
- :authentication => "plain",
70
- :enable_starttls_auto => true,
71
- :user_name => "USERNAME",
72
- :password => "PASSWORD"
62
+ github: 'example/example',
63
+ method: :test,
64
+ from: 'sender@example.com',
65
+ to: 'example@example.com',
66
+ smtp_settings: {
67
+ address: "smtp.gmail.com",
68
+ port: 587,
69
+ domain: "gmail.com",
70
+ authentication: "plain",
71
+ enable_starttls_auto: true,
72
+ user_name: "USERNAME",
73
+ password: "PASSWORD"
73
74
  }
74
75
  }
75
76
  end
@@ -77,13 +78,13 @@ describe Capistrano::Notifier::Mail do
77
78
  subject.perform
78
79
 
79
80
  subject.send(:smtp_settings).should == {
80
- :address => "smtp.gmail.com",
81
- :port => 587,
82
- :domain => "gmail.com",
83
- :authentication => "plain",
84
- :enable_starttls_auto => true,
85
- :user_name => "USERNAME",
86
- :password => "PASSWORD"
81
+ address: "smtp.gmail.com",
82
+ port: 587,
83
+ domain: "gmail.com",
84
+ authentication: "plain",
85
+ enable_starttls_auto: true,
86
+ user_name: "USERNAME",
87
+ password: "PASSWORD"
87
88
  }
88
89
 
89
90
  last_delivery = ActionMailer::Base.deliveries.last
@@ -94,23 +95,98 @@ describe Capistrano::Notifier::Mail do
94
95
  ActionMailer::Base.deliveries.clear
95
96
  end
96
97
 
97
- it "creates a subject" do
98
+ it 'creates a subject' do
98
99
  subject.send(:subject).should == "Example branch master deployed to test"
99
100
  end
100
101
 
101
- it "renders a plaintext email" do
102
- subject.send(:body).should == <<-BODY.gsub(/^ {6}/, '')
103
- John Doe deployed
104
- Example branch
105
- master to
106
- test on
107
- 01/01/2012 at
108
- 12:00 AM #{Time.now.zone}
102
+ it 'should work with gitlab' do
103
+ configuration.load do |configuration|
104
+ set :notifier_mail_options, {
105
+ giturl: 'https://my.gitlab.url/',
106
+ }
107
+ end
109
108
 
110
- 890abcd..1234567
109
+ subject.send(:git_prefix).should == 'https://my.gitlab.url/'
110
+ end
111
+
112
+ it 'should default to whatever was specified in giturl' do
113
+ configuration.load do |configuration|
114
+ set :notifier_mail_options, {
115
+ giturl: 'https://my.gitlab.url/',
116
+ github: 'example/example'
117
+ }
118
+ end
119
+
120
+ subject.send(:git_prefix).should == 'https://my.gitlab.url/'
121
+ end
122
+
123
+ it 'renders a plaintext email' do
124
+ subject.send(:text).should == <<-BODY.gsub(/^ {6}/, '')
125
+ Deployer: John Doe
126
+ Application: Example
127
+ Branch: master
128
+ Environment: test
129
+ Time: 01/01/2012 at 12:00 AM #{Time.now.zone}
130
+
131
+ Compare:
132
+ https://github.com/example/example/compare/890abcd...1234567
133
+
134
+ Commits:
111
135
  1234567 This is the current commit (John Doe)
112
136
  890abcd This is the previous commit (John Doe)
113
137
 
114
138
  BODY
115
139
  end
140
+
141
+ context 'given the format is set to :html' do
142
+ before do
143
+ subject.stub(:format).and_return(:html)
144
+ end
145
+
146
+ it 'renders an html email' do
147
+ subject.send(:text).should == <<-BODY.gsub(/^ {8}/, '')
148
+ <!DOCTYPE html>
149
+ <html>
150
+ <head>
151
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
152
+ </head>
153
+ <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
154
+ <h3>Details:</h3>
155
+ <table>
156
+ <tbody>
157
+ <tr>
158
+ <td><strong>Deployer:</strong></td>
159
+ <td>John Doe</td>
160
+ </tr>
161
+ <tr>
162
+ <td><strong>Application:</strong></td>
163
+ <td>Example</td>
164
+ </tr>
165
+ <tr>
166
+ <td><strong>Branch:</strong></td>
167
+ <td>master</td>
168
+ </tr>
169
+ <tr>
170
+ <td><strong>Environment:</strong></td>
171
+ <td>test</td>
172
+ </tr>
173
+ <tr>
174
+ <td><strong>Time:</strong></td>
175
+ <td>01/01/2012 at 12:00 AM #{Time.now.zone}</td>
176
+ </tr>
177
+ </tbody>
178
+ </table>
179
+
180
+ <h3>Compare:</h3>
181
+ <p>https://github.com/example/example/compare/890abcd...1234567</p>
182
+
183
+ <h3>Commits:</h3>
184
+ <p>1234567 This is the current commit (John Doe)</p>
185
+ <p>890abcd This is the previous commit (John Doe)</p>
186
+
187
+ </body>
188
+ </html>
189
+ BODY
190
+ end
191
+ end
116
192
  end
@@ -41,8 +41,8 @@ describe Capistrano::Notifier::StatsD do
41
41
  before :each do
42
42
  configuration.load do
43
43
  set :notifier_statsd_options, {
44
- :host => '10.0.0.1',
45
- :port => '1234'
44
+ host: '10.0.0.1',
45
+ port: '1234'
46
46
  }
47
47
 
48
48
  set :application, 'example'
@@ -59,7 +59,7 @@ describe Capistrano::Notifier::StatsD do
59
59
  before :each do
60
60
  configuration.load do
61
61
  set :notifier_statsd_options, {
62
- :with => :gauge
62
+ with: :gauge
63
63
  }
64
64
 
65
65
  set :application, 'example'
@@ -78,4 +78,21 @@ describe Capistrano::Notifier::StatsD do
78
78
  end
79
79
  end
80
80
  end
81
+
82
+ context "with a pattern" do
83
+ before :each do
84
+ configuration.load do
85
+ set :application, 'example'
86
+ set :stage, 'test'
87
+ set :notifier_statsd_options, {
88
+ :pattern => "#{stage}.deployment.#{application}"
89
+ }
90
+ end
91
+ end
92
+
93
+ it "creates a packet" do
94
+ subject.send(:packet).should == "test.deployment.example:1|c"
95
+ end
96
+
97
+ end
81
98
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-notifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Justin Campbell
@@ -10,102 +9,96 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-05-28 00:00:00.000000000 Z
12
+ date: 2014-03-07 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: actionmailer
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - '>='
21
19
  - !ruby/object:Gem::Version
22
20
  version: '0'
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ! '>='
25
+ - - '>='
29
26
  - !ruby/object:Gem::Version
30
27
  version: '0'
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: activesupport
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ! '>='
32
+ - - '>='
37
33
  - !ruby/object:Gem::Version
38
34
  version: '0'
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ! '>='
39
+ - - '>='
45
40
  - !ruby/object:Gem::Version
46
41
  version: '0'
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: capistrano
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
46
+ - - '>='
53
47
  - !ruby/object:Gem::Version
54
48
  version: '2'
49
+ - - <
50
+ - !ruby/object:Gem::Version
51
+ version: '3'
55
52
  type: :runtime
56
53
  prerelease: false
57
54
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
55
  requirements:
60
- - - ! '>='
56
+ - - '>='
61
57
  - !ruby/object:Gem::Version
62
58
  version: '2'
59
+ - - <
60
+ - !ruby/object:Gem::Version
61
+ version: '3'
63
62
  - !ruby/object:Gem::Dependency
64
- name: guard-rspec
63
+ name: rake
65
64
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
65
  requirements:
68
- - - ! '>='
66
+ - - '>='
69
67
  - !ruby/object:Gem::Version
70
68
  version: '0'
71
69
  type: :development
72
70
  prerelease: false
73
71
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
72
  requirements:
76
- - - ! '>='
73
+ - - '>='
77
74
  - !ruby/object:Gem::Version
78
75
  version: '0'
79
76
  - !ruby/object:Gem::Dependency
80
77
  name: rspec
81
78
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
79
  requirements:
84
- - - ! '>='
80
+ - - '>='
85
81
  - !ruby/object:Gem::Version
86
82
  version: '0'
87
83
  type: :development
88
84
  prerelease: false
89
85
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
86
  requirements:
92
- - - ! '>='
87
+ - - '>='
93
88
  - !ruby/object:Gem::Version
94
89
  version: '0'
95
90
  - !ruby/object:Gem::Dependency
96
91
  name: timecop
97
92
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
93
  requirements:
100
- - - ! '>='
94
+ - - '>='
101
95
  - !ruby/object:Gem::Version
102
96
  version: '0'
103
97
  type: :development
104
98
  prerelease: false
105
99
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
100
  requirements:
108
- - - ! '>='
101
+ - - '>='
109
102
  - !ruby/object:Gem::Version
110
103
  version: '0'
111
104
  description: Simple notification hooks for Capistrano
@@ -129,10 +122,8 @@ files:
129
122
  - lib/capistrano/notifier/base.rb
130
123
  - lib/capistrano/notifier/mail.rb
131
124
  - lib/capistrano/notifier/statsd.rb
132
- - lib/capistrano/notifier/templates/mail.erb
133
125
  - lib/capistrano/notifier/templates/mail.html.erb
134
126
  - lib/capistrano/notifier/templates/mail.text.erb
135
- - lib/capistrano/notifier/templates/mail.txt.erb
136
127
  - lib/capistrano/notifier/version.rb
137
128
  - spec/capistrano/notifier/base_spec.rb
138
129
  - spec/capistrano/notifier/mail_spec.rb
@@ -141,27 +132,26 @@ files:
141
132
  - spec/spec_helper.rb
142
133
  homepage: http://github.com/cramerdev/capistrano-notifier
143
134
  licenses: []
135
+ metadata: {}
144
136
  post_install_message:
145
137
  rdoc_options: []
146
138
  require_paths:
147
139
  - lib
148
140
  required_ruby_version: !ruby/object:Gem::Requirement
149
- none: false
150
141
  requirements:
151
- - - ! '>='
142
+ - - '>='
152
143
  - !ruby/object:Gem::Version
153
144
  version: '0'
154
145
  required_rubygems_version: !ruby/object:Gem::Requirement
155
- none: false
156
146
  requirements:
157
- - - ! '>='
147
+ - - '>='
158
148
  - !ruby/object:Gem::Version
159
149
  version: '0'
160
150
  requirements: []
161
151
  rubyforge_project:
162
- rubygems_version: 1.8.23
152
+ rubygems_version: 2.0.14
163
153
  signing_key:
164
- specification_version: 3
154
+ specification_version: 4
165
155
  summary: Capistrano Notifier
166
156
  test_files:
167
157
  - spec/capistrano/notifier/base_spec.rb
File without changes
File without changes