heroku_san 1.0.5 → 1.0.6

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.
Files changed (4) hide show
  1. data/README.rdoc +3 -0
  2. data/VERSION +1 -1
  3. data/lib/heroku_san/tasks.rb +25 -8
  4. metadata +3 -3
data/README.rdoc CHANGED
@@ -76,6 +76,8 @@ A full list of tasks provided:
76
76
  rake heroku:create # Creates the Heroku app
77
77
  rake heroku:create_config # Creates an example configuration file
78
78
  rake heroku:gems # Generate the Heroku gems manifest from gem dependencies
79
+ rake heroku:maintenance # Enable maintenance mode
80
+ rake heroku:maintenance_off# Disable maintenance mode
79
81
  rake heroku:push # Pushes the given commit (default: HEAD)
80
82
  rake heroku:push:force # Force-pushes the given commit (default: HEAD)
81
83
  rake heroku:remotes # Add git remotes for all apps in this project
@@ -103,6 +105,7 @@ Issue Tracker:: http://github.com/fastestforward/heroku_san/issues
103
105
  * Peter Jaros
104
106
  * Lee Semel
105
107
  * Michael Haddad (michael@ludditetechnology.com)
108
+ * Les Hill (leshill@gmail.com)
106
109
 
107
110
  == License
108
111
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.5
1
+ 1.0.6
@@ -2,15 +2,15 @@ HEROKU_CONFIG_FILE = Rails.root.join('config', 'heroku.yml')
2
2
 
3
3
  HEROKU_SETTINGS =
4
4
  if File.exists?(HEROKU_CONFIG_FILE)
5
- YAML.load_file(HEROKU_CONFIG_FILE)
5
+ YAML.load_file(HEROKU_CONFIG_FILE)
6
6
  else
7
- {}
7
+ {}
8
8
  end
9
9
 
10
10
  (HEROKU_SETTINGS['apps'] || []).each do |name, app|
11
11
  desc "Select #{name} Heroku app for later commands"
12
12
  task name do
13
- @heroku_apps ||= []
13
+ @heroku_apps ||= []
14
14
  @heroku_apps << name
15
15
  end
16
16
  end
@@ -33,7 +33,7 @@ namespace :heroku do
33
33
  RAILS_ENV='production'
34
34
  Rake::Task[:environment].invoke
35
35
  gems = Rails.configuration.gems.reject { |g| g.frozen? && !g.framework_gem? }
36
- list = gems.collect do |g|
36
+ list = gems.collect do |g|
37
37
  command, *options = g.send(:install_command)
38
38
  options.join(" ")
39
39
  end
@@ -51,7 +51,7 @@ namespace :heroku do
51
51
  system("git remote add #{name} #{repo}")
52
52
  end
53
53
  end
54
-
54
+
55
55
  desc 'Adds a collaborator'
56
56
  task :share do
57
57
  print "Email address of collaborator to add: "
@@ -80,7 +80,7 @@ namespace :heroku do
80
80
  puts
81
81
  end
82
82
  end
83
-
83
+
84
84
  desc 'Add proper RACK_ENV to each application'
85
85
  task :rack_env => :all do
86
86
  each_heroku_app do |name, app, repo|
@@ -92,7 +92,7 @@ namespace :heroku do
92
92
  end
93
93
  end
94
94
  end
95
-
95
+
96
96
  desc 'Creates an example configuration file'
97
97
  task :create_config do
98
98
  example = File.join(File.dirname(__FILE__), '..', 'templates', 'heroku.example.yml')
@@ -128,6 +128,19 @@ namespace :heroku do
128
128
  end
129
129
  end
130
130
 
131
+ desc "Enable maintenance mode"
132
+ task :maintenance do
133
+ each_heroku_app do |name, app, repo|
134
+ maintenance(app, 'on')
135
+ end
136
+ end
137
+
138
+ desc "Disable maintenance mode"
139
+ task :maintenance_off do
140
+ each_heroku_app do |name, app, repo|
141
+ maintenance(app, 'off')
142
+ end
143
+ end
131
144
  end
132
145
 
133
146
  desc "Pushes the given commit, migrates and restarts (default: HEAD)"
@@ -232,7 +245,7 @@ def each_heroku_app
232
245
 
233
246
  puts "\nYou can use also command all Heroku apps for this project:
234
247
  rake all heroku:share"
235
-
248
+
236
249
  exit(1)
237
250
  end
238
251
  end
@@ -252,3 +265,7 @@ def migrate(app)
252
265
  sh "heroku rake --app #{app} db:migrate"
253
266
  sh "heroku restart --app #{app}"
254
267
  end
268
+
269
+ def maintenance(app, action)
270
+ sh "heroku maintenance:#{action} --app #{app}"
271
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroku_san
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 5
10
- version: 1.0.5
9
+ - 6
10
+ version: 1.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Elijah Miller