capistrano-fanfare 0.0.11 → 0.0.12

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.
data/README.md CHANGED
@@ -69,6 +69,15 @@ looks like:
69
69
  role :db, deploy_server, :primary => true
70
70
  role :db, deploy_server
71
71
 
72
+ There are several optional recipes that need additional gems in your Gemfile:
73
+
74
+ gem 'airbrake'
75
+
76
+ group :development do
77
+ gem 'capistrano-fanfare'
78
+ gem 'capistrano-campfire'
79
+ end
80
+
72
81
  ## Contributing
73
82
 
74
83
  1. Fork it
@@ -30,6 +30,19 @@ module Capistrano::Fanfare::Campfire
30
30
  "Deployment started by #{ENV['USER']} failed, so attempting to roll back."
31
31
  end
32
32
 
33
+ set(:campfire_web_disable_msg) do
34
+ reason = ENV['REASON'] ? %{"#{ENV['REASON']}"} : "No reason given"
35
+ msg = [
36
+ "#{ENV['USER']} is bringing #{application}_#{deploy_env}",
37
+ "down into maintenance mode (#{reason})."
38
+ ]
39
+ msg.join(' ')
40
+ end
41
+
42
+ set(:campfire_web_enable_msg) do
43
+ "#{ENV['USER']} is bringing #{application}_#{deploy_env} back from maintenance mode."
44
+ end
45
+
33
46
  set :campfire_success_play, "pushit"
34
47
  set :campfire_fail_play, "trombone"
35
48
 
@@ -96,12 +109,28 @@ module Capistrano::Fanfare::Campfire
96
109
  speak fetch(:campfire_fail_msg)
97
110
  play fetch(:campfire_fail_play)
98
111
  end
112
+
113
+ desc <<-DESC
114
+ [internal] Posts a message in Campfire when the app is being brought down.
115
+ DESC
116
+ task :web_disable do
117
+ speak fetch(:campfire_web_disable_msg)
118
+ end
119
+
120
+ desc <<-DESC
121
+ [internal] Posts a message in Campfire when the app is being brought up.
122
+ DESC
123
+ task :web_enable do
124
+ speak fetch(:campfire_web_enable_msg)
125
+ end
99
126
  end
100
127
 
101
128
  unless ENV['QUIET'].to_i > 0
102
129
  before "deploy", "campfire:pre_deploy"
103
130
  after "deploy", "campfire:successful_deploy"
104
131
  after "deploy:migrations", "campfire:successful_deploy"
132
+ before "deploy:web:disable", "campfire:web_disable"
133
+ before "deploy:web:enable", "campfire:web_enable"
105
134
  end
106
135
 
107
136
  before 'deploy:rollback', 'campfire:rollback_deploy'
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Fanfare
3
- VERSION = "0.0.11"
3
+ VERSION = "0.0.12"
4
4
  end
5
5
  end
@@ -25,6 +25,8 @@ describe Capistrano::Fanfare::Campfire do
25
25
 
26
26
  ENV['_SPEC_USER'] = ENV['USER']
27
27
  ENV['USER'] = 'filbert'
28
+ ENV['_SPEC_REASON'] = ENV['REASON']
29
+ ENV['REASON'] = "to deal with the tribbles"
28
30
 
29
31
  @config.load do
30
32
  def puts(msg)
@@ -42,6 +44,7 @@ describe Capistrano::Fanfare::Campfire do
42
44
 
43
45
  after do
44
46
  ENV['USER'] = ENV.delete('_SPEC_USER')
47
+ ENV['REASON'] = ENV.delete('_SPEC_REASON')
45
48
  end
46
49
 
47
50
  describe "for variables" do
@@ -64,6 +67,23 @@ describe Capistrano::Fanfare::Campfire do
64
67
  "Deployment started by filbert failed, so attempting to roll back.")
65
68
  end
66
69
 
70
+ it "sets :campfire_web_disable_msg to a known default containing the reason given" do
71
+ @config.set :application, 'wazup'
72
+ @config.set :deploy_env, 'staging'
73
+
74
+ @config.fetch(:campfire_web_disable_msg).must_equal([
75
+ 'filbert is bringing wazup_staging down into maintenance mode',
76
+ '("to deal with the tribbles").'].join(' '))
77
+ end
78
+
79
+ it "sets :campfire_web_enable to a known default" do
80
+ @config.set :application, 'wazup'
81
+ @config.set :deploy_env, 'staging'
82
+
83
+ @config.fetch(:campfire_web_enable_msg).must_equal(
84
+ "filbert is bringing wazup_staging back from maintenance mode.")
85
+ end
86
+
67
87
  it "sets :campfire_success_play to 'pushit'" do
68
88
  @config.fetch(:campfire_success_play).must_equal "pushit"
69
89
  end
@@ -188,5 +208,31 @@ describe Capistrano::Fanfare::Campfire do
188
208
  @config.must_have_callback_before "deploy:rollback", "campfire:rollback_deploy"
189
209
  end
190
210
  end
211
+
212
+ describe "task :web_disable" do
213
+ it "prints a message in campfire" do
214
+ @config.set :campfire_web_disable_msg, "website offline"
215
+ @config.find_and_execute_task("campfire:web_disable")
216
+
217
+ @config.campfire_room.speaks.first.must_equal "website offline"
218
+ end
219
+
220
+ it "gets called before deploy task" do
221
+ @config.must_have_callback_before "deploy:web:disable", "campfire:web_disable"
222
+ end
223
+ end
224
+
225
+ describe "task :web_enable" do
226
+ it "prints a message in campfire" do
227
+ @config.set :campfire_web_enable_msg, "we're back baby"
228
+ @config.find_and_execute_task("campfire:web_enable")
229
+
230
+ @config.campfire_room.speaks.first.must_equal "we're back baby"
231
+ end
232
+
233
+ it "gets called before deploy task" do
234
+ @config.must_have_callback_before "deploy:web:enable", "campfire:web_enable"
235
+ end
236
+ end
191
237
  end
192
238
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-fanfare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-26 00:00:00.000000000 Z
12
+ date: 2012-01-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
16
- requirement: &70278694434700 !ruby/object:Gem::Requirement
16
+ requirement: &70350802170640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.10.0.pre
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70278694434700
24
+ version_requirements: *70350802170640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: capistrano_colors
27
- requirement: &70278694433320 !ruby/object:Gem::Requirement
27
+ requirement: &70350802168720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.5'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70278694433320
35
+ version_requirements: *70350802168720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sushi
38
- requirement: &70278694432500 !ruby/object:Gem::Requirement
38
+ requirement: &70350802167240 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.0.2
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70278694432500
46
+ version_requirements: *70350802167240
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: minitest
49
- requirement: &70278694431560 !ruby/object:Gem::Requirement
49
+ requirement: &70350802165960 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.10.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70278694431560
57
+ version_requirements: *70350802165960
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitest-capistrano
60
- requirement: &70278694429240 !ruby/object:Gem::Requirement
60
+ requirement: &70350802165060 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0.0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70278694429240
68
+ version_requirements: *70350802165060
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: timecop
71
- requirement: &70278694421860 !ruby/object:Gem::Requirement
71
+ requirement: &70350802163540 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0.3'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70278694421860
79
+ version_requirements: *70350802163540
80
80
  description: Capistrano recipes (with full test suite) for fanfare application deployment
81
81
  framework
82
82
  email:
@@ -144,7 +144,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  segments:
146
146
  - 0
147
- hash: 1153374831594208695
147
+ hash: 1544583041495729694
148
148
  required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  version: '0'
154
154
  segments:
155
155
  - 0
156
- hash: 1153374831594208695
156
+ hash: 1544583041495729694
157
157
  requirements: []
158
158
  rubyforge_project:
159
159
  rubygems_version: 1.8.10