heroku-rails 0.3.2 → 0.4.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.
data/Gemfile CHANGED
@@ -6,3 +6,5 @@ gem "ruby-debug19", :platforms => :mri_19
6
6
 
7
7
  gem "autotest", ">= 0"
8
8
  gem "growl-glue", ">= 0"
9
+
10
+ gem "rake", "0.8.7"
@@ -1,47 +1,50 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- heroku-rails (0.3.2)
4
+ heroku-rails (0.4.0)
5
5
  heroku (>= 1.11.0)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
+ ZenTest (4.6.2)
11
+ addressable (2.2.6)
10
12
  archive-tar-minitar (0.5.2)
11
- autotest (4.4.1)
12
- columnize (0.3.1)
13
- configuration (1.2.0)
14
- diff-lcs (1.1.2)
13
+ autotest (4.4.6)
14
+ ZenTest (>= 4.4.1)
15
+ columnize (0.3.5)
16
+ diff-lcs (1.1.3)
15
17
  growl-glue (1.0.7)
16
- heroku (1.20.1)
17
- launchy (~> 0.3.2)
18
- rest-client (< 1.7.0, >= 1.4.0)
19
- launchy (0.3.7)
20
- configuration (>= 0.0.5)
21
- rake (>= 0.8.1)
22
- linecache (0.43)
23
- linecache19 (0.5.11)
18
+ heroku (2.15.1)
19
+ launchy (>= 0.3.2)
20
+ rest-client (~> 1.6.1)
21
+ rubyzip
22
+ term-ansicolor (~> 1.0.5)
23
+ launchy (2.0.5)
24
+ addressable (~> 2.2.6)
25
+ linecache (0.46)
26
+ rbx-require-relative (> 0.0.4)
27
+ linecache19 (0.5.12)
24
28
  ruby_core_source (>= 0.1.4)
25
- mime-types (1.16)
29
+ mime-types (1.17.2)
26
30
  rake (0.8.7)
27
- rest-client (1.6.1)
31
+ rbx-require-relative (0.0.5)
32
+ rest-client (1.6.7)
28
33
  mime-types (>= 1.16)
29
- rspec (2.0.1)
30
- rspec-core (~> 2.0.1)
31
- rspec-expectations (~> 2.0.1)
32
- rspec-mocks (~> 2.0.1)
33
- rspec-core (2.0.1)
34
- rspec-expectations (2.0.1)
35
- diff-lcs (>= 1.1.2)
36
- rspec-mocks (2.0.1)
37
- rspec-core (~> 2.0.1)
38
- rspec-expectations (~> 2.0.1)
39
- ruby-debug (0.10.3)
34
+ rspec (2.7.0)
35
+ rspec-core (~> 2.7.0)
36
+ rspec-expectations (~> 2.7.0)
37
+ rspec-mocks (~> 2.7.0)
38
+ rspec-core (2.7.1)
39
+ rspec-expectations (2.7.0)
40
+ diff-lcs (~> 1.1.2)
41
+ rspec-mocks (2.7.0)
42
+ ruby-debug (0.10.4)
40
43
  columnize (>= 0.1)
41
- ruby-debug-base (~> 0.10.3.0)
42
- ruby-debug-base (0.10.3)
44
+ ruby-debug-base (~> 0.10.4.0)
45
+ ruby-debug-base (0.10.4)
43
46
  linecache (>= 0.3)
44
- ruby-debug-base19 (0.11.24)
47
+ ruby-debug-base19 (0.11.25)
45
48
  columnize (>= 0.3.1)
46
49
  linecache19 (>= 0.5.11)
47
50
  ruby_core_source (>= 0.1.4)
@@ -49,8 +52,10 @@ GEM
49
52
  columnize (>= 0.3.1)
50
53
  linecache19 (>= 0.5.11)
51
54
  ruby-debug-base19 (>= 0.11.19)
52
- ruby_core_source (0.1.4)
55
+ ruby_core_source (0.1.5)
53
56
  archive-tar-minitar (>= 0.5.2)
57
+ rubyzip (0.9.5)
58
+ term-ansicolor (1.0.7)
54
59
 
55
60
  PLATFORMS
56
61
  ruby
@@ -59,6 +64,7 @@ DEPENDENCIES
59
64
  autotest
60
65
  growl-glue
61
66
  heroku-rails!
67
+ rake (= 0.8.7)
62
68
  rspec (~> 2.0)
63
69
  ruby-debug
64
70
  ruby-debug19
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "heroku-rails"
3
- s.version = "0.3.2"
3
+ s.version = "0.4.0"
4
4
 
5
5
  s.authors = ["Elijah Miller", "Glenn Roberts", "Jacques Crocker"]
6
6
  s.summary = "Deployment and configuration tools for Heroku/Rails"
@@ -16,12 +16,12 @@ namespace :heroku do
16
16
  end
17
17
 
18
18
  # runs before each push to a particular heroku deploy environment
19
- task :before_each_deploy do
19
+ task :before_each_deploy, [:app_name] do |t,args|
20
20
 
21
21
  end
22
22
 
23
23
  # runs after each push to a particular heroku deploy environment
24
- task :after_each_deploy do
24
+ task :after_each_deploy, [:app_name] do |t,args|
25
25
 
26
26
  end
27
27
 
@@ -1,3 +1,5 @@
1
+ require 'erb'
2
+
1
3
  module HerokuRails
2
4
  class Config
3
5
 
@@ -14,7 +16,7 @@ module HerokuRails
14
16
 
15
17
  def initialize(config_filepath)
16
18
  if File.exists?(config_filepath)
17
- self.settings = YAML.load_file(config_filepath) || {}
19
+ self.settings = YAML.load(ERB.new(File.read(config_filepath)).result) || {}
18
20
  else
19
21
  self.settings = {}
20
22
  end
@@ -46,7 +46,7 @@ module HerokuRails
46
46
 
47
47
  stack = @config.stack(heroku_env)
48
48
  stack_option = " --stack #{stack}" if stack.to_s.size > 0
49
- system_with_echo "heroku create #{app_name}#{stack_option} --remote #{app_name}"
49
+ creation_command "heroku create #{app_name}#{stack_option} --remote #{app_name}"
50
50
  end
51
51
  end
52
52
 
@@ -63,7 +63,7 @@ module HerokuRails
63
63
  # if the stacks don't match, then perform a migration
64
64
  if stack != heroku_app_info[:stack]
65
65
  puts "Migrating the app: #{app_name} to the stack: #{stack}"
66
- system_with_echo "heroku stack:migrate #{stack} --app #{app_name}"
66
+ creation_command "heroku stack:migrate #{stack} --app #{app_name}"
67
67
  end
68
68
  end
69
69
  end
@@ -90,7 +90,7 @@ module HerokuRails
90
90
  # check to see if we need to delete this person
91
91
  unless collaborator_emails.include?(existing_email)
92
92
  # delete that collaborator if they arent on the approved list
93
- system_with_echo "heroku sharing:remove #{existing_email} --app #{app_name}"
93
+ destroy_command "heroku sharing:remove #{existing_email} --app #{app_name}"
94
94
  end
95
95
  end
96
96
 
@@ -99,9 +99,12 @@ module HerokuRails
99
99
  # check to see if we need to add this person
100
100
  unless existing_emails.include?(collaborator_email)
101
101
  # add the collaborator if they are not already on the server
102
- system_with_echo "heroku sharing:add #{collaborator_email} --app #{app_name}"
102
+ creation_command "heroku sharing:add #{collaborator_email} --app #{app_name}"
103
103
  end
104
104
  end
105
+
106
+ # display the destructive commands
107
+ output_destroy_commands
105
108
  end
106
109
  end
107
110
 
@@ -134,7 +137,7 @@ module HerokuRails
134
137
  set_config << "#{key}='#{val}' "
135
138
  end
136
139
 
137
- system_with_echo "heroku config:add #{set_config} --app #{app_name}"
140
+ creation_command "heroku config:add #{set_config} --app #{app_name}"
138
141
  end
139
142
  end
140
143
  end
@@ -150,7 +153,7 @@ module HerokuRails
150
153
  existing_addons = (@heroku.installed_addons(app_name) || []).map{|a| a["name"]}
151
154
 
152
155
  # all apps need the shared database
153
- addons << "shared-database:5mb" unless addons.index("shared-database:5mb")
156
+ addons << "shared-database:5mb" unless addons.index("shared-database:5mb") || addons.index("shared-database:20gb")
154
157
 
155
158
  # add "custom_domains" if that addon doesnt already exist
156
159
  # and we have domains configured for this app
@@ -163,7 +166,7 @@ module HerokuRails
163
166
  # check to see if we need to delete this addon
164
167
  unless addons.include?(existing_addon)
165
168
  # delete this addon if they arent on the approved list
166
- system_with_echo "heroku addons:remove #{existing_addon} --app #{app_name}"
169
+ destroy_command "heroku addons:remove #{existing_addon} --app #{app_name}"
167
170
  end
168
171
  end
169
172
 
@@ -172,9 +175,12 @@ module HerokuRails
172
175
  # check to see if we need to add this addon
173
176
  unless existing_addons.include?(addon)
174
177
  # add this addon if they are not already added
175
- system_with_echo "heroku addons:add #{addon} --app #{app_name}"
178
+ creation_command "heroku addons:add #{addon} --app #{app_name}"
176
179
  end
177
180
  end
181
+
182
+ # display the destructive commands
183
+ output_destroy_commands
178
184
  end
179
185
  end
180
186
 
@@ -193,7 +199,7 @@ module HerokuRails
193
199
  # check to see if we need to delete this domain
194
200
  unless domains.include?(existing_domain)
195
201
  # delete this domain if they arent on the approved list
196
- system_with_echo "heroku domains:remove #{existing_domain} --app #{app_name}"
202
+ destroy_command "heroku domains:remove #{existing_domain} --app #{app_name}"
197
203
  end
198
204
  end
199
205
 
@@ -202,9 +208,12 @@ module HerokuRails
202
208
  # check to see if we need to add this domain
203
209
  unless existing_domains.include?(domain)
204
210
  # add this domain if they are not already added
205
- system_with_echo "heroku domains:add #{domain} --app #{app_name}"
211
+ creation_command "heroku domains:add #{domain} --app #{app_name}"
206
212
  end
207
213
  end
214
+
215
+ # display the destructive commands
216
+ output_destroy_commands
208
217
  end
209
218
  end
210
219
 
@@ -248,6 +257,27 @@ module HerokuRails
248
257
  command(*args)
249
258
  end
250
259
 
260
+ def creation_command(*args)
261
+ system_with_echo(*args)
262
+ end
263
+
264
+ def destroy_command(*args)
265
+ puts args.join(' ')
266
+ @destroy_commands ||= []
267
+ @destroy_commands << @destroy_commands
268
+ end
269
+
270
+ def output_destroy_commands(app)
271
+ puts "The #{app} had a few things removed from the heroku.yml."
272
+ puts "If they are no longer neccessary, then run the following commands:"
273
+ (@destroy_commands || []).each do |destroy_command|
274
+ puts destroy_command
275
+ end
276
+ puts "these commands may cause data loss so make sure you know that these are necessary"
277
+ # clear destroy commands
278
+ @destroy_commands = []
279
+ end
280
+
251
281
  def command(*args)
252
282
  system(*args)
253
283
  end
@@ -60,7 +60,7 @@ namespace :heroku do
60
60
  # set the current heroku_app so that callbacks can read the data
61
61
  @heroku_app = {:env => heroku_env, :app_name => app_name, :repo => repo}
62
62
  Rake::Task["heroku:before_each_deploy"].reenable
63
- Rake::Task["heroku:before_each_deploy"].invoke
63
+ Rake::Task["heroku:before_each_deploy"].invoke(app_name)
64
64
 
65
65
  branch = `git branch`.scan(/^\* (.*)\n/).flatten.first.to_s
66
66
  if branch.present?
@@ -71,7 +71,7 @@ namespace :heroku do
71
71
  exit(1)
72
72
  end
73
73
  Rake::Task["heroku:after_each_deploy"].reenable
74
- Rake::Task["heroku:after_each_deploy"].invoke
74
+ Rake::Task["heroku:after_each_deploy"].invoke(app_name)
75
75
  puts "\n"
76
76
  end
77
77
  Rake::Task["heroku:after_deploy"].invoke
@@ -86,11 +86,11 @@ namespace :heroku do
86
86
  end
87
87
 
88
88
  # Callback before each deploy
89
- task :before_each_deploy do
89
+ task :before_each_deploy, [:app_name] do |t,args|
90
90
  end
91
91
 
92
92
  # Callback after each deploy
93
- task :after_each_deploy do
93
+ task :after_each_deploy, [:app_name] do |t,args|
94
94
  end
95
95
 
96
96
  # Callback for when we switch environment
metadata CHANGED
@@ -1,54 +1,51 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: heroku-rails
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
4
5
  prerelease:
5
- version: 0.3.2
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Elijah Miller
9
9
  - Glenn Roberts
10
10
  - Jacques Crocker
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
-
15
- date: 2011-04-26 00:00:00 -07:00
16
- default_executable:
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
14
+ date: 2011-12-07 00:00:00.000000000Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
19
17
  name: heroku
20
- requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirement: &2153321540 !ruby/object:Gem::Requirement
21
19
  none: false
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
25
23
  version: 1.11.0
26
24
  type: :runtime
27
25
  prerelease: false
28
- version_requirements: *id001
29
- - !ruby/object:Gem::Dependency
26
+ version_requirements: *2153321540
27
+ - !ruby/object:Gem::Dependency
30
28
  name: rspec
31
- requirement: &id002 !ruby/object:Gem::Requirement
29
+ requirement: &2153320680 !ruby/object:Gem::Requirement
32
30
  none: false
33
- requirements:
31
+ requirements:
34
32
  - - ~>
35
- - !ruby/object:Gem::Version
36
- version: "2.0"
33
+ - !ruby/object:Gem::Version
34
+ version: '2.0'
37
35
  type: :development
38
36
  prerelease: false
39
- version_requirements: *id002
40
- description: Manage multiple Heroku instances/apps for a single Rails app using Rake. It's the Capistrano for Heroku, without the suck.
37
+ version_requirements: *2153320680
38
+ description: Manage multiple Heroku instances/apps for a single Rails app using Rake.
39
+ It's the Capistrano for Heroku, without the suck.
41
40
  email: railsjedi@gmail.com
42
41
  executables: []
43
-
44
42
  extensions: []
45
-
46
- extra_rdoc_files:
43
+ extra_rdoc_files:
47
44
  - LICENSE
48
45
  - README.md
49
46
  - TODO
50
47
  - CHANGELOG
51
- files:
48
+ files:
52
49
  - lib/generators/heroku/config_generator.rb
53
50
  - lib/generators/templates/heroku.rake
54
51
  - lib/generators/templates/heroku.yml
@@ -69,41 +66,38 @@ files:
69
66
  - Rakefile
70
67
  - README.md
71
68
  - TODO
72
- has_rdoc: true
73
69
  homepage: http://github.com/railsjedi/heroku-rails
74
70
  licenses: []
75
-
76
71
  post_install_message:
77
- rdoc_options:
72
+ rdoc_options:
78
73
  - --charset=UTF-8
79
- require_paths:
74
+ require_paths:
80
75
  - lib
81
- required_ruby_version: !ruby/object:Gem::Requirement
76
+ required_ruby_version: !ruby/object:Gem::Requirement
82
77
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3832137273780756345
87
- segments:
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ segments:
88
83
  - 0
89
- version: "0"
90
- required_rubygems_version: !ruby/object:Gem::Requirement
84
+ hash: -3500876346162424707
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
86
  none: false
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- hash: 3832137273780756345
96
- segments:
87
+ requirements:
88
+ - - ! '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ segments:
97
92
  - 0
98
- version: "0"
93
+ hash: -3500876346162424707
99
94
  requirements: []
100
-
101
95
  rubyforge_project: none
102
- rubygems_version: 1.6.2
96
+ rubygems_version: 1.8.6
103
97
  signing_key:
104
98
  specification_version: 3
105
99
  summary: Deployment and configuration tools for Heroku/Rails
106
- test_files:
100
+ test_files:
107
101
  - spec/fixtures/heroku-config.yml
108
102
  - spec/heroku/rails/heroku_config_spec.rb
109
103
  - spec/heroku/rails/heroku_runner_spec.rb