capistrano-notifier 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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