heroku_san 1.2.3 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/heroku_san.gemspec CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{heroku_san}
5
- s.version = "1.2.3"
5
+
6
+ s.version = "1.3.0"
7
+ s.date = %q{2011-11-07}
6
8
 
7
9
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
10
  s.authors = ["Elijah Miller", "Glenn Roberts", "Ryan Ahearn"]
9
- s.date = %q{2011-08-19}
10
11
  s.description = %q{Manage multiple Heroku instances/apps for a single Rails app using Rake}
11
12
  s.email = %q{elijah.miller@gmail.com}
12
13
  s.homepage = %q{http://github.com/glennr/heroku_san}
@@ -56,7 +56,7 @@ namespace :heroku do
56
56
  desc "Creates the Heroku app"
57
57
  task :create do
58
58
  each_heroku_app do |name, app, repo|
59
- sh "heroku create #{app}"
59
+ sh "heroku create #{app} #{("--stack " + stack(app)) if stack(app)}"
60
60
  end
61
61
  end
62
62
 
@@ -196,7 +196,7 @@ namespace :heroku do
196
196
  desc 'Runs a rake task remotely'
197
197
  task :rake, :task do |t, args|
198
198
  each_heroku_app do |name, app, repo|
199
- sh "heroku rake --app #{app} #{args[:task]}"
199
+ sh "heroku #{run_or_rake(app)} #{args[:task]}"
200
200
  end
201
201
  end
202
202
 
@@ -272,7 +272,11 @@ end
272
272
  desc "Opens a remote console"
273
273
  task :console do
274
274
  each_heroku_app do |name, app, repo|
275
- sh "heroku console --app #{app}"
275
+ if stack_is_cedar?(app)
276
+ sh "heroku run --app #{app} console"
277
+ else
278
+ sh "heroku console --app #{app}"
279
+ end
276
280
  end
277
281
  end
278
282
 
@@ -353,7 +357,12 @@ def each_heroku_app
353
357
  app = @app_settings[name]['app']
354
358
  config = @app_settings[name]['config'] || {}
355
359
  config.merge!(@extra_config[name]) if (@extra_config && @extra_config[name])
356
- yield(name, app, "git@heroku.com:#{app}.git", config)
360
+ if @app_settings[name].has_key? 'repo'
361
+ repo = @app_settings[name]['repo']
362
+ else
363
+ repo = "git@heroku.com:#{app}.git"
364
+ end
365
+ yield(name, app, repo, config)
357
366
  end
358
367
  puts
359
368
  else
@@ -381,10 +390,30 @@ def push(commit, repo)
381
390
  end
382
391
 
383
392
  def migrate(app)
384
- sh "heroku rake --app #{app} db:migrate"
393
+ sh "heroku #{run_or_rake(app)} db:migrate"
385
394
  sh "heroku restart --app #{app}"
386
395
  end
387
396
 
388
397
  def maintenance(app, action)
389
398
  sh "heroku maintenance:#{action} --app #{app}"
390
399
  end
400
+
401
+ # `heroku rake foo` has been superseded by `heroku run rake foo` on cedar
402
+ def run_or_rake(app)
403
+ if stack_is_cedar?(app)
404
+ "run --app #{app} rake"
405
+ else
406
+ "rake --app #{app}"
407
+ end
408
+ end
409
+
410
+ def stack_is_cedar?(app)
411
+ stack(app) =~ /^cedar/
412
+ end
413
+
414
+ def stack(app)
415
+ @app_settings.values.detect { |s| s['app'] == app }.tap do |settings|
416
+ @stack = (settings['stack'] || (/^\* (.*)/.match `heroku stack --app #{app}`)[1] rescue nil)
417
+ end
418
+ @stack
419
+ end
@@ -3,16 +3,19 @@
3
3
  #
4
4
  # <heroku_san shorthand name>:
5
5
  # app: <Heroku app name>
6
+ # stack: <Heroku stack, optional>
6
7
  # config:
7
8
  # - <Heroku config:var name>: <Heroku config:var value>
8
9
  #
9
10
  production:
10
11
  app: awesomeapp
12
+ stack: bamboo-ree-1.8.7
11
13
  config:
12
14
  BUNDLE_WITHOUT: "development:test"
13
15
  GOOGLE_ANALYTICS: "UA-12345678-1"
14
16
 
15
17
  staging:
18
+ stack: cedar
16
19
  app: awesomeapp-staging
17
20
  config: &default
18
21
  BUNDLE_WITHOUT: "development:test"
metadata CHANGED
@@ -1,104 +1,80 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: heroku_san
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 2
9
- - 3
10
- version: 1.2.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Elijah Miller
14
9
  - Glenn Roberts
15
10
  - Ryan Ahearn
16
11
  autorequire:
17
12
  bindir: bin
18
13
  cert_chain: []
19
-
20
- date: 2011-08-19 00:00:00 -04:00
21
- default_executable:
22
- dependencies:
23
- - !ruby/object:Gem::Dependency
14
+ date: 2011-11-07 00:00:00.000000000Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
24
17
  name: rails
25
- prerelease: false
26
- requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirement: &70239580705520 !ruby/object:Gem::Requirement
27
19
  none: false
28
- requirements:
29
- - - ">="
30
- - !ruby/object:Gem::Version
31
- hash: 7
32
- segments:
33
- - 2
34
- version: "2"
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: '2'
35
24
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: heroku
39
25
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
26
+ version_requirements: *70239580705520
27
+ - !ruby/object:Gem::Dependency
28
+ name: heroku
29
+ requirement: &70239580704340 !ruby/object:Gem::Requirement
41
30
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 7
46
- segments:
47
- - 2
48
- version: "2"
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '2'
49
35
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: rails
53
36
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
37
+ version_requirements: *70239580704340
38
+ - !ruby/object:Gem::Dependency
39
+ name: rails
40
+ requirement: &70239580700620 !ruby/object:Gem::Requirement
55
41
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 5
60
- segments:
61
- - 3
62
- version: "3"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '3'
63
46
  type: :development
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: aruba
67
47
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
48
+ version_requirements: *70239580700620
49
+ - !ruby/object:Gem::Dependency
50
+ name: aruba
51
+ requirement: &70239580699940 !ruby/object:Gem::Requirement
69
52
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
77
57
  type: :development
78
- version_requirements: *id004
79
- - !ruby/object:Gem::Dependency
80
- name: cucumber
81
58
  prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
59
+ version_requirements: *70239580699940
60
+ - !ruby/object:Gem::Dependency
61
+ name: cucumber
62
+ requirement: &70239580654620 !ruby/object:Gem::Requirement
83
63
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
91
68
  type: :development
92
- version_requirements: *id005
69
+ prerelease: false
70
+ version_requirements: *70239580654620
93
71
  description: Manage multiple Heroku instances/apps for a single Rails app using Rake
94
72
  email: elijah.miller@gmail.com
95
73
  executables: []
96
-
97
74
  extensions: []
98
-
99
- extra_rdoc_files:
75
+ extra_rdoc_files:
100
76
  - README.rdoc
101
- files:
77
+ files:
102
78
  - .gitignore
103
79
  - .gitmodules
104
80
  - .rvmrc
@@ -115,41 +91,34 @@ files:
115
91
  - lib/heroku_san/tasks.rb
116
92
  - lib/tasks/heroku.rake
117
93
  - lib/templates/heroku.example.yml
118
- has_rdoc: true
119
94
  homepage: http://github.com/glennr/heroku_san
120
95
  licenses: []
121
-
122
96
  post_install_message:
123
97
  rdoc_options: []
124
-
125
- require_paths:
98
+ require_paths:
126
99
  - lib
127
- required_ruby_version: !ruby/object:Gem::Requirement
100
+ required_ruby_version: !ruby/object:Gem::Requirement
128
101
  none: false
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- hash: 3
133
- segments:
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ segments:
134
107
  - 0
135
- version: "0"
136
- required_rubygems_version: !ruby/object:Gem::Requirement
108
+ hash: -81552674531593559
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
137
110
  none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- hash: 3
142
- segments:
143
- - 0
144
- version: "0"
111
+ requirements:
112
+ - - ! '>='
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
145
115
  requirements: []
146
-
147
116
  rubyforge_project:
148
- rubygems_version: 1.6.1
117
+ rubygems_version: 1.8.10
149
118
  signing_key:
150
119
  specification_version: 3
151
120
  summary: A bunch of useful Rake tasks for managing your Heroku apps
152
- test_files:
121
+ test_files:
153
122
  - features/command_line.feature
154
123
  - features/extended-config.feature
155
124
  - features/support/env.rb