defmastership 1.0.4 → 1.0.9

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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.gitlab-ci.yml +0 -1
  4. data/.rubocop.yml +1 -1
  5. data/Rakefile +1 -2
  6. data/bin/defmastership +36 -24
  7. data/cucumber.yml +2 -0
  8. data/defmastership.gemspec +14 -8
  9. data/features/changeref.feature +82 -129
  10. data/features/definition_checksum.feature +298 -0
  11. data/features/definition_version.feature +24 -0
  12. data/features/export.feature +49 -31
  13. data/features/modify.feature +165 -0
  14. data/features/rename_included_files.feature +121 -0
  15. data/lib/defmastership.rb +14 -3
  16. data/lib/defmastership/batch_modifier.rb +35 -0
  17. data/lib/defmastership/{ref_changer.rb → change_ref_line_modifier.rb} +18 -35
  18. data/lib/defmastership/change_ref_modifier.rb +15 -0
  19. data/lib/defmastership/constants.rb +14 -1
  20. data/lib/defmastership/csv_formatter.rb +25 -19
  21. data/lib/defmastership/csv_formatter_body.rb +19 -11
  22. data/lib/defmastership/csv_formatter_header.rb +15 -10
  23. data/lib/defmastership/definition.rb +14 -3
  24. data/lib/defmastership/definition_parser.rb +46 -0
  25. data/lib/defmastership/document.rb +59 -85
  26. data/lib/defmastership/filters.rb +30 -0
  27. data/lib/defmastership/line_modifier_base.rb +29 -0
  28. data/lib/defmastership/modifier_base.rb +29 -0
  29. data/lib/defmastership/rename_included_files_line_modifier.rb +126 -0
  30. data/lib/defmastership/rename_included_files_modifier.rb +15 -0
  31. data/lib/defmastership/update_def_checksum_line_modifier.rb +38 -0
  32. data/lib/defmastership/update_def_checksum_modifier.rb +21 -0
  33. data/lib/defmastership/version.rb +1 -1
  34. data/spec/spec_helper.rb +1 -0
  35. data/spec/unit/defmastership/batch_modifier_spec.rb +123 -0
  36. data/spec/unit/defmastership/{ref_changer_spec.rb → change_ref_line_modifier_spec.rb} +48 -26
  37. data/spec/unit/defmastership/change_ref_modifier_spec.rb +76 -0
  38. data/spec/unit/defmastership/comment_filter_spec.rb +8 -4
  39. data/spec/unit/defmastership/csv_formatter_body_spec.rb +88 -82
  40. data/spec/unit/defmastership/csv_formatter_header_spec.rb +68 -22
  41. data/spec/unit/defmastership/csv_formatter_spec.rb +208 -110
  42. data/spec/unit/defmastership/definition_parser_spec.rb +63 -0
  43. data/spec/unit/defmastership/definition_spec.rb +45 -4
  44. data/spec/unit/defmastership/document_spec.rb +236 -35
  45. data/spec/unit/defmastership/rename_included_files_line_modifier_spec.rb +203 -0
  46. data/spec/unit/defmastership/rename_included_files_modifier_spec.rb +67 -0
  47. data/spec/unit/defmastership/update_def_checksum_line_modifier_spec.rb +78 -0
  48. data/spec/unit/defmastership/update_def_checksum_modifier_spec.rb +75 -0
  49. metadata +47 -16
  50. data/Gemfile.lock +0 -140
  51. data/lib/defmastership/batch_changer.rb +0 -41
  52. data/lib/defmastership/project_ref_changer.rb +0 -28
  53. data/spec/unit/defmastership/batch_changer_spec.rb +0 -109
  54. data/spec/unit/defmastership/project_ref_changer_spec.rb +0 -80
@@ -0,0 +1,67 @@
1
+ # Copyright (c) 2021 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('defmastership')
5
+
6
+ RSpec.describe(DefMastership::RenameIncludedFilesModifier) do
7
+ subject(:modifier) do
8
+ described_class.new(
9
+ 'fake config'
10
+ )
11
+ end
12
+
13
+ let(:adoc_texts) do
14
+ {
15
+ 'file1.adoc' => "file1 line1\nfile1 line2",
16
+ 'file2.adoc' => "file2 line1\nfile2 line2"
17
+ }
18
+ end
19
+
20
+ describe '.new' do
21
+ it { is_expected.not_to(be(nil)) }
22
+ it { is_expected.to(have_attributes(config: 'fake config')) }
23
+ it { is_expected.to(have_attributes(changes: [])) }
24
+ end
25
+
26
+ describe '#do_modifications' do
27
+ let(:line_modifier) { instance_double(DefMastership::RenameIncludedFilesLineModifier, 'lineModifier') }
28
+
29
+ before do
30
+ allow(DefMastership::RenameIncludedFilesLineModifier).to(
31
+ receive(:from_config).with('fake config').and_return(line_modifier)
32
+ )
33
+ allow(line_modifier).to(receive(:replace).with("file1 line1\n").and_return("new file1 line1\n"))
34
+ allow(line_modifier).to(receive(:replace).with('file1 line2').and_return('new file1 line2'))
35
+ allow(line_modifier).to(receive(:replace).with("file2 line1\n").and_return("new file2 line1\n"))
36
+ allow(line_modifier).to(receive(:replace).with('file2 line2').and_return('new file2 line2'))
37
+ allow(line_modifier).to(receive(:changes).and_return([%w[from1 to1], %w[from2 to2]]))
38
+ allow(line_modifier).to(receive(:config).and_return('fake config'))
39
+ end
40
+
41
+ context 'when detailed expectations' do
42
+ before { modifier.do_modifications(adoc_texts) }
43
+
44
+ it do
45
+ expect(DefMastership::RenameIncludedFilesLineModifier).to(
46
+ have_received(:from_config).with('fake config')
47
+ )
48
+ end
49
+
50
+ it { expect(line_modifier).to(have_received(:replace).with("file1 line1\n")) }
51
+ it { expect(line_modifier).to(have_received(:replace).with('file1 line2')) }
52
+ it { expect(line_modifier).to(have_received(:replace).with("file2 line1\n")) }
53
+ it { expect(line_modifier).to(have_received(:replace).with('file2 line2')) }
54
+ it { expect(line_modifier).to(have_received(:changes)) }
55
+ it { is_expected.to(have_attributes(config: 'fake config')) }
56
+ it { is_expected.to(have_attributes(changes: [%w[from1 to1], %w[from2 to2]])) }
57
+ end
58
+
59
+ it do
60
+ expected_adoc = {
61
+ 'file1.adoc' => "new file1 line1\nnew file1 line2",
62
+ 'file2.adoc' => "new file2 line1\nnew file2 line2"
63
+ }
64
+ expect(modifier.do_modifications(adoc_texts)).to(eq(expected_adoc))
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,78 @@
1
+ # Copyright (c) 2020 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('defmastership')
5
+
6
+ RSpec.describe(DefMastership::UpdateDefChecksumLineModifier) do
7
+ subject(:linemodifier) { described_class.new }
8
+
9
+ describe '.new' do
10
+ it { is_expected.not_to(be(nil)) }
11
+ it { is_expected.to(have_attributes(def_type: '')) }
12
+ it { is_expected.to(have_attributes(changes: [])) }
13
+ it { expect { linemodifier.user_defined_attribute }.to(raise_error(NoMethodError)) }
14
+ end
15
+
16
+ describe '.from_config' do
17
+ subject(:linemodifier) do
18
+ described_class.from_config(
19
+ def_type: 'requirement'
20
+ )
21
+ end
22
+
23
+ it { is_expected.not_to(be(nil)) }
24
+ it { is_expected.to(have_attributes(def_type: 'requirement')) }
25
+ it { is_expected.to(have_attributes(document: nil)) }
26
+ end
27
+
28
+ describe '#replace' do
29
+ subject(:linemodifier) do
30
+ described_class.from_config(
31
+ def_type: 'requirement'
32
+ )
33
+ end
34
+
35
+ let(:definition) { instance_double(DefMastership::Definition, 'definition') }
36
+ let(:document) { instance_double(DefMastership::Document, 'document') }
37
+ let(:definitions) { { 'REFERENCE' => definition } }
38
+
39
+ before do
40
+ linemodifier.document = document
41
+ allow(File).to(receive(:rename))
42
+ end
43
+
44
+ context 'when definition has not the good type' do
45
+ it do
46
+ expect(linemodifier.replace('[define,req,REFERENCE]'))
47
+ .to(eq('[define,req,REFERENCE]'))
48
+ end
49
+ end
50
+
51
+ context 'when definition has the good type' do
52
+ before do
53
+ allow(document).to(receive(:ref_to_def).with('REFERENCE').and_return(definition))
54
+ allow(definition).to(receive(:sha256).and_return('~abcd1234'))
55
+ end
56
+
57
+ it do
58
+ expect(linemodifier.replace('[define,requirement,REFERENCE]'))
59
+ .to(eq('[define,requirement,REFERENCE(~abcd1234)]'))
60
+ end
61
+
62
+ it do
63
+ expect(linemodifier.replace('[define,requirement,REFERENCE(~bad)]'))
64
+ .to(eq('[define,requirement,REFERENCE(~abcd1234)]'))
65
+ end
66
+
67
+ it do
68
+ expect(linemodifier.replace('[define,requirement,REFERENCE(toto~bad)]'))
69
+ .to(eq('[define,requirement,REFERENCE(toto~abcd1234)]'))
70
+ end
71
+
72
+ it do
73
+ expect(linemodifier.replace('[define,requirement,REFERENCE(toto)]'))
74
+ .to(eq('[define,requirement,REFERENCE(toto~abcd1234)]'))
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,75 @@
1
+ # Copyright (c) 2020 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('defmastership')
5
+
6
+ RSpec.describe(DefMastership::UpdateDefChecksumModifier) do
7
+ subject(:modifier) do
8
+ described_class.new(
9
+ 'fake config'
10
+ )
11
+ end
12
+
13
+ let(:adoc_texts) do
14
+ {
15
+ 'file1.adoc' => "file1 line1\nfile1 line2",
16
+ 'file2.adoc' => "file2 line1\nfile2 line2"
17
+ }
18
+ end
19
+
20
+ describe '.new' do
21
+ it { is_expected.not_to(be(nil)) }
22
+ it { is_expected.to(have_attributes(config: 'fake config')) }
23
+ it { is_expected.to(have_attributes(changes: [])) }
24
+ end
25
+
26
+ describe '#do_modifications' do
27
+ let(:line_modifier) { instance_double(DefMastership::UpdateDefChecksumLineModifier, 'lineModifier') }
28
+ let(:document) { instance_double(DefMastership::Document, 'document') }
29
+
30
+ before do
31
+ allow(DefMastership::UpdateDefChecksumLineModifier).to(
32
+ receive(:from_config).with('fake config').and_return(line_modifier)
33
+ )
34
+ allow(DefMastership::Document).to(receive(:new).and_return(document))
35
+ allow(document).to(receive(:parse_file_with_preprocessor))
36
+ allow(line_modifier).to(receive(:'document=').with(document))
37
+ allow(line_modifier).to(receive(:replace).with("file1 line1\n").and_return("new file1 line1\n"))
38
+ allow(line_modifier).to(receive(:replace).with('file1 line2').and_return('new file1 line2'))
39
+ allow(line_modifier).to(receive(:replace).with("file2 line1\n").and_return("new file2 line1\n"))
40
+ allow(line_modifier).to(receive(:replace).with('file2 line2').and_return('new file2 line2'))
41
+ allow(line_modifier).to(receive(:config).and_return('new fake config'))
42
+ allow(line_modifier).to(receive(:changes).and_return([%w[from1 to1], %w[from2 to2]]))
43
+ end
44
+
45
+ context 'when detailed expectations' do
46
+ before { modifier.do_modifications(adoc_texts) }
47
+
48
+ it do
49
+ expect(DefMastership::UpdateDefChecksumLineModifier).to(
50
+ have_received(:from_config).with('fake config')
51
+ )
52
+ end
53
+
54
+ it { expect(document).to(have_received(:parse_file_with_preprocessor).with('file1.adoc')) }
55
+ it { expect(document).to(have_received(:parse_file_with_preprocessor).with('file2.adoc')) }
56
+ it { expect(line_modifier).to(have_received(:'document=').with(document)) }
57
+ it { expect(line_modifier).to(have_received(:replace).with("file1 line1\n")) }
58
+ it { expect(line_modifier).to(have_received(:replace).with('file1 line2')) }
59
+ it { expect(line_modifier).to(have_received(:replace).with("file2 line1\n")) }
60
+ it { expect(line_modifier).to(have_received(:replace).with('file2 line2')) }
61
+ it { expect(line_modifier).to(have_received(:config)) }
62
+ it { expect(line_modifier).to(have_received(:changes)) }
63
+ it { is_expected.to(have_attributes(config: 'new fake config')) }
64
+ it { is_expected.to(have_attributes(changes: [%w[from1 to1], %w[from2 to2]])) }
65
+ end
66
+
67
+ it do
68
+ expected_adoc = {
69
+ 'file1.adoc' => "new file1 line1\nnew file1 line2",
70
+ 'file2.adoc' => "new file2 line1\nnew file2 line2"
71
+ }
72
+ expect(modifier.do_modifications(adoc_texts)).to(eq(expected_adoc))
73
+ end
74
+ end
75
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: defmastership
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jérôme Arbez-Gindre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-17 00:00:00.000000000 Z
11
+ date: 2021-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aruba
@@ -70,30 +70,44 @@ dependencies:
70
70
  name: rubocop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '='
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.91'
75
+ version: '1.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '='
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.91'
82
+ version: '1.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.5'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.5'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rubocop-rspec
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '1'
103
+ version: '2.0'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '1'
110
+ version: '2.0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: simplecov
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +178,6 @@ files:
164
178
  - ".rspec"
165
179
  - ".rubocop.yml"
166
180
  - Gemfile
167
- - Gemfile.lock
168
181
  - LICENSE
169
182
  - README.rdoc
170
183
  - Rakefile
@@ -176,35 +189,53 @@ files:
176
189
  - config/reek.yml
177
190
  - config/rubocop.yml
178
191
  - config/yardstick.yml
192
+ - cucumber.yml
179
193
  - defmastership.gemspec
180
194
  - defmastership.rdoc
181
195
  - features/changeref.feature
196
+ - features/definition_checksum.feature
197
+ - features/definition_version.feature
182
198
  - features/defmastership.feature
183
199
  - features/export.feature
200
+ - features/modify.feature
201
+ - features/rename_included_files.feature
184
202
  - features/step_definitions/defmastership_steps.rb
185
203
  - features/support/env.rb
186
204
  - lib/defmastership.rb
187
- - lib/defmastership/batch_changer.rb
205
+ - lib/defmastership/batch_modifier.rb
206
+ - lib/defmastership/change_ref_line_modifier.rb
207
+ - lib/defmastership/change_ref_modifier.rb
188
208
  - lib/defmastership/comment_filter.rb
189
209
  - lib/defmastership/constants.rb
190
210
  - lib/defmastership/csv_formatter.rb
191
211
  - lib/defmastership/csv_formatter_body.rb
192
212
  - lib/defmastership/csv_formatter_header.rb
193
213
  - lib/defmastership/definition.rb
214
+ - lib/defmastership/definition_parser.rb
194
215
  - lib/defmastership/document.rb
195
- - lib/defmastership/project_ref_changer.rb
196
- - lib/defmastership/ref_changer.rb
216
+ - lib/defmastership/filters.rb
217
+ - lib/defmastership/line_modifier_base.rb
218
+ - lib/defmastership/modifier_base.rb
219
+ - lib/defmastership/rename_included_files_line_modifier.rb
220
+ - lib/defmastership/rename_included_files_modifier.rb
221
+ - lib/defmastership/update_def_checksum_line_modifier.rb
222
+ - lib/defmastership/update_def_checksum_modifier.rb
197
223
  - lib/defmastership/version.rb
198
224
  - spec/spec_helper.rb
199
- - spec/unit/defmastership/batch_changer_spec.rb
225
+ - spec/unit/defmastership/batch_modifier_spec.rb
226
+ - spec/unit/defmastership/change_ref_line_modifier_spec.rb
227
+ - spec/unit/defmastership/change_ref_modifier_spec.rb
200
228
  - spec/unit/defmastership/comment_filter_spec.rb
201
229
  - spec/unit/defmastership/csv_formatter_body_spec.rb
202
230
  - spec/unit/defmastership/csv_formatter_header_spec.rb
203
231
  - spec/unit/defmastership/csv_formatter_spec.rb
232
+ - spec/unit/defmastership/definition_parser_spec.rb
204
233
  - spec/unit/defmastership/definition_spec.rb
205
234
  - spec/unit/defmastership/document_spec.rb
206
- - spec/unit/defmastership/project_ref_changer_spec.rb
207
- - spec/unit/defmastership/ref_changer_spec.rb
235
+ - spec/unit/defmastership/rename_included_files_line_modifier_spec.rb
236
+ - spec/unit/defmastership/rename_included_files_modifier_spec.rb
237
+ - spec/unit/defmastership/update_def_checksum_line_modifier_spec.rb
238
+ - spec/unit/defmastership/update_def_checksum_modifier_spec.rb
208
239
  - spec/unit/defmastership_spec.rb
209
240
  homepage: https://gitlab.com/jjag/defmastership/
210
241
  licenses:
@@ -229,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
229
260
  - !ruby/object:Gem::Version
230
261
  version: '0'
231
262
  requirements: []
232
- rubygems_version: 3.1.2
263
+ rubygems_version: 3.2.5
233
264
  signing_key:
234
265
  specification_version: 4
235
266
  summary: Handling of references and definitions with asciidoctor
data/Gemfile.lock DELETED
@@ -1,140 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- defmastership (1.0.4)
5
- aasm (~> 5)
6
- asciidoctor (~> 2)
7
- gli (~> 2)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- aasm (5.1.1)
13
- concurrent-ruby (~> 1.0)
14
- activesupport (6.0.3.3)
15
- concurrent-ruby (~> 1.0, >= 1.0.2)
16
- i18n (>= 0.7, < 2)
17
- minitest (~> 5.1)
18
- tzinfo (~> 1.1)
19
- zeitwerk (~> 2.2, >= 2.2.2)
20
- aruba (1.0.3)
21
- childprocess (>= 2.0, < 5.0)
22
- contracts (~> 0.16.0)
23
- cucumber (>= 2.4, < 6.0)
24
- ffi (~> 1.9)
25
- rspec-expectations (~> 3.4)
26
- thor (~> 1.0)
27
- asciidoctor (2.0.10)
28
- ast (2.4.1)
29
- builder (3.2.4)
30
- childprocess (4.0.0)
31
- concurrent-ruby (1.1.7)
32
- contracts (0.16.0)
33
- cucumber (5.1.1)
34
- builder (~> 3.2, >= 3.2.4)
35
- cucumber-core (~> 8.0, >= 8.0.1)
36
- cucumber-create-meta (~> 2.0, >= 2.0.2)
37
- cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
38
- cucumber-gherkin (~> 15.0, >= 15.0.2)
39
- cucumber-html-formatter (~> 9.0, >= 9.0.0)
40
- cucumber-messages (~> 13.0, >= 13.0.1)
41
- cucumber-wire (~> 4.0, >= 4.0.1)
42
- diff-lcs (~> 1.4, >= 1.4.4)
43
- multi_test (~> 0.1, >= 0.1.2)
44
- sys-uname (~> 1.2, >= 1.2.1)
45
- cucumber-core (8.0.1)
46
- cucumber-gherkin (~> 15.0, >= 15.0.2)
47
- cucumber-messages (~> 13.0, >= 13.0.1)
48
- cucumber-tag-expressions (~> 2.0, >= 2.0.4)
49
- cucumber-create-meta (2.0.2)
50
- cucumber-messages (~> 13.0, >= 13.0.1)
51
- sys-uname (~> 1.2, >= 1.2.1)
52
- cucumber-cucumber-expressions (10.3.0)
53
- cucumber-gherkin (15.0.2)
54
- cucumber-messages (~> 13.0, >= 13.0.1)
55
- cucumber-html-formatter (9.0.0)
56
- cucumber-messages (~> 13.0, >= 13.0.1)
57
- cucumber-messages (13.1.0)
58
- protobuf-cucumber (~> 3.10, >= 3.10.8)
59
- cucumber-tag-expressions (2.0.4)
60
- cucumber-wire (4.0.1)
61
- cucumber-core (~> 8.0, >= 8.0.1)
62
- cucumber-cucumber-expressions (~> 10.3, >= 10.3.0)
63
- cucumber-messages (~> 13.0, >= 13.0.1)
64
- diff-lcs (1.4.4)
65
- docile (1.3.2)
66
- ffi (1.13.1)
67
- gli (2.19.2)
68
- i18n (1.8.5)
69
- concurrent-ruby (~> 1.0)
70
- middleware (0.1.0)
71
- minitest (5.14.2)
72
- multi_test (0.1.2)
73
- parallel (1.19.2)
74
- parser (2.7.1.4)
75
- ast (~> 2.4.1)
76
- protobuf-cucumber (3.10.8)
77
- activesupport (>= 3.2)
78
- middleware
79
- thor
80
- thread_safe
81
- rainbow (3.0.0)
82
- rake (13.0.1)
83
- rdoc (6.2.1)
84
- regexp_parser (1.7.1)
85
- rexml (3.2.4)
86
- rspec (3.9.0)
87
- rspec-core (~> 3.9.0)
88
- rspec-expectations (~> 3.9.0)
89
- rspec-mocks (~> 3.9.0)
90
- rspec-core (3.9.2)
91
- rspec-support (~> 3.9.3)
92
- rspec-expectations (3.9.2)
93
- diff-lcs (>= 1.2.0, < 2.0)
94
- rspec-support (~> 3.9.0)
95
- rspec-mocks (3.9.1)
96
- diff-lcs (>= 1.2.0, < 2.0)
97
- rspec-support (~> 3.9.0)
98
- rspec-support (3.9.3)
99
- rubocop (0.91.0)
100
- parallel (~> 1.10)
101
- parser (>= 2.7.1.1)
102
- rainbow (>= 2.2.2, < 4.0)
103
- regexp_parser (>= 1.7)
104
- rexml
105
- rubocop-ast (>= 0.4.0, < 1.0)
106
- ruby-progressbar (~> 1.7)
107
- unicode-display_width (>= 1.4.0, < 2.0)
108
- rubocop-ast (0.4.1)
109
- parser (>= 2.7.1.4)
110
- rubocop-rspec (1.43.2)
111
- rubocop (~> 0.87)
112
- ruby-progressbar (1.10.1)
113
- simplecov (0.19.0)
114
- docile (~> 1.1)
115
- simplecov-html (~> 0.11)
116
- simplecov-html (0.12.2)
117
- sys-uname (1.2.1)
118
- ffi (>= 1.0.0)
119
- thor (1.0.1)
120
- thread_safe (0.3.6)
121
- tzinfo (1.2.7)
122
- thread_safe (~> 0.1)
123
- unicode-display_width (1.7.0)
124
- zeitwerk (2.4.0)
125
-
126
- PLATFORMS
127
- ruby
128
-
129
- DEPENDENCIES
130
- aruba (~> 1)
131
- defmastership!
132
- rake (~> 13)
133
- rdoc (~> 6)
134
- rspec (~> 3)
135
- rubocop (= 0.91)
136
- rubocop-rspec (~> 1)
137
- simplecov (~> 0)
138
-
139
- BUNDLED WITH
140
- 2.1.4