defmastership 1.0.2 → 1.0.7

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.gitlab-ci.yml +20 -0
  4. data/.rubocop.yml +6 -8
  5. data/Gemfile +1 -0
  6. data/LICENSE +22 -0
  7. data/Rakefile +2 -2
  8. data/bin/defmastership +37 -24
  9. data/cucumber.yml +2 -0
  10. data/defmastership.gemspec +17 -10
  11. data/features/changeref.feature +82 -129
  12. data/features/checksum.feature +244 -0
  13. data/features/export.feature +49 -31
  14. data/features/modify.feature +143 -0
  15. data/features/rename_included_files.feature +121 -0
  16. data/features/step_definitions/defmastership_steps.rb +1 -0
  17. data/features/support/env.rb +1 -0
  18. data/lib/defmastership.rb +15 -3
  19. data/lib/defmastership/batch_modifier.rb +33 -0
  20. data/lib/defmastership/{ref_changer.rb → change_ref_line_modifier.rb} +19 -35
  21. data/lib/defmastership/change_ref_modifier.rb +15 -0
  22. data/lib/defmastership/comment_filter.rb +1 -0
  23. data/lib/defmastership/constants.rb +15 -1
  24. data/lib/defmastership/csv_formatter.rb +19 -18
  25. data/lib/defmastership/csv_formatter_body.rb +12 -6
  26. data/lib/defmastership/csv_formatter_header.rb +12 -10
  27. data/lib/defmastership/definition.rb +12 -0
  28. data/lib/defmastership/definition_parser.rb +46 -0
  29. data/lib/defmastership/document.rb +54 -75
  30. data/lib/defmastership/filters.rb +30 -0
  31. data/lib/defmastership/line_modifier_base.rb +29 -0
  32. data/lib/defmastership/modifier_base.rb +29 -0
  33. data/lib/defmastership/rename_included_files_line_modifier.rb +126 -0
  34. data/lib/defmastership/rename_included_files_modifier.rb +15 -0
  35. data/lib/defmastership/update_def_checksum_line_modifier.rb +39 -0
  36. data/lib/defmastership/update_def_checksum_modifier.rb +21 -0
  37. data/lib/defmastership/version.rb +2 -1
  38. data/spec/spec_helper.rb +2 -0
  39. data/spec/unit/defmastership/batch_modifier_spec.rb +115 -0
  40. data/spec/unit/defmastership/{ref_changer_spec.rb → change_ref_line_modifier_spec.rb} +49 -26
  41. data/spec/unit/defmastership/change_ref_modifier_spec.rb +76 -0
  42. data/spec/unit/defmastership/comment_filter_spec.rb +9 -4
  43. data/spec/unit/defmastership/csv_formatter_body_spec.rb +62 -37
  44. data/spec/unit/defmastership/csv_formatter_header_spec.rb +47 -22
  45. data/spec/unit/defmastership/csv_formatter_spec.rb +67 -105
  46. data/spec/unit/defmastership/definition_parser_spec.rb +63 -0
  47. data/spec/unit/defmastership/definition_spec.rb +31 -4
  48. data/spec/unit/defmastership/document_spec.rb +170 -35
  49. data/spec/unit/defmastership/rename_included_files_line_modifier_spec.rb +203 -0
  50. data/spec/unit/defmastership/rename_included_files_modifier_spec.rb +67 -0
  51. data/spec/unit/defmastership/update_def_checksum_line_modifier_spec.rb +68 -0
  52. data/spec/unit/defmastership/update_def_checksum_modifier_spec.rb +75 -0
  53. data/spec/unit/defmastership_spec.rb +1 -0
  54. metadata +50 -18
  55. data/Gemfile.lock +0 -137
  56. data/lib/defmastership/batch_changer.rb +0 -40
  57. data/lib/defmastership/project_ref_changer.rb +0 -27
  58. data/spec/unit/defmastership/batch_changer_spec.rb +0 -108
  59. data/spec/unit/defmastership/project_ref_changer_spec.rb +0 -79
@@ -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,68 @@
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
+ end
67
+ end
68
+ 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
@@ -1,3 +1,4 @@
1
+ # Copyright (c) 2020 Jerome Arbez-Gindre
1
2
  # frozen_string_literal: true
2
3
 
3
4
  RSpec.describe(DefMastership) do
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.2
4
+ version: 1.0.7
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-15 00:00:00.000000000 Z
11
+ date: 2021-02-27 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.81'
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.81'
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
@@ -160,10 +174,11 @@ extra_rdoc_files:
160
174
  - defmastership.rdoc
161
175
  files:
162
176
  - ".gitignore"
177
+ - ".gitlab-ci.yml"
163
178
  - ".rspec"
164
179
  - ".rubocop.yml"
165
180
  - Gemfile
166
- - Gemfile.lock
181
+ - LICENSE
167
182
  - README.rdoc
168
183
  - Rakefile
169
184
  - bin/defmastership
@@ -174,39 +189,56 @@ files:
174
189
  - config/reek.yml
175
190
  - config/rubocop.yml
176
191
  - config/yardstick.yml
192
+ - cucumber.yml
177
193
  - defmastership.gemspec
178
194
  - defmastership.rdoc
179
195
  - features/changeref.feature
196
+ - features/checksum.feature
180
197
  - features/defmastership.feature
181
198
  - features/export.feature
199
+ - features/modify.feature
200
+ - features/rename_included_files.feature
182
201
  - features/step_definitions/defmastership_steps.rb
183
202
  - features/support/env.rb
184
203
  - lib/defmastership.rb
185
- - lib/defmastership/batch_changer.rb
204
+ - lib/defmastership/batch_modifier.rb
205
+ - lib/defmastership/change_ref_line_modifier.rb
206
+ - lib/defmastership/change_ref_modifier.rb
186
207
  - lib/defmastership/comment_filter.rb
187
208
  - lib/defmastership/constants.rb
188
209
  - lib/defmastership/csv_formatter.rb
189
210
  - lib/defmastership/csv_formatter_body.rb
190
211
  - lib/defmastership/csv_formatter_header.rb
191
212
  - lib/defmastership/definition.rb
213
+ - lib/defmastership/definition_parser.rb
192
214
  - lib/defmastership/document.rb
193
- - lib/defmastership/project_ref_changer.rb
194
- - lib/defmastership/ref_changer.rb
215
+ - lib/defmastership/filters.rb
216
+ - lib/defmastership/line_modifier_base.rb
217
+ - lib/defmastership/modifier_base.rb
218
+ - lib/defmastership/rename_included_files_line_modifier.rb
219
+ - lib/defmastership/rename_included_files_modifier.rb
220
+ - lib/defmastership/update_def_checksum_line_modifier.rb
221
+ - lib/defmastership/update_def_checksum_modifier.rb
195
222
  - lib/defmastership/version.rb
196
223
  - spec/spec_helper.rb
197
- - spec/unit/defmastership/batch_changer_spec.rb
224
+ - spec/unit/defmastership/batch_modifier_spec.rb
225
+ - spec/unit/defmastership/change_ref_line_modifier_spec.rb
226
+ - spec/unit/defmastership/change_ref_modifier_spec.rb
198
227
  - spec/unit/defmastership/comment_filter_spec.rb
199
228
  - spec/unit/defmastership/csv_formatter_body_spec.rb
200
229
  - spec/unit/defmastership/csv_formatter_header_spec.rb
201
230
  - spec/unit/defmastership/csv_formatter_spec.rb
231
+ - spec/unit/defmastership/definition_parser_spec.rb
202
232
  - spec/unit/defmastership/definition_spec.rb
203
233
  - spec/unit/defmastership/document_spec.rb
204
- - spec/unit/defmastership/project_ref_changer_spec.rb
205
- - spec/unit/defmastership/ref_changer_spec.rb
234
+ - spec/unit/defmastership/rename_included_files_line_modifier_spec.rb
235
+ - spec/unit/defmastership/rename_included_files_modifier_spec.rb
236
+ - spec/unit/defmastership/update_def_checksum_line_modifier_spec.rb
237
+ - spec/unit/defmastership/update_def_checksum_modifier_spec.rb
206
238
  - spec/unit/defmastership_spec.rb
207
239
  homepage: https://gitlab.com/jjag/defmastership/
208
240
  licenses:
209
- - Nonstandard
241
+ - MIT
210
242
  metadata: {}
211
243
  post_install_message:
212
244
  rdoc_options:
@@ -220,14 +252,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
220
252
  requirements:
221
253
  - - ">="
222
254
  - !ruby/object:Gem::Version
223
- version: '2.3'
255
+ version: '2.5'
224
256
  required_rubygems_version: !ruby/object:Gem::Requirement
225
257
  requirements:
226
258
  - - ">="
227
259
  - !ruby/object:Gem::Version
228
260
  version: '0'
229
261
  requirements: []
230
- rubygems_version: 3.1.2
262
+ rubygems_version: 3.2.5
231
263
  signing_key:
232
264
  specification_version: 4
233
265
  summary: Handling of references and definitions with asciidoctor
data/Gemfile.lock DELETED
@@ -1,137 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- defmastership (1.0.2)
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
- jaro_winkler (1.5.4)
71
- middleware (0.1.0)
72
- minitest (5.14.2)
73
- multi_test (0.1.2)
74
- parallel (1.19.2)
75
- parser (2.7.1.4)
76
- ast (~> 2.4.1)
77
- protobuf-cucumber (3.10.8)
78
- activesupport (>= 3.2)
79
- middleware
80
- thor
81
- thread_safe
82
- rainbow (3.0.0)
83
- rake (13.0.1)
84
- rdoc (6.2.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.81.0)
100
- jaro_winkler (~> 1.5.1)
101
- parallel (~> 1.10)
102
- parser (>= 2.7.0.1)
103
- rainbow (>= 2.2.2, < 4.0)
104
- rexml
105
- ruby-progressbar (~> 1.7)
106
- unicode-display_width (>= 1.4.0, < 2.0)
107
- rubocop-rspec (1.41.0)
108
- rubocop (>= 0.68.1)
109
- ruby-progressbar (1.10.1)
110
- simplecov (0.19.0)
111
- docile (~> 1.1)
112
- simplecov-html (~> 0.11)
113
- simplecov-html (0.12.2)
114
- sys-uname (1.2.1)
115
- ffi (>= 1.0.0)
116
- thor (1.0.1)
117
- thread_safe (0.3.6)
118
- tzinfo (1.2.7)
119
- thread_safe (~> 0.1)
120
- unicode-display_width (1.7.0)
121
- zeitwerk (2.4.0)
122
-
123
- PLATFORMS
124
- ruby
125
-
126
- DEPENDENCIES
127
- aruba (~> 1)
128
- defmastership!
129
- rake (~> 13)
130
- rdoc (~> 6)
131
- rspec (~> 3)
132
- rubocop (= 0.81)
133
- rubocop-rspec (~> 1)
134
- simplecov (~> 0)
135
-
136
- BUNDLED WITH
137
- 2.1.4