kumade 0.0.2 → 0.0.3

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.
@@ -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"