kumade 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ module Kumade
4
+ describe ThorTask, "deploy" do
5
+ before { subject.stub(:say) }
6
+
7
+ let(:environment){ 'bamboo' }
8
+
9
+ it "calls the deploy method with the correct environment" do
10
+ Deployer.any_instance.should_receive(:deploy_to).with(environment)
11
+ subject.deploy(environment)
12
+ end
13
+ end
14
+ end
@@ -1,77 +1,29 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Kumade, ".staging_remote" do
4
- let(:staging_app){ 'purple' }
5
- let(:staging_remote){ 'staging_test' }
3
+ describe Kumade, ".app_for" do
4
+ let(:environment){ 'staging' }
5
+ let(:app_name){ 'staging_test' }
6
+ let(:not_a_heroku_env){ 'fake_heroku' }
7
+ let(:not_a_heroku_url){ 'git@github.com:gabebw/kumade.git' }
6
8
 
7
9
  before do
8
- Kumade.reset!
9
- `git remote add #{staging_remote} git@heroku.com:#{staging_app}.git`
10
+ force_add_heroku_remote(environment, app_name)
11
+ `git remote add #{not_a_heroku_env} #{not_a_heroku_url}`
10
12
  end
11
-
12
- after { `git remote rm #{staging_remote}` }
13
-
14
- it "can be set" do
15
- Kumade.staging_remote = 'orange'
16
- Kumade.staging_remote.should == 'orange'
17
- end
18
-
19
- it "is autodetected if staging app is set" do
20
- Kumade.staging_app = staging_app
21
- Kumade.staging_remote.should == staging_remote
22
- end
23
- end
24
-
25
- describe Kumade, "staging app" do
26
- before { Kumade.reset! }
27
-
28
- it "defaults to nil" do
29
- Kumade.staging_app.should be_nil
13
+ after do
14
+ remove_remote(environment)
15
+ remove_remote(not_a_heroku_env)
30
16
  end
31
17
 
32
- it "can be set" do
33
- Kumade.staging_app = 'orange'
34
- Kumade.staging_app.should == 'orange'
18
+ it "autodetects the Heroku app name" do
19
+ Kumade.app_for(environment).should == app_name
35
20
  end
36
- end
37
21
 
38
- describe Kumade, ".production_remote" do
39
- let(:production_app){ 'purple' }
40
- let(:production_remote){ 'production_test' }
41
-
42
- before do
43
- Kumade.reset!
44
- `git remote add #{production_remote} git@heroku.com:#{production_app}.git`
22
+ it "returns an empty string if the app cannot be found" do
23
+ Kumade.app_for('xyz').should == ""
45
24
  end
46
25
 
47
- after { `git remote rm #{production_remote}` }
48
-
49
- it "can be set" do
50
- Kumade.production_remote = 'orange'
51
- Kumade.production_remote.should == 'orange'
52
- end
53
-
54
- it "is autodetected if production app is set" do
55
- Kumade.production_app = production_app
56
- Kumade.production_remote.should == production_remote
57
- end
58
- end
59
-
60
- describe Kumade, "production app" do
61
- before { Kumade.reset! }
62
-
63
- it "defaults to nil" do
64
- Kumade.production_app.should be_nil
65
- end
66
-
67
- it "can be set" do
68
- Kumade.production_app = 'orange'
69
- Kumade.production_app.should == 'orange'
70
- end
71
- end
72
-
73
- describe Kumade, "heroku_remote_url_for_app" do
74
- it "returns the Heroku remote_url for an app" do
75
- Kumade.heroku_remote_url_for_app('blerg').should == 'git@heroku.com:blerg.git'
26
+ it "returns an empty string if the remote is not a Heroku remote" do
27
+ Kumade.app_for(not_a_heroku_env).should == ""
76
28
  end
77
29
  end
@@ -6,3 +6,16 @@ include RSpec::Mocks::Methods
6
6
 
7
7
  RSpec.configure do |spec|
8
8
  end
9
+
10
+ module GitRemoteHelpers
11
+ def force_add_heroku_remote(remote_name, app_name)
12
+ remove_remote(remote_name)
13
+ `git remote add #{remote_name} git@heroku.com:#{app_name}.git`
14
+ end
15
+
16
+ def remove_remote(remote_name)
17
+ `git remote rm #{remote_name} 2>/dev/null`
18
+ end
19
+ end
20
+
21
+ include GitRemoteHelpers
metadata CHANGED
@@ -1,191 +1,152 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: kumade
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Gabe Berke-Williams
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-07-26 00:00:00 -04:00
12
+ date: 2011-07-29 00:00:00.000000000 -04:00
19
13
  default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: heroku
17
+ requirement: &2153409400 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
23
24
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
+ version_requirements: *2153409400
26
+ - !ruby/object:Gem::Dependency
27
+ name: thor
28
+ requirement: &2153408900 !ruby/object:Gem::Requirement
25
29
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '0.14'
33
34
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: rake
37
35
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
36
+ version_requirements: *2153408900
37
+ - !ruby/object:Gem::Dependency
38
+ name: rake
39
+ requirement: &2153408400 !ruby/object:Gem::Requirement
39
40
  none: false
40
- requirements:
41
+ requirements:
41
42
  - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 49
44
- segments:
45
- - 0
46
- - 8
47
- - 7
43
+ - !ruby/object:Gem::Version
48
44
  version: 0.8.7
49
45
  type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: rspec
53
46
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
47
+ version_requirements: *2153408400
48
+ - !ruby/object:Gem::Dependency
49
+ name: rspec
50
+ requirement: &2153407940 !ruby/object:Gem::Requirement
55
51
  none: false
56
- requirements:
52
+ requirements:
57
53
  - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 23
60
- segments:
61
- - 2
62
- - 6
63
- - 0
54
+ - !ruby/object:Gem::Version
64
55
  version: 2.6.0
65
56
  type: :development
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: cucumber
69
57
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
58
+ version_requirements: *2153407940
59
+ - !ruby/object:Gem::Dependency
60
+ name: cucumber
61
+ requirement: &2153407480 !ruby/object:Gem::Requirement
71
62
  none: false
72
- requirements:
63
+ requirements:
73
64
  - - ~>
74
- - !ruby/object:Gem::Version
75
- hash: 19
76
- segments:
77
- - 1
78
- - 0
79
- - 2
65
+ - !ruby/object:Gem::Version
80
66
  version: 1.0.2
81
67
  type: :development
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: aruba
85
68
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
69
+ version_requirements: *2153407480
70
+ - !ruby/object:Gem::Dependency
71
+ name: aruba
72
+ requirement: &2153407020 !ruby/object:Gem::Requirement
87
73
  none: false
88
- requirements:
74
+ requirements:
89
75
  - - ~>
90
- - !ruby/object:Gem::Version
91
- hash: 9
92
- segments:
93
- - 0
94
- - 4
95
- - 3
76
+ - !ruby/object:Gem::Version
96
77
  version: 0.4.3
97
78
  type: :development
98
- version_requirements: *id005
99
- - !ruby/object:Gem::Dependency
100
- name: jammit
101
79
  prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
80
+ version_requirements: *2153407020
81
+ - !ruby/object:Gem::Dependency
82
+ name: jammit
83
+ requirement: &2153406560 !ruby/object:Gem::Requirement
103
84
  none: false
104
- requirements:
85
+ requirements:
105
86
  - - ~>
106
- - !ruby/object:Gem::Version
107
- hash: 1
108
- segments:
109
- - 0
110
- - 6
111
- - 3
87
+ - !ruby/object:Gem::Version
112
88
  version: 0.6.3
113
89
  type: :development
114
- version_requirements: *id006
90
+ prerelease: false
91
+ version_requirements: *2153406560
115
92
  description: Simple rake tasks for deploying to Heroku
116
- email:
93
+ email:
117
94
  - gabe@thoughtbot.com
118
- executables: []
119
-
95
+ executables:
96
+ - kumade
120
97
  extensions: []
121
-
122
98
  extra_rdoc_files: []
123
-
124
- files:
99
+ files:
125
100
  - .gitignore
101
+ - .travis.yml
126
102
  - Gemfile
127
103
  - README.md
128
104
  - Rakefile
129
- - features/deploying.feature
130
- - features/loading_tasks.feature
131
- - features/namespaced_deploy.feature
132
- - features/step_definitions/stub_steps.rb
133
- - features/step_definitions/task_steps.rb
105
+ - bin/kumade
106
+ - features/kumade_executable.feature
107
+ - features/step_definitions/dependency_steps.rb
108
+ - features/step_definitions/git_steps.rb
134
109
  - features/support/env.rb
135
- - features/support/insert_into_rakefile.rb
136
- - features/support/require_kumade.rb
137
110
  - kumade.gemspec
138
111
  - lib/kumade.rb
139
112
  - lib/kumade/deployer.rb
140
- - lib/kumade/tasks/deploy.rake
141
- - lib/kumade/tasks/namespaced_deploy.rake
113
+ - lib/kumade/thor_task.rb
142
114
  - lib/kumade/version.rb
143
- - spec/deployer_spec.rb
115
+ - spec/kumade/deployer_spec.rb
116
+ - spec/kumade/thor_task_spec.rb
144
117
  - spec/kumade_spec.rb
145
118
  - spec/spec_helper.rb
146
119
  has_rdoc: true
147
- homepage: ""
120
+ homepage: ''
148
121
  licenses: []
149
-
150
122
  post_install_message:
151
123
  rdoc_options: []
152
-
153
- require_paths:
124
+ require_paths:
154
125
  - lib
155
- required_ruby_version: !ruby/object:Gem::Requirement
126
+ required_ruby_version: !ruby/object:Gem::Requirement
156
127
  none: false
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- hash: 3
161
- segments:
162
- - 0
163
- version: "0"
164
- required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
165
133
  none: false
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- hash: 3
170
- segments:
171
- - 0
172
- version: "0"
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
173
138
  requirements: []
174
-
175
139
  rubyforge_project:
176
140
  rubygems_version: 1.6.2
177
141
  signing_key:
178
142
  specification_version: 3
179
143
  summary: Simple rake tasks for deploying to Heroku
180
- test_files:
181
- - features/deploying.feature
182
- - features/loading_tasks.feature
183
- - features/namespaced_deploy.feature
184
- - features/step_definitions/stub_steps.rb
185
- - features/step_definitions/task_steps.rb
144
+ test_files:
145
+ - features/kumade_executable.feature
146
+ - features/step_definitions/dependency_steps.rb
147
+ - features/step_definitions/git_steps.rb
186
148
  - features/support/env.rb
187
- - features/support/insert_into_rakefile.rb
188
- - features/support/require_kumade.rb
189
- - spec/deployer_spec.rb
149
+ - spec/kumade/deployer_spec.rb
150
+ - spec/kumade/thor_task_spec.rb
190
151
  - spec/kumade_spec.rb
191
152
  - spec/spec_helper.rb
@@ -1,23 +0,0 @@
1
- Feature: Deploying to Heroku
2
- In order to easily use Heroku's services
3
- As a user
4
- I want to deploy to Heroku
5
-
6
- Background:
7
- Given a directory named "deployer"
8
- And I cd to "deployer"
9
- And I stub out the "staging" deploy method
10
- And I stub out the "production" deploy method
11
- And I load the non-namespaced tasks
12
-
13
- Scenario: deploy task is an alias for kumade:deploy
14
- When I successfully run the rake task "deploy"
15
- Then the output should contain "Force pushed master -> staging"
16
-
17
- Scenario: Deploying to staging with deploy:staging
18
- When I successfully run the rake task "deploy:staging"
19
- Then the output should contain "Force pushed master -> staging"
20
-
21
- Scenario: Deploying to production with deploy:production
22
- When I successfully run the rake task "deploy:production"
23
- Then the output should contain "Force pushed master -> production"
@@ -1,36 +0,0 @@
1
- Feature: Loading tasks
2
- In order to use Kumade
3
- As a user
4
- I want to load Rake tasks
5
-
6
- Background:
7
- Given a directory named "taskloader"
8
- When I cd to "taskloader"
9
- And I write to "Gemfile" with:
10
- """
11
- source "http://rubygems.org"
12
- gem "rake", "0.8.7"
13
- gem "kumade"
14
- """
15
-
16
- Scenario: Load non-namespaced Rake tasks
17
- When I write to "Rakefile" with:
18
- """
19
- require 'kumade'
20
- Kumade.load_tasks
21
- """
22
- And I run `rake -T`
23
- Then the output should contain "deploy"
24
- And the output should contain "deploy:staging"
25
- And the output should contain "deploy:production"
26
-
27
- Scenario: Load namespaced Rake tasks
28
- When I write to "Rakefile" with:
29
- """
30
- require 'kumade'
31
- Kumade.load_namespaced_tasks
32
- """
33
- And I run `rake -T`
34
- Then the output should contain "kumade:deploy"
35
- And the output should contain "kumade:deploy:staging"
36
- And the output should contain "kumade:deploy:production"