abak-flow 1.0.10 → 1.1.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.
- checksums.yaml +15 -0
- data/README.md +49 -34
- data/abak-flow.gemspec +1 -3
- data/lib/abak-flow.rb +18 -14
- data/lib/abak-flow/branch.rb +9 -10
- data/lib/abak-flow/commands/checkup.rb +11 -14
- data/lib/abak-flow/commands/compare.rb +14 -24
- data/lib/abak-flow/commands/configure.rb +108 -0
- data/lib/abak-flow/commands/done.rb +80 -0
- data/lib/abak-flow/commands/publish.rb +62 -0
- data/lib/abak-flow/configuration.rb +66 -43
- data/lib/abak-flow/errors_presenter.rb +31 -0
- data/lib/abak-flow/inspector.rb +36 -0
- data/lib/abak-flow/locale.rb +45 -0
- data/lib/abak-flow/locales/en.yml +78 -40
- data/lib/abak-flow/locales/ru.yml +78 -40
- data/lib/abak-flow/manager.rb +28 -8
- data/lib/abak-flow/pull_request.rb +21 -30
- data/lib/abak-flow/repository.rb +17 -32
- data/lib/abak-flow/request.rb +18 -80
- data/lib/abak-flow/version.rb +1 -1
- data/spec/lib/abak-flow/commands/checkup_spec.rb +7 -7
- data/spec/lib/abak-flow/commands/compare_spec.rb +9 -8
- metadata +41 -76
- data/lib/abak-flow/visitor.rb +0 -63
data/lib/abak-flow/version.rb
CHANGED
@@ -4,31 +4,31 @@ require "spec_helper"
|
|
4
4
|
describe Abak::Flow::Commands::Checkup do
|
5
5
|
let(:command) { described_class.new }
|
6
6
|
let(:options) { double("Options") }
|
7
|
+
let(:locale) { Abak::Flow::Locale.new("en") }
|
7
8
|
let(:run) { command.run(Array.new, options) }
|
8
9
|
let(:manager) do
|
9
10
|
double("Manager", configuration: configuration,
|
10
|
-
repository: repository)
|
11
|
+
repository: repository, locale: locale)
|
11
12
|
end
|
12
13
|
|
13
14
|
before do
|
14
15
|
I18n.stub(:t) { |args| args }
|
15
16
|
|
16
17
|
Abak::Flow::Manager.stub(instance: manager)
|
17
|
-
Abak::Flow::Visitor.any_instance.stub(:say) { |args| args }
|
18
18
|
Abak::Flow::Commands::Checkup.any_instance.stub(:say) { |args| args }
|
19
19
|
end
|
20
20
|
|
21
21
|
context "when no errors occurred" do
|
22
|
-
let(:repository) { double("Repository",
|
23
|
-
let(:configuration) { double("Configuration",
|
22
|
+
let(:repository) { double("Repository", valid?: true, errors: Array.new) }
|
23
|
+
let(:configuration) { double("Configuration", valid?: true, errors: Array.new) }
|
24
24
|
|
25
25
|
it { expect(run).to include "commands.checkup.success" }
|
26
26
|
end
|
27
27
|
|
28
28
|
context "when errors occurred" do
|
29
|
-
let(:repository) { double("Repository",
|
30
|
-
let(:configuration) { double("Configuration",
|
29
|
+
let(:repository) { double("Repository", valid?: false, errors: ["Damn"]) }
|
30
|
+
let(:configuration) { double("Configuration", valid?: true, errors: Array.new) }
|
31
31
|
|
32
32
|
it { expect { run }.to raise_error SystemExit }
|
33
33
|
end
|
34
|
-
end
|
34
|
+
end
|
@@ -4,15 +4,17 @@ require "spec_helper"
|
|
4
4
|
describe Abak::Flow::Commands::Compare do
|
5
5
|
let(:command) { described_class.new }
|
6
6
|
let(:options) { double("Options") }
|
7
|
-
let(:
|
7
|
+
let(:locale) { Abak::Flow::Locale.new("en") }
|
8
8
|
let(:git) { double("Git") }
|
9
9
|
let(:github) { double("Github", web_endpoint: "github.com") }
|
10
10
|
let(:master) { double("Master branch", name: "master", full: "master", to_s: "master") }
|
11
11
|
let(:develop) { double("Develop branch", name: "develop", full: "develop", to_s: "develop") }
|
12
12
|
let(:noname) { double("Noname branch", name: "noname", full: "noname", to_s: "noname") }
|
13
|
+
let(:run) { command.run(Array.new, options) }
|
13
14
|
let(:manager) do
|
14
15
|
double("Manager", configuration: configuration,
|
15
|
-
repository: repository,
|
16
|
+
repository: repository, locale: locale,
|
17
|
+
git: git, github: github)
|
16
18
|
end
|
17
19
|
|
18
20
|
before do
|
@@ -20,21 +22,20 @@ describe Abak::Flow::Commands::Compare do
|
|
20
22
|
I18n.stub(:t) { |args| args }
|
21
23
|
|
22
24
|
Abak::Flow::Manager.stub(instance: manager)
|
23
|
-
Abak::Flow::Visitor.any_instance.stub(:say) { |args| args }
|
24
25
|
Abak::Flow::Commands::Compare.any_instance.stub(:say) { |args| args }
|
25
26
|
Abak::Flow::Commands::Checkup.any_instance.stub(:say) { |args| args }
|
26
27
|
end
|
27
28
|
|
28
29
|
context "when errors occurred" do
|
29
|
-
let(:repository) { double("Repository",
|
30
|
-
let(:configuration) { double("Configuration",
|
30
|
+
let(:repository) { double("Repository", valid?: false, errors: ["Damn"]) }
|
31
|
+
let(:configuration) { double("Configuration", valid?: true, errors: Array.new) }
|
31
32
|
|
32
33
|
it { expect { run }.to raise_error SystemExit }
|
33
34
|
end
|
34
35
|
|
35
36
|
context "when no errors occurred" do
|
36
|
-
let(:repository) { double("Repository",
|
37
|
-
let(:configuration) { double("Configuration",
|
37
|
+
let(:repository) { double("Repository", valid?: true, errors: Array.new, origin: origin, upstream: upstream) }
|
38
|
+
let(:configuration) { double("Configuration", valid?: true, errors: Array.new) }
|
38
39
|
let(:origin) { double("Origin", repo: "origin-repo/flow", to_s: "origin-repo/flow") }
|
39
40
|
let(:upstream) { double("Upstream", owner: "User") }
|
40
41
|
|
@@ -96,4 +97,4 @@ describe Abak::Flow::Commands::Compare do
|
|
96
97
|
end
|
97
98
|
end
|
98
99
|
end
|
99
|
-
end
|
100
|
+
end
|
metadata
CHANGED
@@ -1,176 +1,141 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: abak-flow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 1.0.10
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Strech (aka Sergey Fedorov)
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-08-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: octokit
|
16
|
-
version_requirements: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 1.19.0
|
22
15
|
requirement: !ruby/object:Gem::Requirement
|
23
|
-
none: false
|
24
16
|
requirements:
|
25
17
|
- - ~>
|
26
18
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.
|
19
|
+
version: 3.1.0
|
28
20
|
type: :runtime
|
29
21
|
prerelease: false
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: git
|
32
22
|
version_requirements: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
23
|
requirements:
|
35
24
|
- - ~>
|
36
25
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.
|
26
|
+
version: 3.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: git
|
38
29
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
30
|
requirements:
|
41
31
|
- - ~>
|
42
32
|
- !ruby/object:Gem::Version
|
43
33
|
version: 1.2.5
|
44
34
|
type: :runtime
|
45
35
|
prerelease: false
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: commander
|
48
36
|
version_requirements: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
37
|
requirements:
|
51
38
|
- - ~>
|
52
39
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
40
|
+
version: 1.2.5
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: commander
|
54
43
|
requirement: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
44
|
requirements:
|
57
45
|
- - ~>
|
58
46
|
- !ruby/object:Gem::Version
|
59
47
|
version: 4.1.6
|
60
48
|
type: :runtime
|
61
49
|
prerelease: false
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: ruler
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
51
|
requirements:
|
67
52
|
- - ~>
|
68
53
|
- !ruby/object:Gem::Version
|
69
|
-
version: 1.
|
54
|
+
version: 4.1.6
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: ruler
|
70
57
|
requirement: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
58
|
requirements:
|
73
59
|
- - ~>
|
74
60
|
- !ruby/object:Gem::Version
|
75
61
|
version: 1.4.2
|
76
62
|
type: :runtime
|
77
63
|
prerelease: false
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: i18n
|
80
64
|
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
65
|
requirements:
|
83
66
|
- - ~>
|
84
67
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
68
|
+
version: 1.4.2
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: i18n
|
86
71
|
requirement: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
72
|
requirements:
|
89
73
|
- - ~>
|
90
74
|
- !ruby/object:Gem::Version
|
91
75
|
version: 0.6.9
|
92
76
|
type: :runtime
|
93
77
|
prerelease: false
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: ansi
|
96
78
|
version_requirements: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
79
|
requirements:
|
99
80
|
- - ~>
|
100
81
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
82
|
+
version: 0.6.9
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: ansi
|
102
85
|
requirement: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
86
|
requirements:
|
105
87
|
- - ~>
|
106
88
|
- !ruby/object:Gem::Version
|
107
89
|
version: 1.4.3
|
108
90
|
type: :runtime
|
109
91
|
prerelease: false
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: faraday
|
112
92
|
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
93
|
requirements:
|
115
|
-
- -
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.8.9
|
118
|
-
requirement: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
|
-
requirements:
|
121
|
-
- - '='
|
94
|
+
- - ~>
|
122
95
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
124
|
-
type: :runtime
|
125
|
-
prerelease: false
|
96
|
+
version: 1.4.3
|
126
97
|
- !ruby/object:Gem::Dependency
|
127
98
|
name: cane
|
128
|
-
version_requirements: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ! '>='
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0'
|
134
99
|
requirement: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
100
|
requirements:
|
137
101
|
- - ! '>='
|
138
102
|
- !ruby/object:Gem::Version
|
139
103
|
version: '0'
|
140
104
|
type: :development
|
141
105
|
prerelease: false
|
142
|
-
- !ruby/object:Gem::Dependency
|
143
|
-
name: simplecov
|
144
106
|
version_requirements: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
107
|
requirements:
|
147
108
|
- - ! '>='
|
148
109
|
- !ruby/object:Gem::Version
|
149
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov
|
150
113
|
requirement: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
114
|
requirements:
|
153
115
|
- - ! '>='
|
154
116
|
- !ruby/object:Gem::Version
|
155
117
|
version: '0'
|
156
118
|
type: :development
|
157
119
|
prerelease: false
|
158
|
-
- !ruby/object:Gem::Dependency
|
159
|
-
name: rspec
|
160
120
|
version_requirements: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
121
|
requirements:
|
163
|
-
- -
|
122
|
+
- - ! '>='
|
164
123
|
- !ruby/object:Gem::Version
|
165
|
-
version: '
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rspec
|
166
127
|
requirement: !ruby/object:Gem::Requirement
|
167
|
-
none: false
|
168
128
|
requirements:
|
169
129
|
- - ~>
|
170
130
|
- !ruby/object:Gem::Version
|
171
131
|
version: '2.14'
|
172
132
|
type: :development
|
173
133
|
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ~>
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.14'
|
174
139
|
description: Простой набор правил и комманд, заточеных для работы в git-flow с использование
|
175
140
|
в качестве удаленного репозитория github
|
176
141
|
email:
|
@@ -191,7 +156,13 @@ files:
|
|
191
156
|
- lib/abak-flow/branch.rb
|
192
157
|
- lib/abak-flow/commands/checkup.rb
|
193
158
|
- lib/abak-flow/commands/compare.rb
|
159
|
+
- lib/abak-flow/commands/configure.rb
|
160
|
+
- lib/abak-flow/commands/done.rb
|
161
|
+
- lib/abak-flow/commands/publish.rb
|
194
162
|
- lib/abak-flow/configuration.rb
|
163
|
+
- lib/abak-flow/errors_presenter.rb
|
164
|
+
- lib/abak-flow/inspector.rb
|
165
|
+
- lib/abak-flow/locale.rb
|
195
166
|
- lib/abak-flow/locales/en.yml
|
196
167
|
- lib/abak-flow/locales/ru.yml
|
197
168
|
- lib/abak-flow/manager.rb
|
@@ -199,7 +170,6 @@ files:
|
|
199
170
|
- lib/abak-flow/repository.rb
|
200
171
|
- lib/abak-flow/request.rb
|
201
172
|
- lib/abak-flow/version.rb
|
202
|
-
- lib/abak-flow/visitor.rb
|
203
173
|
- spec/lib/abak-flow/branch_spec.rb
|
204
174
|
- spec/lib/abak-flow/commands/checkup_spec.rb
|
205
175
|
- spec/lib/abak-flow/commands/compare_spec.rb
|
@@ -207,30 +177,25 @@ files:
|
|
207
177
|
homepage: https://github.com/Strech/abak-flow
|
208
178
|
licenses:
|
209
179
|
- MIT
|
180
|
+
metadata: {}
|
210
181
|
post_install_message:
|
211
182
|
rdoc_options: []
|
212
183
|
require_paths:
|
213
184
|
- lib
|
214
185
|
required_ruby_version: !ruby/object:Gem::Requirement
|
215
|
-
none: false
|
216
186
|
requirements:
|
217
187
|
- - ! '>='
|
218
188
|
- !ruby/object:Gem::Version
|
219
189
|
version: '0'
|
220
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
221
|
-
none: false
|
222
191
|
requirements:
|
223
192
|
- - ! '>='
|
224
193
|
- !ruby/object:Gem::Version
|
225
194
|
version: '0'
|
226
195
|
requirements: []
|
227
196
|
rubyforge_project: abak-flow
|
228
|
-
rubygems_version:
|
197
|
+
rubygems_version: 2.2.2
|
229
198
|
signing_key:
|
230
|
-
specification_version:
|
199
|
+
specification_version: 4
|
231
200
|
summary: Совмещение 2-х подходов разработки Git-flow & Github-flow
|
232
|
-
test_files:
|
233
|
-
- spec/lib/abak-flow/branch_spec.rb
|
234
|
-
- spec/lib/abak-flow/commands/checkup_spec.rb
|
235
|
-
- spec/lib/abak-flow/commands/compare_spec.rb
|
236
|
-
- spec/spec_helper.rb
|
201
|
+
test_files: []
|
data/lib/abak-flow/visitor.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require "ansi/code"
|
3
|
-
|
4
|
-
module Abak::Flow
|
5
|
-
class Visitor
|
6
|
-
def initialize(*args)
|
7
|
-
options = args.pop if args.last.is_a?(Hash)
|
8
|
-
|
9
|
-
@objects = args
|
10
|
-
@call = options.fetch(:call)
|
11
|
-
@inspect = options.fetch(:inspect)
|
12
|
-
@command = options.fetch(:command, "default")
|
13
|
-
|
14
|
-
@asked = false
|
15
|
-
end
|
16
|
-
|
17
|
-
def ready?
|
18
|
-
@asked = true
|
19
|
-
|
20
|
-
ready = @objects.map { |o| o.send(@call) }.uniq
|
21
|
-
ready.size == 1 && ready.first
|
22
|
-
end
|
23
|
-
|
24
|
-
def output
|
25
|
-
ready? unless asked?
|
26
|
-
|
27
|
-
@objects.map do |o|
|
28
|
-
next if o.send(@inspect).empty?
|
29
|
-
|
30
|
-
info = ""
|
31
|
-
name = o.respond_to?(:display_name) ? o.display_name : o.class.name
|
32
|
-
o.send(@inspect).each_with_index do |inf, idx|
|
33
|
-
info << "\n #{idx + 1}. #{inf}"
|
34
|
-
end
|
35
|
-
|
36
|
-
"\n#{name}#{info}"
|
37
|
-
end * "\n"
|
38
|
-
end
|
39
|
-
|
40
|
-
def exit_on_fail(command, code = 1)
|
41
|
-
return if ready?
|
42
|
-
|
43
|
-
say ANSI.red { I18n.t("commands.#{command}.fail") }
|
44
|
-
say ANSI.yellow { output }
|
45
|
-
|
46
|
-
exit(code)
|
47
|
-
end
|
48
|
-
|
49
|
-
def on_fail(options = Hash.new, &block)
|
50
|
-
return if ready?
|
51
|
-
|
52
|
-
say ANSI.red { I18n.t("commands.#{@command}.fail") }
|
53
|
-
say ANSI.yellow { output }
|
54
|
-
|
55
|
-
exit(options[:exit]) if options.key?(:exit)
|
56
|
-
end
|
57
|
-
|
58
|
-
private
|
59
|
-
def asked?
|
60
|
-
@asked
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|