defmastership 1.0.17 → 1.0.18

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab-ci.yml +22 -10
  3. data/Gemfile +51 -1
  4. data/Rakefile +16 -61
  5. data/bin/defmastership +9 -6
  6. data/config/mutant.yml +23 -3
  7. data/defmastership.gemspec +0 -10
  8. data/features/definition_checksum.feature +31 -1
  9. data/features/export.feature +43 -1
  10. data/features/rename_included_files.feature +28 -0
  11. data/lib/defmastership/batch_modifier.rb +17 -12
  12. data/lib/defmastership/change_ref_modifier.rb +88 -6
  13. data/lib/defmastership/comment_filter.rb +1 -1
  14. data/lib/defmastership/constants.rb +5 -4
  15. data/lib/defmastership/csv_formatter.rb +16 -12
  16. data/lib/defmastership/csv_formatter_body.rb +18 -15
  17. data/lib/defmastership/csv_formatter_header.rb +1 -1
  18. data/lib/defmastership/definition.rb +58 -19
  19. data/lib/defmastership/document.rb +109 -74
  20. data/lib/defmastership/matching_line.rb +17 -0
  21. data/lib/defmastership/modifier.rb +42 -0
  22. data/lib/defmastership/modifier_factory.rb +12 -0
  23. data/lib/defmastership/parsing_state.rb +15 -9
  24. data/lib/defmastership/rename_included_files_modifier.rb +172 -5
  25. data/lib/defmastership/set_join_hack.rb +11 -0
  26. data/lib/defmastership/update_def_checksum_modifier.rb +8 -13
  27. data/lib/defmastership/update_def_modifier.rb +49 -0
  28. data/lib/defmastership/update_def_version_modifier.rb +56 -15
  29. data/lib/defmastership/version.rb +1 -1
  30. data/lib/defmastership.rb +1 -6
  31. data/spec/spec_helper.rb +3 -1
  32. data/spec/unit/def_mastership/batch_modifier_spec.rb +38 -36
  33. data/spec/unit/def_mastership/change_ref_modifier_spec.rb +196 -51
  34. data/spec/unit/def_mastership/csv_formatter_body_spec.rb +60 -31
  35. data/spec/unit/def_mastership/csv_formatter_header_spec.rb +1 -1
  36. data/spec/unit/def_mastership/csv_formatter_spec.rb +79 -87
  37. data/spec/unit/def_mastership/definition_parser_spec.rb +1 -1
  38. data/spec/unit/def_mastership/definition_spec.rb +16 -6
  39. data/spec/unit/def_mastership/document_spec.rb +81 -38
  40. data/spec/unit/def_mastership/matching_line_spec.rb +37 -0
  41. data/spec/unit/def_mastership/modifier_factory_spec.rb +37 -0
  42. data/spec/unit/def_mastership/modifier_spec.rb +83 -0
  43. data/spec/unit/def_mastership/parsing_state_spec.rb +1 -1
  44. data/spec/unit/def_mastership/rename_included_files_modifier_spec.rb +219 -47
  45. data/spec/unit/def_mastership/string_spec.rb +1 -1
  46. data/spec/unit/def_mastership/update_def_checksum_modifier_spec.rb +82 -50
  47. data/spec/unit/def_mastership/update_def_modifier_spec.rb +119 -0
  48. data/spec/unit/def_mastership/update_def_version_modifier_spec.rb +135 -56
  49. data/tasks/console.rake +8 -0
  50. data/tasks/package.task +9 -0
  51. data/tasks/smelling_code.rake +38 -0
  52. data/tasks/test.rake +45 -0
  53. metadata +16 -153
  54. data/lib/defmastership/change_ref_line_modifier.rb +0 -85
  55. data/lib/defmastership/line_modifier_base.rb +0 -29
  56. data/lib/defmastership/modifier_base.rb +0 -36
  57. data/lib/defmastership/rename_included_files_line_modifier.rb +0 -126
  58. data/lib/defmastership/update_def_checksum_line_modifier.rb +0 -38
  59. data/lib/defmastership/update_def_version_line_modifier.rb +0 -58
  60. data/spec/unit/def_mastership/change_ref_line_modifier_spec.rb +0 -250
  61. data/spec/unit/def_mastership/rename_included_files_line_modifier_spec.rb +0 -207
  62. data/spec/unit/def_mastership/update_def_checksum_line_modifier_spec.rb +0 -82
  63. data/spec/unit/def_mastership/update_def_version_line_modifier_spec.rb +0 -131
@@ -0,0 +1,119 @@
1
+ # Copyright (c) 2020 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('defmastership/update_def_modifier')
5
+
6
+ module DefMastership
7
+ class ConcreteRefModifier < UpdateDefModifier
8
+ private
9
+
10
+ def reference_replacement(reference, match)
11
+ "#{reference}_something_#{match[:explicit_version]}"
12
+ end
13
+ end
14
+ end
15
+
16
+ RSpec.describe(DefMastership::UpdateDefModifier) do
17
+ subject(:modifier) { DefMastership::ConcreteRefModifier.new({}) }
18
+
19
+ describe '.new' do
20
+ it { expect(described_class.ancestors).to(include(DefMastership::Modifier)) }
21
+ it { is_expected.not_to(be_nil) }
22
+ it { is_expected.to(have_attributes(def_type: '')) }
23
+ end
24
+
25
+ describe '.replacement_methods' do
26
+ it { expect(described_class.replacement_methods).to(eq(%i[replace_reference])) }
27
+ end
28
+
29
+ describe '#do_modifications' do
30
+ subject(:modifier) { DefMastership::ConcreteRefModifier.new({ def_type: 'req' }) }
31
+
32
+ let(:document) { instance_double(DefMastership::Document, 'document') }
33
+ let(:definition) { instance_double(DefMastership::Definition, 'definition') }
34
+ let(:definitions) { { 'REFERENCE' => definition } }
35
+ let(:adoc_sources) do
36
+ {
37
+ 'file1.adoc' => "[define,req,REFERENCE]\nfile1 line2",
38
+ 'file2.adoc' => "file2 line1\nfile2 line2"
39
+ }
40
+ end
41
+ let(:new_adoc_sources) { nil }
42
+
43
+ before do
44
+ allow(DefMastership::Document).to(receive(:new).and_return(document))
45
+ allow(document).to(receive(:parse_file_with_preprocessor).with('file1.adoc'))
46
+ allow(document).to(receive(:parse_file_with_preprocessor).with('file2.adoc'))
47
+
48
+ modifier.do_modifications(adoc_sources)
49
+ end
50
+
51
+ it { expect(DefMastership::Document).to(have_received(:new)) }
52
+
53
+ it do
54
+ expect(document).to(
55
+ have_received(:parse_file_with_preprocessor)
56
+ .once.with('file1.adoc')
57
+ .once.with('file2.adoc')
58
+ )
59
+ end
60
+
61
+ it do
62
+ expect(modifier.do_modifications(adoc_sources).fetch('file1.adoc'))
63
+ .to(include('REFERENCE_something_'))
64
+ end
65
+ end
66
+
67
+ describe '#replace_reference' do
68
+ subject(:modifier) do
69
+ DefMastership::ConcreteRefModifier.new(
70
+ def_type: 'requirement'
71
+ )
72
+ end
73
+
74
+ let(:definition) { instance_double(DefMastership::Definition, 'definition') }
75
+ let(:document) { instance_double(DefMastership::Document, 'document') }
76
+ let(:definitions) { { 'REFERENCE' => definition } }
77
+
78
+ before do
79
+ allow(File).to(receive(:rename))
80
+ end
81
+
82
+ context 'when line do not match' do
83
+ it do
84
+ expect(modifier.replace_reference('[define---,req,REFERENCE(abcd)]'))
85
+ .to(eq('[define---,req,REFERENCE(abcd)]'))
86
+ end
87
+ end
88
+
89
+ context 'when definition has not the good type' do
90
+ it do
91
+ expect(modifier.replace_reference('[define,req,REFERENCE(abcd)]'))
92
+ .to(eq('[define,req,REFERENCE(abcd)]'))
93
+ end
94
+ end
95
+
96
+ context 'when definition has the good type' do
97
+ before do
98
+ allow(DefMastership::Document).to(receive(:new).and_return(document))
99
+ allow(document).to(receive(:ref_to_def).with('REFERENCE').and_return(definition))
100
+ allow(definition).to(receive(:sha256_short).and_return('~abcd1234'))
101
+ end
102
+
103
+ it do
104
+ expect(modifier.replace_reference('[define,requirement,REFERENCE(abcd)]'))
105
+ .to(eq('[define,requirement,REFERENCE_something_abcd]'))
106
+ end
107
+
108
+ it do
109
+ expect(modifier.replace_reference('[define,requirement,REFERENCE(abcd~bad)]'))
110
+ .to(eq('[define,requirement,REFERENCE_something_abcd]'))
111
+ end
112
+
113
+ it do
114
+ expect(modifier.replace_reference('// [define,requirement,REFERENCE(abcd~bad)]'))
115
+ .to(eq('// [define,requirement,REFERENCE(abcd~bad)]'))
116
+ end
117
+ end
118
+ end
119
+ end
@@ -1,80 +1,159 @@
1
1
  # Copyright (c) 2020 Jerome Arbez-Gindre
2
2
  # frozen_string_literal: true
3
3
 
4
- require('defmastership')
4
+ require('defmastership/update_def_version_modifier')
5
5
 
6
6
  RSpec.describe(DefMastership::UpdateDefVersionModifier) do
7
- subject(:modifier) do
8
- described_class.new(
9
- ref_document: 'ref.adoc'
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
7
+ subject(:modifier) { described_class.new({}) }
19
8
 
20
9
  describe '.new' do
10
+ it { expect(described_class.ancestors).to(include(DefMastership::Modifier)) }
21
11
  it { is_expected.not_to(be_nil) }
22
- it { is_expected.to(have_attributes(config: { ref_document: 'ref.adoc' })) }
23
- it { is_expected.to(have_attributes(changes: [])) }
12
+ it { is_expected.to(have_attributes(def_type: '')) }
13
+ it { is_expected.to(have_attributes(ref_document: '')) }
14
+ it { is_expected.to(have_attributes(first_version: '')) }
15
+ end
16
+
17
+ describe '.replacement_methods' do
18
+ it { expect(described_class.replacement_methods).to(eq(%i[replace_reference])) }
24
19
  end
25
20
 
26
21
  describe '#do_modifications' do
27
- let(:line_modifier) { instance_double(DefMastership::UpdateDefVersionLineModifier, 'lineModifier') }
28
- let(:document) { instance_double(DefMastership::Document, 'document') }
29
- let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
22
+ subject(:modifier) do
23
+ described_class.new(
24
+ ref_document: 'ref_doc.adoc',
25
+ def_type: 'req',
26
+ first_version: 'a'
27
+ )
28
+ end
29
+
30
+ let(:document) { instance_double(DefMastership::Document, 'document') }
31
+ let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
32
+ let(:definition) { instance_double(DefMastership::Definition, 'definition') }
33
+ let(:ref_definition) { instance_double(DefMastership::Definition, 'ref_definitions') }
34
+ let(:adoc_sources) do
35
+ {
36
+ 'file1.adoc' => "[define,req,REFERENCE]\nfile1 line2",
37
+ 'file2.adoc' => "file2 line1\nfile2 line2"
38
+ }
39
+ end
30
40
 
31
41
  before do
32
- allow(DefMastership::UpdateDefVersionLineModifier).to(
33
- receive(:from_config).with({ ref_document: 'ref.adoc' }).and_return(line_modifier)
42
+ allow(DefMastership::Document).to(receive(:new).twice.and_return(ref_document, document))
43
+ allow(document).to(receive(:parse_file_with_preprocessor).with('file1.adoc'))
44
+ allow(document).to(receive(:parse_file_with_preprocessor).with('file2.adoc'))
45
+ allow(ref_document).to(receive(:parse_file_with_preprocessor).with('ref_doc.adoc'))
46
+ allow(document).to(receive(:ref_to_def).with('REFERENCE').and_return(definition))
47
+ allow(ref_document).to(receive(:ref_to_def).with('REFERENCE').and_return(ref_definition))
48
+ allow(ref_definition).to(receive(:explicit_version).with(no_args).and_return(nil))
49
+ allow(definition).to(receive(:sha256_short).with(no_args).and_return('something'))
50
+ allow(ref_definition).to(receive(:sha256_short).with(no_args).and_return('something_else'))
51
+
52
+ modifier.do_modifications(adoc_sources)
53
+ end
54
+
55
+ it { expect(DefMastership::Document).to(have_received(:new).twice) }
56
+ it { expect(document).to(have_received(:parse_file_with_preprocessor).twice) }
57
+ it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('ref_doc.adoc')) }
58
+
59
+ it do
60
+ expect(modifier.do_modifications(adoc_sources).fetch('file1.adoc')).to(include('REFERENCE(a)'))
61
+ end
62
+ end
63
+
64
+ describe '#replace_reference' do
65
+ subject(:modifier) do
66
+ described_class.new(
67
+ def_type: 'requirement',
68
+ first_version: 'a'
34
69
  )
35
- allow(DefMastership::Document).to(receive(:new).and_return(document, ref_document))
36
- allow(document).to(receive(:parse_file_with_preprocessor))
37
- allow(ref_document).to(receive(:parse_file_with_preprocessor))
38
- allow(line_modifier).to(receive(:'document=').with(document))
39
- allow(line_modifier).to(receive(:'ref_document=').with(ref_document))
40
- allow(line_modifier).to(receive(:replace).with("file1 line1\n").and_return("new file1 line1\n"))
41
- allow(line_modifier).to(receive(:replace).with('file1 line2').and_return('new file1 line2'))
42
- allow(line_modifier).to(receive(:replace).with("file2 line1\n").and_return("new file2 line1\n"))
43
- allow(line_modifier).to(receive(:replace).with('file2 line2').and_return('new file2 line2'))
44
- allow(line_modifier).to(receive(:config).and_return(ref_document: 'ref.adoc'))
45
- allow(line_modifier).to(receive(:changes).and_return([%w[from1 to1], %w[from2 to2]]))
46
70
  end
47
71
 
48
- context 'when detailed expectations' do
49
- before { modifier.do_modifications(adoc_texts) }
72
+ let(:document) { instance_double(DefMastership::Document, 'document') }
73
+ let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
74
+ let(:definition) { instance_double(DefMastership::Definition, 'definition') }
75
+ let(:ref_definition) { instance_double(DefMastership::Definition, 'ref_definitions') }
50
76
 
77
+ before do
78
+ allow(File).to(receive(:rename))
79
+ allow(DefMastership::Document).to(receive(:new).with(no_args).and_return(ref_document, document))
80
+ end
81
+
82
+ context 'when definition has not the good type' do
51
83
  it do
52
- expect(DefMastership::UpdateDefVersionLineModifier).to(
53
- have_received(:from_config).with({ ref_document: 'ref.adoc' })
54
- )
84
+ expect(modifier.replace_reference('[define,req,REFERENCE]'))
85
+ .to(eq('[define,req,REFERENCE]'))
55
86
  end
56
-
57
- it { expect(document).to(have_received(:parse_file_with_preprocessor).with('file1.adoc')) }
58
- it { expect(document).to(have_received(:parse_file_with_preprocessor).with('file2.adoc')) }
59
- it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('ref.adoc')) }
60
- it { expect(line_modifier).to(have_received(:'document=').with(document)) }
61
- it { expect(line_modifier).to(have_received(:'ref_document=').with(ref_document)) }
62
- it { expect(line_modifier).to(have_received(:replace).with("file1 line1\n")) }
63
- it { expect(line_modifier).to(have_received(:replace).with('file1 line2')) }
64
- it { expect(line_modifier).to(have_received(:replace).with("file2 line1\n")) }
65
- it { expect(line_modifier).to(have_received(:replace).with('file2 line2')) }
66
- it { expect(line_modifier).to(have_received(:config)) }
67
- it { expect(line_modifier).to(have_received(:changes)) }
68
- it { is_expected.to(have_attributes(config: { ref_document: 'ref.adoc' })) }
69
- it { is_expected.to(have_attributes(changes: [%w[from1 to1], %w[from2 to2]])) }
70
87
  end
71
88
 
72
- it do
73
- expected_adoc = {
74
- 'file1.adoc' => "new file1 line1\nnew file1 line2",
75
- 'file2.adoc' => "new file2 line1\nnew file2 line2"
76
- }
77
- expect(modifier.do_modifications(adoc_texts)).to(eq(expected_adoc))
89
+ context 'when definition has the good type' do
90
+ before do
91
+ allow(document).to(receive(:ref_to_def).with('REFERENCE').and_return(definition))
92
+ allow(definition).to(receive(:sha256_short).and_return('~abcd1234'))
93
+ end
94
+
95
+ context 'when definition has NOT changed' do
96
+ before do
97
+ allow(ref_document).to(receive(:ref_to_def).with('REFERENCE').and_return(ref_definition))
98
+ allow(ref_definition).to(receive(:sha256_short).and_return('~abcd1234'))
99
+ end
100
+
101
+ it do
102
+ allow(ref_definition).to(receive(:explicit_version).and_return(nil))
103
+ expect(modifier.replace_reference('[define,requirement,REFERENCE]'))
104
+ .to(eq('[define,requirement,REFERENCE]'))
105
+ end
106
+
107
+ it do
108
+ allow(ref_definition).to(receive(:explicit_version).and_return('c'))
109
+ expect(modifier.replace_reference('[define,requirement,REFERENCE]'))
110
+ .to(eq('[define,requirement,REFERENCE(c)]'))
111
+ end
112
+
113
+ it do
114
+ allow(ref_definition).to(receive(:explicit_version).and_return('c'))
115
+ expect(modifier.replace_reference('[define,requirement,REFERENCE(tyty~1234)]'))
116
+ .to(eq('[define,requirement,REFERENCE(c~1234)]'))
117
+ end
118
+ end
119
+
120
+ context 'when definition has changed' do
121
+ before do
122
+ allow(ref_document).to(receive(:ref_to_def).with('REFERENCE').and_return(ref_definition))
123
+ allow(ref_definition).to(receive(:sha256_short).and_return('~4321aaaa'))
124
+ end
125
+
126
+ [
127
+ [nil, '', '(a)'],
128
+ ['c', '', '(d)'],
129
+ ['c', '(tyty~1234)', '(d~1234)'],
130
+ ['2', '', '(3)'],
131
+ ['1222', '', '(1223)'],
132
+ ['abb', '', '(abc)']
133
+ ].each do |ref, from, to|
134
+ it do
135
+ allow(ref_definition).to(receive(:explicit_version).and_return(ref))
136
+ expect(modifier.replace_reference("[define,requirement,REFERENCE#{from}]"))
137
+ .to(eq("[define,requirement,REFERENCE#{to}]"))
138
+ end
139
+ end
140
+ end
141
+
142
+ context 'when definition is new' do
143
+ before do
144
+ allow(ref_document).to(receive(:ref_to_def).with('REFERENCE').and_return(nil))
145
+ end
146
+
147
+ it do
148
+ expect(modifier.replace_reference('[define,requirement,REFERENCE(whatever)]'))
149
+ .to(eq('[define,requirement,REFERENCE]'))
150
+ end
151
+
152
+ it do
153
+ expect(modifier.replace_reference('[define,requirement,REFERENCE(~1234)]'))
154
+ .to(eq('[define,requirement,REFERENCE(~1234)]'))
155
+ end
156
+ end
78
157
  end
79
158
  end
80
159
  end
@@ -0,0 +1,8 @@
1
+ # Copyright (c) 2023 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ desc 'Starts the interactive console'
5
+ task :console do
6
+ require 'pry'
7
+ Pry.start
8
+ end
@@ -0,0 +1,9 @@
1
+ # Copyright (c) 2023 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('rubygems')
5
+ require('rubygems/package_task')
6
+
7
+ spec = eval(File.read('defmastership.gemspec'))
8
+
9
+ Gem::PackageTask.new(spec)
@@ -0,0 +1,38 @@
1
+ # Copyright (c) 2023 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ namespace 'quality' do
5
+ begin
6
+ require('rubocop/rake_task')
7
+
8
+ RuboCop::RakeTask.new do |task|
9
+ task.options << '--display-cop-names'
10
+ end
11
+ rescue LoadError
12
+ task(:rubocop) do
13
+ puts('Install rubocop to run its rake tasks')
14
+ end
15
+ end
16
+
17
+ begin
18
+ require('reek/rake/task')
19
+
20
+ Reek::Rake::Task.new do |t|
21
+ t.fail_on_error = true
22
+ t.verbose = false
23
+ end
24
+ rescue LoadError
25
+ task(:reek) do
26
+ puts('Install reek to run its rake tasks')
27
+ end
28
+ end
29
+
30
+ desc 'Runs all quality code check'
31
+ task(all: ['quality:rubocop', 'quality:reek'])
32
+ end
33
+
34
+ desc 'Synonym for quality:rubocop'
35
+ task(rubocop: 'quality:rubocop')
36
+
37
+ desc 'Synonym for quality:reek'
38
+ task(reek: 'quality:reek')
data/tasks/test.rake ADDED
@@ -0,0 +1,45 @@
1
+ # Copyright (c) 2023 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('cucumber/rake/task')
5
+ require('rspec/core/rake_task')
6
+
7
+ namespace 'test' do
8
+ RSpec::Core::RakeTask.new(:spec)
9
+
10
+ cuke_results = 'features_results.html'
11
+ CLEAN << cuke_results
12
+
13
+ Cucumber::Rake::Task.new(:features) do |t|
14
+ opts = ['features'] +
15
+ ['--format', 'html'] +
16
+ ['-o', cuke_results] +
17
+ ['--format', 'progress'] +
18
+ ['-x']
19
+
20
+ opts += ['--tags', ENV.fetch('TAGS').split.join(' or ')] if ENV['TAGS']
21
+ t.cucumber_opts = opts
22
+ end
23
+
24
+ Cucumber::Rake::Task.new('features:wip') do |t|
25
+ t.cucumber_opts = ['features'] +
26
+ ['--format', 'html'] +
27
+ ['-o', cuke_results] +
28
+ ['--format', 'pretty'] +
29
+ ['-x'] +
30
+ ['-s'] +
31
+ ['--tags', '@wip and not @pending']
32
+ end
33
+
34
+ desc 'Runs all unit tests and acceptance tests'
35
+ task(all: ['test:spec', 'test:features'])
36
+ end
37
+
38
+ desc 'Synonym for test:spec'
39
+ task(spec: 'test:spec')
40
+
41
+ desc 'Synonym for test:all'
42
+ task(test: 'test:all')
43
+
44
+ desc('Test all features')
45
+ task(cucumber: 'test:features')
metadata CHANGED
@@ -1,155 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: defmastership
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.17
4
+ version: 1.0.18
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: 2023-05-09 00:00:00.000000000 Z
11
+ date: 2024-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: aruba
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2'
27
- - !ruby/object:Gem::Dependency
28
- name: cucumber
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '8'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '8'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '13'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '13'
55
- - !ruby/object:Gem::Dependency
56
- name: rdoc
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '6'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '6'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: '1.50'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: '1.50'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-performance
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '1.17'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '1.17'
111
- - !ruby/object:Gem::Dependency
112
- name: rubocop-rake
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '0.6'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '0.6'
125
- - !ruby/object:Gem::Dependency
126
- name: rubocop-rspec
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '2.22'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '2.22'
139
- - !ruby/object:Gem::Dependency
140
- name: simplecov
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
13
  - !ruby/object:Gem::Dependency
154
14
  name: aasm
155
15
  requirement: !ruby/object:Gem::Requirement
@@ -231,7 +91,6 @@ files:
231
91
  - features/support/env.rb
232
92
  - lib/defmastership.rb
233
93
  - lib/defmastership/batch_modifier.rb
234
- - lib/defmastership/change_ref_line_modifier.rb
235
94
  - lib/defmastership/change_ref_modifier.rb
236
95
  - lib/defmastership/comment_filter.rb
237
96
  - lib/defmastership/constants.rb
@@ -242,19 +101,18 @@ files:
242
101
  - lib/defmastership/definition_parser.rb
243
102
  - lib/defmastership/document.rb
244
103
  - lib/defmastership/filters.rb
245
- - lib/defmastership/line_modifier_base.rb
246
- - lib/defmastership/modifier_base.rb
104
+ - lib/defmastership/matching_line.rb
105
+ - lib/defmastership/modifier.rb
106
+ - lib/defmastership/modifier_factory.rb
247
107
  - lib/defmastership/parsing_state.rb
248
- - lib/defmastership/rename_included_files_line_modifier.rb
249
108
  - lib/defmastership/rename_included_files_modifier.rb
250
- - lib/defmastership/update_def_checksum_line_modifier.rb
109
+ - lib/defmastership/set_join_hack.rb
251
110
  - lib/defmastership/update_def_checksum_modifier.rb
252
- - lib/defmastership/update_def_version_line_modifier.rb
111
+ - lib/defmastership/update_def_modifier.rb
253
112
  - lib/defmastership/update_def_version_modifier.rb
254
113
  - lib/defmastership/version.rb
255
114
  - spec/spec_helper.rb
256
115
  - spec/unit/def_mastership/batch_modifier_spec.rb
257
- - spec/unit/def_mastership/change_ref_line_modifier_spec.rb
258
116
  - spec/unit/def_mastership/change_ref_modifier_spec.rb
259
117
  - spec/unit/def_mastership/csv_formatter_body_spec.rb
260
118
  - spec/unit/def_mastership/csv_formatter_header_spec.rb
@@ -262,15 +120,20 @@ files:
262
120
  - spec/unit/def_mastership/definition_parser_spec.rb
263
121
  - spec/unit/def_mastership/definition_spec.rb
264
122
  - spec/unit/def_mastership/document_spec.rb
123
+ - spec/unit/def_mastership/matching_line_spec.rb
124
+ - spec/unit/def_mastership/modifier_factory_spec.rb
125
+ - spec/unit/def_mastership/modifier_spec.rb
265
126
  - spec/unit/def_mastership/parsing_state_spec.rb
266
- - spec/unit/def_mastership/rename_included_files_line_modifier_spec.rb
267
127
  - spec/unit/def_mastership/rename_included_files_modifier_spec.rb
268
128
  - spec/unit/def_mastership/string_spec.rb
269
- - spec/unit/def_mastership/update_def_checksum_line_modifier_spec.rb
270
129
  - spec/unit/def_mastership/update_def_checksum_modifier_spec.rb
271
- - spec/unit/def_mastership/update_def_version_line_modifier_spec.rb
130
+ - spec/unit/def_mastership/update_def_modifier_spec.rb
272
131
  - spec/unit/def_mastership/update_def_version_modifier_spec.rb
273
132
  - spec/unit/def_mastership_spec.rb
133
+ - tasks/console.rake
134
+ - tasks/package.task
135
+ - tasks/smelling_code.rake
136
+ - tasks/test.rake
274
137
  homepage: https://gitlab.com/jjag/defmastership/
275
138
  licenses:
276
139
  - MIT
@@ -295,7 +158,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
295
158
  - !ruby/object:Gem::Version
296
159
  version: '0'
297
160
  requirements: []
298
- rubygems_version: 3.4.5
161
+ rubygems_version: 3.5.6
299
162
  signing_key:
300
163
  specification_version: 4
301
164
  summary: Handling of references and definitions with asciidoctor