zenflow 0.8.11 → 0.8.12

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.
@@ -20,60 +20,4 @@ describe Zenflow::Repo do
20
20
  expect(Zenflow::Repo.slug).to eq("zencoder/zenflow")
21
21
  end
22
22
  end
23
-
24
- describe '.is_current_hub?' do
25
- before(:each){
26
- Zenflow::Repo.should_receive(:url).twice.and_return("git@github.com:zencoder/zenflow.git")
27
- }
28
-
29
- context 'when check matches hub' do
30
- it 'returns true' do
31
- expect(Zenflow::Repo.is_current_hub?("github.com")).to eq(true)
32
- end
33
- end
34
-
35
- context 'when check does not match hub' do
36
- it 'returns false' do
37
- expect(Zenflow::Repo.is_current_hub?("my-hub")).to eq(false)
38
- end
39
- end
40
- end
41
-
42
- describe '.is_default_hub?' do
43
- context 'when check is not supplied' do
44
- context 'and current hub matches default hub' do
45
- before(:each){
46
- Zenflow::Repo.should_receive(:url).twice.and_return("git@github.com:zencoder/zenflow.git")
47
- }
48
-
49
- it 'returns true' do
50
- expect(Zenflow::Repo.is_default_hub?).to eq(true)
51
- end
52
- end
53
-
54
- context 'and current hub does not match default hub' do
55
- before(:each){
56
- Zenflow::Repo.should_receive(:url).twice.and_return("git@my-hub:zencoder/zenflow.git")
57
- }
58
-
59
- it 'returns true' do
60
- expect(Zenflow::Repo.is_default_hub?).to eq(false)
61
- end
62
- end
63
- end
64
-
65
- context 'when check is supplied' do
66
- context 'and check matches default hub' do
67
- it 'returns true' do
68
- expect(Zenflow::Repo.is_default_hub?("github.com")).to eq(true)
69
- end
70
- end
71
-
72
- context 'and check does not match default hub' do
73
- it 'returns false' do
74
- expect(Zenflow::Repo.is_default_hub?("my-hub")).to eq(false)
75
- end
76
- end
77
- end
78
- end
79
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zenflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.11
4
+ version: 0.8.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Kittelson
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-07-11 00:00:00.000000000 Z
13
+ date: 2014-08-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor
@@ -191,10 +191,10 @@ files:
191
191
  - bin/zenflow
192
192
  - lib/zenflow.rb
193
193
  - lib/zenflow/cli.rb
194
+ - lib/zenflow/commands/admin.rb
194
195
  - lib/zenflow/commands/deploy.rb
195
196
  - lib/zenflow/commands/feature.rb
196
197
  - lib/zenflow/commands/hotfix.rb
197
- - lib/zenflow/commands/hubs.rb
198
198
  - lib/zenflow/commands/release.rb
199
199
  - lib/zenflow/commands/reviews.rb
200
200
  - lib/zenflow/helpers/ask.rb
@@ -230,17 +230,17 @@ files:
230
230
  - spec/fixtures/cassettes/unexisting_pull_request.yml
231
231
  - spec/spec_helper.rb
232
232
  - spec/support/shared_examples_for_version_number.rb
233
+ - spec/zenflow/cli_spec.rb
234
+ - spec/zenflow/commands/admin_spec.rb
233
235
  - spec/zenflow/commands/deploy_spec.rb
234
236
  - spec/zenflow/commands/feature_spec.rb
235
237
  - spec/zenflow/commands/hotfix_spec.rb
236
- - spec/zenflow/commands/hubs_spec.rb
237
238
  - spec/zenflow/commands/release_spec.rb
238
239
  - spec/zenflow/commands/reviews_spec.rb
239
240
  - spec/zenflow/helpers/ask_spec.rb
240
241
  - spec/zenflow/helpers/branch_command_spec.rb
241
242
  - spec/zenflow/helpers/branch_spec.rb
242
243
  - spec/zenflow/helpers/changelog_spec.rb
243
- - spec/zenflow/helpers/cli_spec.rb
244
244
  - spec/zenflow/helpers/github_spec.rb
245
245
  - spec/zenflow/helpers/help_spec.rb
246
246
  - spec/zenflow/helpers/log_spec.rb
@@ -1,124 +0,0 @@
1
- module Zenflow
2
- class Hubs < Thor
3
-
4
- desc "list", "Show all configured hubs."
5
- def list
6
- Zenflow::Log("Recogized hubs")
7
- Zenflow::Log(Terminal::Table.new(
8
- headings: ['Hub'],
9
- rows: get_list_of_hubs()
10
- ).to_s, indent: false, arrows: false, color: false)
11
- end
12
-
13
- desc "current", "Show the current project's hub."
14
- def current
15
- Zenflow::Log("This project's hub is #{hub_label(Zenflow::Repo.hub)}")
16
- end
17
-
18
- desc "describe [HUB]", "Show configuration details for HUB (current project hub if none specified, or default hub if no current project)."
19
- def describe(hub=nil)
20
- hub = Zenflow::Github.resolve_hub(hub)
21
-
22
- Zenflow::Log("Configuration details for hub #{hub_label(hub)}")
23
-
24
- Zenflow::Log(Terminal::Table.new(
25
- headings: ["Parameter", "Github Config Key", "Github Config Value", "Value (with system defaults)"],
26
- rows: Zenflow::Github.describe_hub(hub)
27
- ).to_s, indent: false, arrows: false, color: false)
28
- end
29
-
30
- desc "config [HUB]", "Configure the specified HUB (current project hub if none specified, or default hub if no current project)."
31
- def config(hub=nil)
32
- hub = Zenflow::Github.resolve_hub(hub)
33
-
34
- Zenflow::Log("Configuring #{hub_label(hub)}")
35
-
36
- config_api_base_url(hub)
37
- config_user(hub)
38
- config_user_agent_base(hub)
39
- end
40
-
41
- desc "authorize [HUB]", "Grab an auth token for HUB (current project hub if none specified, or default hub if no current project)."
42
- def authorize(hub=nil)
43
- hub = Zenflow::Github.resolve_hub(hub)
44
-
45
- Zenflow::Log("Authorizing #{hub_label(hub)}")
46
-
47
- if Zenflow::Github.zenflow_token(hub)
48
- if Zenflow::Ask("You already have a token from GitHub. Do you want to set a new one?", :options => ["y", "N"], :default => "n") == "y"
49
- Zenflow::Github.authorize(hub)
50
- end
51
- else
52
- Zenflow::Github.authorize(hub)
53
- end
54
- end
55
-
56
- no_commands {
57
- def get_list_of_hubs
58
- hub_config_parameters = Zenflow::Shell.run("git config --get-regexp zenflow\.hub\..*", silent: true).split("\n")
59
-
60
- # unique, sorted, list of hubs with at least one valid config key
61
- configured_hubs = hub_config_parameters.inject([]) { |hubs, parameter|
62
- if parameter =~ /^zenflow\.hub\.(.*)\.#{config_keys_regex}\s.*$/
63
- hubs << [hub_label($1)]
64
- end
65
-
66
- hubs
67
- }.sort.uniq
68
-
69
- [
70
- ["#{hub_label(Zenflow::Github::DEFAULT_HUB)}"]
71
- ] + configured_hubs
72
- end
73
-
74
- def hub_label(hub)
75
- "#{hub}#{default_hub_tag(hub)}#{current_hub_tag(hub)}"
76
- end
77
-
78
- def default_hub_tag(hub)
79
- Zenflow::Repo.is_default_hub?(hub) ? " [default]" : ""
80
- end
81
-
82
- def current_hub_tag(hub)
83
- Zenflow::Repo.is_current_hub?(hub) ? " [current]" : ""
84
- end
85
-
86
- def config_keys_regex
87
- "(?:#{Zenflow::Github::CONFIG_KEYS.map { |s| s.gsub('.','\\.') }.join('|')})"
88
- end
89
-
90
- def config_api_base_url(hub)
91
- api_base_url = Zenflow::Github.api_base_url(hub,false)
92
- if api_base_url.to_s != ''
93
- if Zenflow::Ask("The GitHub API base URL for this hub is currently #{api_base_url}. Do you want to use that?", :options => ["Y", "n"], :default => "y") == "n"
94
- Zenflow::Github.set_api_base_url(hub)
95
- end
96
- else
97
- Zenflow::Github.set_api_base_url(hub)
98
- end
99
- end
100
-
101
- def config_user(hub)
102
- user = Zenflow::Github.user(hub)
103
- if user.to_s != ''
104
- if Zenflow::Ask("The GitHub user for this hub is currently #{user}. Do you want to use that?", :options => ["Y", "n"], :default => "y") == "n"
105
- Zenflow::Github.set_user(hub)
106
- end
107
- else
108
- Zenflow::Github.set_user(hub)
109
- end
110
- end
111
-
112
- def config_user_agent_base(hub)
113
- user_agent_base = Zenflow::Github.user_agent_base(hub,false)
114
- if user_agent_base.to_s != ''
115
- if Zenflow::Ask("The GitHub User Agent base for this hub is currently #{user_agent_base}. Do you want to use that?", :options => ["Y", "n"], :default => "y") == "n"
116
- Zenflow::Github.set_user_agent_base(hub)
117
- end
118
- else
119
- Zenflow::Github.set_user_agent_base(hub)
120
- end
121
- end
122
- }
123
- end
124
- end
@@ -1,372 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Zenflow::Hubs do
4
- let(:hubs) { Zenflow::Hubs.new }
5
-
6
- describe '.list' do
7
- it 'lists recognized hubs in git config' do
8
- Zenflow::Shell.should_receive(:run).with("git config --get-regexp zenflow\.hub\..*", silent: true).and_return(
9
- <<EOS
10
- zenflow.hub.hub.1.api.base.url api_base_url
11
- zenflow.hub.yet.another.hub.github.user github_user
12
- zenflow.hub.hub.1.token token
13
- zenflow.hub.my-hub.token token
14
- zenflow.hub.one.more.hub.user.agent.base user_agent_base
15
- zenflow.hub.bad.token.hub.goobers user_agent_base
16
- EOS
17
- )
18
- Zenflow::Repo.should_receive(:is_default_hub?).at_least(:once).with(anything()).and_return(false)
19
- Zenflow::Repo.should_receive(:is_current_hub?).at_least(:once).with(anything()).and_return(false)
20
- Zenflow.should_receive(:Log).with("Recogized hubs")
21
- Terminal::Table.should_receive(:new).with(
22
- headings: ["Hub"],
23
- rows: [
24
- ["github.com"],
25
- ["hub.1"],
26
- ["my-hub"],
27
- ["one.more.hub"],
28
- ["yet.another.hub"]
29
- ]
30
- ).and_return("log-data")
31
- Zenflow.should_receive(:Log).with("log-data", indent: false, arrows: false, color: false)
32
- hubs.list
33
- end
34
- end
35
-
36
- describe '.current' do
37
- it 'logs the hubs of the current project' do
38
- Zenflow::Repo.should_receive(:hub).twice.and_return('my-hub')
39
- Zenflow.should_receive(:Log).with("This project's hub is my-hub [current]")
40
- hubs.current
41
- end
42
- end
43
-
44
- describe '.describe' do
45
- it 'displays config parameters for the hub' do
46
- hubs.should_receive(:hub_label).with('my-hub').and_return('my-hub')
47
- Zenflow.should_receive(:Log).with("Configuration details for hub my-hub")
48
- Zenflow::Github.should_receive(:describe_hub).with('my-hub').and_return([
49
- ["Parameter 1", "Github Config Key 1", "Github Conifg Value 1", "Value 1"],
50
- ["Parameter 2", "Github Config Key 2", "Github Conifg Value 2", "Value 2"],
51
- ["Parameter 3", "Github Config Key 3", "Github Conifg Value 3", "Value 3"]
52
- ])
53
- Terminal::Table.should_receive(:new).with(
54
- headings: ["Parameter", "Github Config Key", "Github Config Value", "Value (with system defaults)"],
55
- rows: [
56
- ["Parameter 1", "Github Config Key 1", "Github Conifg Value 1", "Value 1"],
57
- ["Parameter 2", "Github Config Key 2", "Github Conifg Value 2", "Value 2"],
58
- ["Parameter 3", "Github Config Key 3", "Github Conifg Value 3", "Value 3"]
59
- ]
60
- ).and_return("log-data")
61
- Zenflow.should_receive(:Log).with("log-data", {:indent=>false, :arrows=>false, :color=>false})
62
- hubs.describe('my-hub')
63
- end
64
- end
65
-
66
- describe '.config' do
67
- it 'calls the individual parameter config methods' do
68
- Zenflow::Github.should_receive(:resolve_hub).with('my-hub').and_return('my-hub')
69
- hubs.should_receive(:hub_label).with('my-hub').and_return('my-hub')
70
- Zenflow.should_receive(:Log).with("Configuring my-hub")
71
- hubs.should_receive(:config_api_base_url).with('my-hub')
72
- hubs.should_receive(:config_user).with('my-hub')
73
- hubs.should_receive(:config_user_agent_base).with('my-hub')
74
- hubs.config('my-hub')
75
- end
76
- end
77
-
78
- describe '.config_user' do
79
- context 'when a github user is already saved' do
80
- before do
81
- Zenflow::Github.should_receive(:user).and_return('user')
82
- end
83
-
84
- context 'and the user decides to set a new one' do
85
- before do
86
- Zenflow.should_receive(:Ask).and_return('n')
87
- end
88
-
89
- it 'asks for a user' do
90
- Zenflow::Github.should_receive(:set_user)
91
- hubs.config_user('my-hub')
92
- end
93
- end
94
-
95
- context 'and the user decides not to set a new one' do
96
- before do
97
- Zenflow.should_receive(:Ask).and_return('y')
98
- end
99
-
100
- it 'does not ask for a user' do
101
- Zenflow::Github.should_not_receive(:set_user)
102
- hubs.config_user('my-hub')
103
- end
104
- end
105
- end
106
-
107
- context 'when a user is not already saved' do
108
- before do
109
- Zenflow::Github.should_receive(:user).and_return(nil)
110
- end
111
-
112
- it 'asks for a user' do
113
- Zenflow::Github.should_receive(:set_user)
114
- hubs.config_user('my-hub')
115
- end
116
- end
117
- end
118
-
119
- describe '.authorize' do
120
- before do
121
- Zenflow::Github.should_receive(:resolve_hub).with('my-hub').and_return('my-hub')
122
- hubs.should_receive(:hub_label).with('my-hub').and_return('my-hub')
123
- Zenflow.should_receive(:Log).with("Authorizing my-hub")
124
- end
125
-
126
- context 'when a zenflow_token is already saved' do
127
- before do
128
- Zenflow::Github.should_receive(:zenflow_token).and_return('super secret token')
129
- end
130
-
131
- context 'and the user decides to set a new one' do
132
- before do
133
- Zenflow.should_receive(:Ask).and_return('y')
134
- end
135
-
136
- it 'authorizes with Github' do
137
- Zenflow::Github.should_receive(:authorize).with('my-hub')
138
- hubs.authorize('my-hub')
139
- end
140
- end
141
-
142
- context 'and the user decides not to set a new one' do
143
- before do
144
- Zenflow.should_receive(:Ask).and_return('n')
145
- end
146
-
147
- it 'does not authorize with Github' do
148
- Zenflow::Github.should_not_receive(:authorize)
149
- hubs.authorize('my-hub')
150
- end
151
- end
152
- end
153
-
154
- context 'when a zenflow_token is not already saved' do
155
- before do
156
- Zenflow::Github.should_receive(:zenflow_token).and_return(nil)
157
- end
158
-
159
- it 'authorizes with Github' do
160
- Zenflow::Github.should_receive(:authorize).with('my-hub')
161
- hubs.authorize('my-hub')
162
- end
163
- end
164
- end
165
-
166
- describe '.hub_label' do
167
- context 'hub is default hub' do
168
- context 'hub is current hub' do
169
- before(:each){
170
- Zenflow::Repo.should_receive(:hub).and_return(Zenflow::Github::DEFAULT_HUB)
171
- }
172
-
173
- it 'returns the expected label' do
174
- expect(hubs.hub_label(Zenflow::Github::DEFAULT_HUB)).to eq("#{Zenflow::Github::DEFAULT_HUB} [default] [current]")
175
- end
176
- end
177
-
178
- context 'hub is not current hub' do
179
- before(:each){
180
- Zenflow::Repo.should_receive(:hub).and_return('current-hub')
181
- }
182
-
183
- it 'returns the expected label' do
184
- expect(hubs.hub_label(Zenflow::Github::DEFAULT_HUB)).to eq("#{Zenflow::Github::DEFAULT_HUB} [default]")
185
- end
186
- end
187
- end
188
-
189
- context 'hub is not default hub' do
190
- context 'hub is current hub' do
191
- before(:each){
192
- Zenflow::Repo.should_receive(:hub).and_return('current-hub')
193
- }
194
-
195
- it 'returns the expected label' do
196
- expect(hubs.hub_label('current-hub')).to eq('current-hub [current]')
197
- end
198
- end
199
-
200
- context 'hub is not current hub' do
201
- before(:each){
202
- Zenflow::Repo.should_receive(:hub).and_return('default-hub')
203
- }
204
-
205
- it 'returns the expected label' do
206
- expect(hubs.hub_label('not-current-hub')).to eq('not-current-hub')
207
- end
208
- end
209
- end
210
- end
211
-
212
- describe '.default_hub_tag' do
213
- context 'hub is default hub' do
214
- it 'returns the expected tag' do
215
- expect(hubs.default_hub_tag(Zenflow::Github::DEFAULT_HUB)).to eq(' [default]')
216
- end
217
- end
218
-
219
- context 'hub is not default hub' do
220
- it 'returns the expected tag' do
221
- expect(hubs.default_hub_tag('not-default-hub')).to eq('')
222
- end
223
- end
224
- end
225
-
226
- describe '.current_hub_tag' do
227
- before(:each){
228
- Zenflow::Repo.should_receive(:hub).and_return('current-hub')
229
- }
230
-
231
- context 'hub is current hub' do
232
- it 'returns the expected tag' do
233
- expect(hubs.current_hub_tag('current-hub')).to eq(' [current]')
234
- end
235
- end
236
-
237
- context 'hub is not current hub' do
238
- it 'returns the expected tag' do
239
- expect(hubs.current_hub_tag('not-current-hub')).to eq('')
240
- end
241
- end
242
- end
243
-
244
- describe '.config_key_regex' do
245
- it 'returns the expected regex' do
246
- expect(hubs.config_keys_regex).to eq('(?:api\\.base\\.url|github\\.user|token|user\\.agent\\.base)')
247
- end
248
- end
249
-
250
- describe '.config_api_base_url' do
251
- context 'when a github api base url is already saved' do
252
- before do
253
- Zenflow::Github.should_receive(:api_base_url).and_return('api-base-url')
254
- end
255
-
256
- context 'and the user decides to set a new one' do
257
- before do
258
- Zenflow.should_receive(:Ask).and_return('n')
259
- end
260
-
261
- it 'asks for an api base url' do
262
- Zenflow::Github.should_receive(:set_api_base_url)
263
- hubs.config_api_base_url('my-hub')
264
- end
265
- end
266
-
267
- context 'and the user decides not to set a new one' do
268
- before do
269
- Zenflow.should_receive(:Ask).and_return('y')
270
- end
271
-
272
- it 'does not ask for an api base url' do
273
- Zenflow::Github.should_not_receive(:set_api_base_url)
274
- hubs.config_api_base_url('my-hub')
275
- end
276
- end
277
- end
278
-
279
- context 'when an api base url is not already saved' do
280
- before do
281
- Zenflow::Github.should_receive(:api_base_url).and_return(nil)
282
- end
283
-
284
- it 'asks for an api base url' do
285
- Zenflow::Github.should_receive(:set_api_base_url)
286
- hubs.config_api_base_url('my-hub')
287
- end
288
- end
289
- end
290
-
291
- describe '.config_user' do
292
- context 'when a github user is already saved' do
293
- before do
294
- Zenflow::Github.should_receive(:user).and_return('user')
295
- end
296
-
297
- context 'and the user decides to set a new one' do
298
- before do
299
- Zenflow.should_receive(:Ask).and_return('n')
300
- end
301
-
302
- it 'asks for a user' do
303
- Zenflow::Github.should_receive(:set_user)
304
- hubs.config_user('my-hub')
305
- end
306
- end
307
-
308
- context 'and the user decides not to set a new one' do
309
- before do
310
- Zenflow.should_receive(:Ask).and_return('y')
311
- end
312
-
313
- it 'does not ask for a user' do
314
- Zenflow::Github.should_not_receive(:set_user)
315
- hubs.config_user('my-hub')
316
- end
317
- end
318
- end
319
-
320
- context 'when a user is not already saved' do
321
- before do
322
- Zenflow::Github.should_receive(:user).and_return(nil)
323
- end
324
-
325
- it 'asks for a user' do
326
- Zenflow::Github.should_receive(:set_user)
327
- hubs.config_user('my-hub')
328
- end
329
- end
330
- end
331
-
332
- describe '.config_user_agent_base' do
333
- context 'when a github user agent base is already saved' do
334
- before do
335
- Zenflow::Github.should_receive(:user_agent_base).and_return('user-agent-base')
336
- end
337
-
338
- context 'and the user decides to set a new one' do
339
- before do
340
- Zenflow.should_receive(:Ask).and_return('n')
341
- end
342
-
343
- it 'asks for a user agent base' do
344
- Zenflow::Github.should_receive(:set_user_agent_base)
345
- hubs.config_user_agent_base('my-hub')
346
- end
347
- end
348
-
349
- context 'and the user decides not to set a new one' do
350
- before do
351
- Zenflow.should_receive(:Ask).and_return('y')
352
- end
353
-
354
- it 'does not ask for a user agent base' do
355
- Zenflow::Github.should_not_receive(:set_user_agent_base)
356
- hubs.config_user_agent_base('my-hub')
357
- end
358
- end
359
- end
360
-
361
- context 'when a user agent base is not already saved' do
362
- before do
363
- Zenflow::Github.should_receive(:user_agent_base).and_return(nil)
364
- end
365
-
366
- it 'asks for a user agent base' do
367
- Zenflow::Github.should_receive(:set_user_agent_base)
368
- hubs.config_user_agent_base('my-hub')
369
- end
370
- end
371
- end
372
- end