abak-flow 1.0.3 → 1.0.4

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.
data/.travis.yml CHANGED
@@ -1,7 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
- branches:
5
- only:
6
- - release-1.0
7
- bundler_args: --without linux mac
4
+ - 2.0.0
5
+ - 2.1.0
6
+ script: bundle exec rspec
data/Rakefile CHANGED
@@ -1,15 +1,12 @@
1
1
  require "bundler/gem_tasks"
2
-
3
- require "yard"
4
- require "yard-tomdoc"
5
2
  require "cane/rake_task"
6
3
  require "rspec/core/rake_task"
7
4
 
8
5
  desc "Ready check"
9
- task default: [:quality, :coverage, :doc]
6
+ task default: [:quality, :coverage]
10
7
 
11
8
  RSpec::Core::RakeTask.new(:coverage) do |rspec|
12
- ENV["COVERAGE"] = "true"
9
+ ENV["C"] = "true"
13
10
  end
14
11
 
15
12
  Cane::RakeTask.new(:quality) do |cane|
@@ -18,9 +15,4 @@ Cane::RakeTask.new(:quality) do |cane|
18
15
  cane.style_exclude = %w({lib}/abak-flow/request.rb)
19
16
  cane.style_measure = 120
20
17
  cane.parallel = false
21
- end
22
-
23
- YARD::Rake::YardocTask.new(:doc) do |yard|
24
- yard.files = %w({apps,models,lib}/**/*.rb)
25
- yard.options = %w(--embed-mixins --protected --plugin tomdoc)
26
18
  end
data/abak-flow.gemspec CHANGED
@@ -21,10 +21,14 @@ Gem::Specification.new do |gem|
21
21
  gem.require_paths = ["lib"]
22
22
 
23
23
  gem.add_runtime_dependency "octokit", "~> 1.19.0"
24
- gem.add_dependency "faraday", "= 0.8.9" # TODO : remove after octokit upgrade
24
+ gem.add_runtime_dependency "faraday", "= 0.8.9" # TODO : remove after octokit upgrade
25
25
  gem.add_runtime_dependency "git", "~> 1.2.5"
26
26
  gem.add_runtime_dependency "commander", ">= 4.1.3"
27
27
  gem.add_runtime_dependency "ruler", ">= 1.4.2"
28
28
  gem.add_runtime_dependency "i18n", ">= 0.6.1"
29
29
  gem.add_runtime_dependency "ansi", ">= 1.4.3"
30
+
31
+ gem.add_development_dependency "cane"
32
+ gem.add_development_dependency "simplecov"
33
+ gem.add_development_dependency "rspec", "~> 2.14"
30
34
  end
data/bin/request CHANGED
@@ -1,3 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
  # coding: utf-8
3
3
  require 'abak-flow'
4
+ require 'abak-flow/request'
@@ -4,7 +4,9 @@ module Abak::Flow
4
4
  class Branch
5
5
  FOLDER_HOTFIX = "hotfix".freeze
6
6
  FOLDER_FEATURE = "feature".freeze
7
- TASK_FORMAT = /^\w+\-\d{1,}$/.freeze
7
+ TASK_FORMAT = '\w+\-\d{1,}'.freeze
8
+ MAGICK_WORDS = %w{close closes closed fix fixes fixed
9
+ resolve resolves resolved}.freeze
8
10
 
9
11
  DEVELOPMENT = "develop".freeze
10
12
  MASTER = "master".freeze
@@ -14,27 +16,30 @@ module Abak::Flow
14
16
  FOLDER_FEATURE => DEVELOPMENT
15
17
  }.freeze
16
18
 
17
- def initialize(branch, manager)
18
- @manager = manager
19
+ attr_reader :folder
20
+ attr_reader :task
21
+
22
+ def initialize(branch)
23
+ @manager = Manager.instance
19
24
  @branch = branch.is_a?(Git::Branch) ? branch
20
- : manager.git.branch(branch)
25
+ : @manager.git.branch(branch)
26
+
27
+ parse_branch_name
21
28
  end
22
29
 
23
30
  def name
24
31
  @branch.full
25
32
  end
26
33
 
27
- # TODO : Брать коммит мессадж до перевода строки
28
34
  def message
29
- @branch.gcommit.message
30
- end
35
+ content = @branch.gcommit.message.split("\n", 2).first
36
+ return content if content.length < 72
31
37
 
32
- def folder
33
- split_prefix_and_task.first
38
+ content[0...72] << "..."
34
39
  end
35
40
 
36
- def task
37
- split_prefix_and_task.last
41
+ def to_s
42
+ @branch.to_s
38
43
  end
39
44
 
40
45
  def compare_link(branch)
@@ -47,6 +52,25 @@ module Abak::Flow
47
52
  ]
48
53
  end
49
54
 
55
+ def extract_base_name(options = Hash.new)
56
+ mappable? ? MAPPING[folder]
57
+ : options.fetch(:if_undef, name)
58
+ end
59
+
60
+ def extract_title
61
+ tracker_task? ? task
62
+ : message
63
+ end
64
+
65
+ # TODO : Сделать настраевыемым трекер и формат задачи
66
+ def extract_body
67
+ return I18n.t("commands.publish.nothing") if
68
+ tasks_from_commit_message.empty? && !tracker_task?
69
+
70
+ [tasks_from_commit_message, task].flatten
71
+ .map { |x| "http://jira.railsc.ru/browse/#{x}" } * "\n"
72
+ end
73
+
50
74
  def update
51
75
  origin = @manager.repository.origin.repo
52
76
  @manager.git.push(origin, @branch)
@@ -61,30 +85,12 @@ module Abak::Flow
61
85
  @branch.delete
62
86
  end
63
87
 
64
- def pick_up_base_name(options = Hash.new)
65
- mappable? ? MAPPING[folder]
66
- : options.fetch(:or_use, name)
67
- end
68
-
69
- def pick_up_title
70
- tracker_task? ? task
71
- : message
72
- end
73
-
74
- # TODO : Сделать настраевыемым трекер и формат задачи
75
- # TODO : Смотреть в коммит мессадж и искать там Fixes/Closes/Close/Fix
76
- def pick_up_body
77
- head.mappable? &&
78
- head.tracker_task? ? "http://jira.railsc.ru/browse/#{task}"
79
- : I18n.t("commands.publish.nothing")
80
- end
81
-
82
88
  def develop?
83
- @branch.name == DEVELOPMENT
89
+ name == DEVELOPMENT
84
90
  end
85
91
 
86
92
  def master?
87
- @branch.name == MASTER
93
+ name == MASTER
88
94
  end
89
95
 
90
96
  def hotfix?
@@ -96,7 +102,7 @@ module Abak::Flow
96
102
  end
97
103
 
98
104
  def tracker_task?
99
- !(task =~ TASK_FORMAT).nil?
105
+ !(task =~ /^#{TASK_FORMAT}$/).nil?
100
106
  end
101
107
 
102
108
  def mappable?
@@ -111,18 +117,19 @@ module Abak::Flow
111
117
  !@branch.name.empty?
112
118
  end
113
119
 
114
- def to_s
115
- @branch.to_s
116
- end
117
-
118
120
  private
119
- def split_prefix_and_task
120
- return @folder_and_task if defined? @folder_and_task
121
+ def tasks_from_commit_message
122
+ @parsed_tasks ||=
123
+ @branch.gcommit.message
124
+ .scan(/(?:#{MAGICK_WORDS * "|"})\s+(#{TASK_FORMAT})/i)
125
+ .reject { |x| x == task.to_s }
126
+ end
121
127
 
128
+ def parse_branch_name
122
129
  matches = name.match(/^(?<prefix>.+)\/(?<task>.+)$/)
123
130
 
124
- @folder_and_task = matches.nil? ? [nil, nil]
125
- : [matches[:prefix], matches[:task]]
131
+ @folder, @task = matches.nil? ? [nil, nil]
132
+ : [matches[:prefix], matches[:task]]
126
133
  end
127
134
  end
128
135
  end
@@ -1,16 +1,16 @@
1
1
  # coding: utf-8
2
2
  require "git"
3
3
  require "octokit"
4
+ require "singleton"
4
5
 
5
6
  module Abak::Flow
6
7
  class Manager
8
+ include Singleton
7
9
 
8
10
  def initialize
9
11
  # preload dependencies
10
12
  configuration
11
13
  repository
12
-
13
- yield self if block_given?
14
14
  end
15
15
 
16
16
  def configuration
@@ -15,7 +15,7 @@ module Abak::Flow
15
15
  c.description = "Проверить все ли настроено для работы с github и удаленными репозиториями"
16
16
 
17
17
  c.action do |args, options|
18
- m = Manager.new
18
+ m = Manager.instance
19
19
  v = Visitor.new(m.configuration, m.repository, call: :ready?, inspect: :errors)
20
20
  v.exit_on_fail(:checkup, 1)
21
21
 
@@ -31,13 +31,13 @@ module Abak::Flow
31
31
  c.option "--head STRING", String, "Имя ветки которую нужно сравнить"
32
32
 
33
33
  c.action do |args, options|
34
- m = Manager.new
34
+ m = Manager.instance
35
35
  v = Visitor.new(m.configuration, m.repository, call: :ready?, inspect: :errors)
36
36
  v.exit_on_fail(:compare, 1)
37
37
 
38
38
  current = m.git.current_branch
39
- head = Branch.new(options.head || current, m)
40
- base = Branch.new(options.base || head.pick_up_base_name, m)
39
+ head = Branch.new(options.head || current)
40
+ base = Branch.new(options.base || head.extract_base_name)
41
41
 
42
42
  if head.current?
43
43
  say ANSI.white {
@@ -65,13 +65,13 @@ module Abak::Flow
65
65
  c.option "--base STRING", String, "Имя ветки, в которую нужно принять изменения"
66
66
 
67
67
  c.action do |args, options|
68
- m = Manager.new
68
+ m = Manager.instance
69
69
 
70
- head = Branch.new(m.git.current_branch, m)
71
- base = Branch.new(options.base || head.pick_up_base_name, m)
70
+ head = Branch.new(m.git.current_branch)
71
+ base = Branch.new(options.base || head.extract_base_name)
72
72
 
73
- title = options.title || head.pick_up_title
74
- body = options.body || head.pick_up_body
73
+ title = options.title || head.extract_title
74
+ body = options.body || head.extract_body
75
75
 
76
76
  p = PullRequest.new({base: base, head: head, title: title, body: body}, m)
77
77
 
@@ -102,11 +102,11 @@ module Abak::Flow
102
102
  c.description = "Удалить ветки (local и origin) в которых велась работа"
103
103
 
104
104
  c.action do |args, options|
105
- m = Manager.new
105
+ m = Manager.instance
106
106
  v = Visitor.new(m.configuration, m.repository, call: :ready?, inspect: :errors)
107
107
  v.exit_on_fail(:done, 1)
108
108
 
109
- branch = Branch.new(m.git.current_branch, m)
109
+ branch = Branch.new(m.git.current_branch)
110
110
 
111
111
  if branch.develop? || branch.master?
112
112
  say ANSI.red {
@@ -137,7 +137,7 @@ module Abak::Flow
137
137
  # и позволить выбирать, куда отправлять
138
138
  # при удалении ветки, а по умолчанию использовать master
139
139
  m.git.checkout(
140
- branch.pick_up_base_name(or_use: Branch::DEVELOPMENT))
140
+ branch.extract_base_name(if_undef: Branch::DEVELOPMENT))
141
141
  branch.delete_on_local
142
142
  end
143
143
  end # command :done
@@ -1,5 +1,5 @@
1
1
  module Abak
2
2
  module Flow
3
- VERSION = "1.0.3"
3
+ VERSION = "1.0.4"
4
4
  end
5
5
  end
data/lib/abak-flow.rb CHANGED
@@ -1,14 +1,9 @@
1
- module Abak
2
- module Flow; end
3
- end
4
-
5
1
  require "abak-flow/version" # ✔
6
2
  require "abak-flow/manager" # ✔
7
3
  require "abak-flow/configuration" # ✔
8
4
  require "abak-flow/repository" # ✔
9
5
  require "abak-flow/branch" # ?
10
6
  require "abak-flow/pull_request" # ?
11
- require "abak-flow/request" # ?
12
7
  require "abak-flow/visitor" # ✔
13
8
 
14
9
 
@@ -0,0 +1,230 @@
1
+ # coding: utf-8
2
+ require "spec_helper"
3
+
4
+ describe Abak::Flow::Branch do
5
+ let(:git_develop) { double("Develop", name: "develop", full: "develop") }
6
+ let(:git_master) { double("Master", name: "master", full: "master") }
7
+ let(:git_hotfix) { double("Hotfix", name: "hotfix/PR-2011", full: "hotfix/PR-2011") }
8
+ let(:git_feature) { double("Feature", name: "feature/JP-515", full: "feature/JP-515") }
9
+ let(:git_noname) { double("Noname", name: "my/own/name", full: "my/own/name") }
10
+
11
+ let(:develop) { described_class.new git_develop }
12
+ let(:master) { described_class.new git_master }
13
+ let(:hotfix) { described_class.new git_hotfix }
14
+ let(:feature) { described_class.new git_feature }
15
+ let(:noname) { described_class.new git_noname }
16
+
17
+ let(:manager) { double("Manager", git: git) }
18
+ let(:git) { double("Git") }
19
+
20
+ before do
21
+ Abak::Flow::Manager.stub(:instance).and_return manager
22
+
23
+ git.stub(:branch) { |x| x }
24
+ end
25
+
26
+ describe "#name" do
27
+ it { expect(feature.name).to eq "feature/JP-515" }
28
+ it { expect(develop.name).to eq "develop" }
29
+ it { expect(noname.name).to eq "my/own/name" }
30
+ end
31
+
32
+ describe "#folder" do
33
+ it { expect(develop.folder).to be_nil }
34
+ it { expect(hotfix.folder).to eq "hotfix" }
35
+ it { expect(feature.folder).to eq "feature" }
36
+ it { expect(noname.folder).to eq "my/own" }
37
+ end
38
+
39
+ describe "#task" do
40
+ it { expect(develop.task).to be_nil }
41
+ it { expect(feature.task).to eq "JP-515" }
42
+ it { expect(noname.task).to eq "name" }
43
+ end
44
+
45
+ describe "#hotfix?" do
46
+ it { expect(develop.hotfix?).to be_false }
47
+ it { expect(noname.hotfix?).to be_false }
48
+ it { expect(feature.hotfix?).to be_false }
49
+ it { expect(hotfix.hotfix?).to be_true }
50
+ end
51
+
52
+ describe "#feature?" do
53
+ it { expect(master.feature?).to be_false }
54
+ it { expect(noname.feature?).to be_false }
55
+ it { expect(hotfix.feature?).to be_false }
56
+ it { expect(feature.feature?).to be_true }
57
+ end
58
+
59
+ describe "#master?" do
60
+ it { expect(master.master?).to be_true }
61
+ it { expect(noname.master?).to be_false }
62
+ it { expect(develop.master?).to be_false }
63
+ end
64
+
65
+ describe "#develop?" do
66
+ it { expect(develop.develop?).to be_true }
67
+ it { expect(noname.develop?).to be_false }
68
+ it { expect(master.develop?).to be_false }
69
+ end
70
+
71
+ describe "#tracker_task?" do
72
+ it { expect(develop.tracker_task?).to be_false }
73
+ it { expect(noname.tracker_task?).to be_false }
74
+ it { expect(hotfix.tracker_task?).to be_true }
75
+ it { expect(feature.tracker_task?).to be_true }
76
+ end
77
+
78
+ describe "#mappable?" do
79
+ it { expect(develop.mappable?).to be_false }
80
+ it { expect(noname.mappable?).to be_false }
81
+ it { expect(hotfix.mappable?).to be_true }
82
+ it { expect(feature.mappable?).to be_true }
83
+ end
84
+
85
+ describe "#valid?" do
86
+ it { expect(develop.valid?).to be_true }
87
+ it { expect(noname.valid?).to be_true }
88
+ it do
89
+ branch = double("Branch", name: "", full: "")
90
+ expect(described_class.new(branch).valid?).to be_false
91
+ end
92
+ end
93
+
94
+ describe "#current?" do
95
+ before do
96
+ git_develop.stub(:current).and_return true
97
+ git_master.stub(:current).and_return false
98
+ end
99
+
100
+ it { expect(develop.current?).to be_true }
101
+ it { expect(master.current?).to be_false }
102
+ end
103
+
104
+ describe "#to_s" do
105
+ before { git_develop.stub(:to_s).and_return "Yap!" }
106
+ it { expect(develop.to_s).to eq "Yap!" }
107
+ end
108
+
109
+ describe "#message" do
110
+ before { git_noname.stub(:gcommit).and_return gcommit }
111
+
112
+ context "when git commit is a short single line" do
113
+ let(:gcommit) { double("Git commit", message: "Hello commit message") }
114
+
115
+ it { expect(noname.message).to eq "Hello commit message" }
116
+ end
117
+
118
+ context "when git commit is a very long single line" do
119
+ let(:gcommit) { double("Git commit", message: "X" * 200) }
120
+
121
+ it { expect(noname.message.length).to eq 75 }
122
+ it { expect(noname.message).to include "..." }
123
+ end
124
+
125
+ context "when git commit is a short multi line" do
126
+ let(:message) { "Hello commit message\n\nFixes PC4-100" }
127
+ let(:gcommit) { double("Git commit", message: message) }
128
+
129
+ it { expect(noname.message).to eq "Hello commit message" }
130
+ end
131
+
132
+ context "when git commit is a very long multi line" do
133
+ let(:message) { "#{'X' * 200}\n\nFixes PC4-100" }
134
+ let(:gcommit) { double("Git commit", message: message) }
135
+
136
+ it { expect(noname.message.length).to eq 75 }
137
+ it { expect(noname.message).to include "..." }
138
+ end
139
+ end
140
+
141
+ describe "#extract_title" do
142
+ let(:message) { "Hello world!\n\nFixes PC4-100" }
143
+ let(:gcommit) { double("Git commit", message: message) }
144
+
145
+ context "when branch named not like tracker task" do
146
+ before { git_noname.stub(:gcommit).and_return gcommit }
147
+
148
+ it { expect(noname.extract_title).to eq "Hello world!" }
149
+ end
150
+
151
+ context "when branch named not like tracker task" do
152
+ before { git_feature.stub(:gcommit).and_return gcommit }
153
+
154
+ it { expect(feature.extract_title).to eq "JP-515" }
155
+ end
156
+ end
157
+
158
+ describe "#extract_base_name" do
159
+ context "when no options are given" do
160
+ it { expect(master.extract_base_name).to eq "master" }
161
+ it { expect(develop.extract_base_name).to eq "develop" }
162
+ it { expect(hotfix.extract_base_name).to eq "master" }
163
+ it { expect(feature.extract_base_name).to eq "develop" }
164
+ it { expect(noname.extract_base_name).to eq "my/own/name" }
165
+ end
166
+
167
+ context "when if_undef option is given" do
168
+ it { expect(hotfix.extract_base_name(if_undef: "foo")).to eq "master" }
169
+ it { expect(master.extract_base_name(if_undef: "foo")).to eq "foo" }
170
+ it { expect(noname.extract_base_name(if_undef: "foo")).to eq "foo" }
171
+ end
172
+ end
173
+
174
+ describe "#extract_body" do
175
+ before { I18n.stub(:t).with("commands.publish.nothing").and_return "Empty!" }
176
+
177
+ context "when commit message has no magick words" do
178
+ let(:gcommit) { double("Git commit", message: "Hello world") }
179
+
180
+ before do
181
+ git_feature.stub(:gcommit).and_return gcommit
182
+ git_hotfix.stub(:gcommit).and_return gcommit
183
+ git_master.stub(:gcommit).and_return gcommit
184
+ git_develop.stub(:gcommit).and_return gcommit
185
+ git_noname.stub(:gcommit).and_return gcommit
186
+ end
187
+
188
+ it { expect(feature.extract_body).to eq "http://jira.railsc.ru/browse/JP-515" }
189
+ it { expect(hotfix.extract_body).to eq "http://jira.railsc.ru/browse/PR-2011" }
190
+ it { expect(master.extract_body).to eq "Empty!" }
191
+ it { expect(develop.extract_body).to eq "Empty!" }
192
+ it { expect(noname.extract_body).to eq "Empty!" }
193
+
194
+ it do
195
+ branch = double("Branch", name: "feature/ho-ho-ho", full: "feature/ho-ho-ho")
196
+ branch.stub(:gcommit).and_return gcommit
197
+
198
+ expect(described_class.new(branch).extract_body).to eq "Empty!"
199
+ end
200
+
201
+ it do
202
+ branch = double("Branch", name: "ho-ho-ho/PC4-10202", full: "ho-ho-ho/PC4-10202")
203
+ branch.stub(:gcommit).and_return gcommit
204
+
205
+ expect(described_class.new(branch).extract_body).to eq "http://jira.railsc.ru/browse/PC4-10202"
206
+ end
207
+ end
208
+
209
+ context "when commit message has magick word" do
210
+ context "when branch is task" do
211
+ let(:gcommit) { double("Git commit", message: "Fix PC4-200") }
212
+
213
+ before { git_feature.stub(:gcommit).and_return gcommit }
214
+
215
+ it { expect(feature.extract_body).to include "http://jira.railsc.ru/browse/JP-515" }
216
+ it { expect(feature.extract_body).to include "http://jira.railsc.ru/browse/PC4-200" }
217
+ end
218
+
219
+ context "when branch is not task" do
220
+ let(:gcommit) { double("Git commit", message: "Fix PC4-200, PC5-111\n\nCloses PC2-1122") }
221
+
222
+ before { git_master.stub(:gcommit).and_return gcommit }
223
+
224
+ it { expect(master.extract_body).to include "http://jira.railsc.ru/browse/PC4-200" }
225
+ it { expect(master.extract_body).to include "http://jira.railsc.ru/browse/PC2-1122" }
226
+ it { expect(master.extract_body).not_to include "PC5-111" }
227
+ end
228
+ end
229
+ end
230
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,17 +1,16 @@
1
1
  # coding: utf-8
2
- if ENV["COVERAGE"]
2
+ if ENV["C"]
3
3
  require "simplecov"
4
4
 
5
- SimpleCov.minimum_coverage 95
6
- SimpleCov.start :test_frameworks do
5
+ SimpleCov.start do
7
6
  add_filter "/spec/"
8
7
  end
9
8
  end
10
9
 
11
10
  require "abak-flow"
12
11
 
13
- Dir["spec/support/**/*.rb"].sort.each { |f| require f }
14
-
15
12
  RSpec.configure do |config|
16
- # ...
13
+ config.formatter = :progress
14
+ config.order = :random
15
+ config.color = true
17
16
  end
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: abak-flow
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.3
5
+ version: 1.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Strech (aka Sergey Fedorov)
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-11 00:00:00.000000000 Z
12
+ date: 2014-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: octokit
@@ -123,6 +123,54 @@ dependencies:
123
123
  version: 1.4.3
124
124
  type: :runtime
125
125
  prerelease: false
126
+ - !ruby/object:Gem::Dependency
127
+ name: cane
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirement: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ! '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ type: :development
141
+ prerelease: false
142
+ - !ruby/object:Gem::Dependency
143
+ name: simplecov
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ requirement: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ! '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ type: :development
157
+ prerelease: false
158
+ - !ruby/object:Gem::Dependency
159
+ name: rspec
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '2.14'
166
+ requirement: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ~>
170
+ - !ruby/object:Gem::Version
171
+ version: '2.14'
172
+ type: :development
173
+ prerelease: false
126
174
  description: Простой набор правил и комманд, заточеных для работы в git-flow с использование
127
175
  в качестве удаленного репозитория github
128
176
  email:
@@ -150,15 +198,7 @@ files:
150
198
  - lib/abak-flow/request.rb
151
199
  - lib/abak-flow/version.rb
152
200
  - lib/abak-flow/visitor.rb
153
- - spec/abak-flow/branch_spec.rb
154
- - spec/abak-flow/branches_spec.rb
155
- - spec/abak-flow/configuration_spec.rb
156
- - spec/abak-flow/git_spec.rb
157
- - spec/abak-flow/github_client_spec.rb
158
- - spec/abak-flow/messages_spec.rb
159
- - spec/abak-flow/project_spec.rb
160
- - spec/abak-flow/pull_request_spec.rb
161
- - spec/abak-flow/system_spec.rb
201
+ - spec/lib/abak-flow/branch_spec.rb
162
202
  - spec/spec_helper.rb
163
203
  homepage: https://github.com/Strech/abak-flow
164
204
  licenses:
@@ -186,13 +226,5 @@ signing_key:
186
226
  specification_version: 3
187
227
  summary: Совмещение 2-х подходов разработки Git-flow & Github-flow
188
228
  test_files:
189
- - spec/abak-flow/branch_spec.rb
190
- - spec/abak-flow/branches_spec.rb
191
- - spec/abak-flow/configuration_spec.rb
192
- - spec/abak-flow/git_spec.rb
193
- - spec/abak-flow/github_client_spec.rb
194
- - spec/abak-flow/messages_spec.rb
195
- - spec/abak-flow/project_spec.rb
196
- - spec/abak-flow/pull_request_spec.rb
197
- - spec/abak-flow/system_spec.rb
229
+ - spec/lib/abak-flow/branch_spec.rb
198
230
  - spec/spec_helper.rb