defmastership 1.0.19 → 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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.gitlab-ci.yml +27 -0
  4. data/Gemfile +27 -16
  5. data/LICENSE +1 -1
  6. data/README.adoc +24 -0
  7. data/Rakefile +0 -1
  8. data/bin/defmastership +5 -5
  9. data/config/mutant.yml +18 -16
  10. data/config/rubocop.yml +5 -10
  11. data/defmastership.gemspec +3 -3
  12. data/lib/defmastership/batch_modifier.rb +23 -5
  13. data/lib/defmastership/comment_filter.rb +2 -1
  14. data/lib/defmastership/definition.rb +24 -4
  15. data/lib/defmastership/definition_parser.rb +2 -2
  16. data/lib/defmastership/document.rb +39 -19
  17. data/lib/defmastership/export/body_formatter.rb +55 -0
  18. data/lib/defmastership/export/csv/formatter.rb +64 -0
  19. data/lib/defmastership/export/header_formatter.rb +51 -0
  20. data/lib/defmastership/filters.rb +15 -12
  21. data/lib/defmastership/matching_line.rb +3 -2
  22. data/lib/defmastership/modifier/change_ref.rb +117 -0
  23. data/lib/defmastership/modifier/factory.rb +17 -0
  24. data/lib/defmastership/modifier/modifier_common.rb +71 -0
  25. data/lib/defmastership/modifier/rename_included_files.rb +223 -0
  26. data/lib/defmastership/modifier/update_def.rb +72 -0
  27. data/lib/defmastership/modifier/update_def_checksum.rb +17 -0
  28. data/lib/defmastership/modifier/update_def_version.rb +110 -0
  29. data/lib/defmastership/set_join_hack.rb +2 -0
  30. data/lib/defmastership/version.rb +3 -2
  31. data/lib/defmastership.rb +6 -8
  32. data/spec/unit/{def_mastership → defmastership}/batch_modifier_spec.rb +13 -13
  33. data/spec/unit/{def_mastership → defmastership}/definition_parser_spec.rb +1 -1
  34. data/spec/unit/{def_mastership → defmastership}/definition_spec.rb +1 -1
  35. data/spec/unit/{def_mastership → defmastership}/document_spec.rb +57 -57
  36. data/spec/unit/{def_mastership/csv_formatter_body_spec.rb → defmastership/export/body_formatter_spec.rb} +4 -4
  37. data/spec/unit/{def_mastership/csv_formatter_spec.rb → defmastership/export/csv/formatter_spec.rb} +13 -8
  38. data/spec/unit/{def_mastership/csv_formatter_header_spec.rb → defmastership/export/header_formatter_spec.rb} +3 -3
  39. data/spec/unit/{def_mastership → defmastership}/matching_line_spec.rb +1 -1
  40. data/spec/unit/{def_mastership/change_ref_modifier_spec.rb → defmastership/modifier/change_ref_spec.rb} +19 -44
  41. data/spec/unit/defmastership/modifier/factory_spec.rb +45 -0
  42. data/spec/unit/{def_mastership/modifier_spec.rb → defmastership/modifier/modifier_common_spec.rb} +3 -12
  43. data/spec/unit/{def_mastership/rename_included_files_modifier_spec.rb → defmastership/modifier/rename_included_files_spec.rb} +3 -3
  44. data/spec/unit/{def_mastership/update_def_checksum_modifier_spec.rb → defmastership/modifier/update_def_checksum_spec.rb} +10 -10
  45. data/spec/unit/{def_mastership/update_def_modifier_spec.rb → defmastership/modifier/update_def_spec.rb} +22 -20
  46. data/spec/unit/{def_mastership/update_def_version_modifier_spec.rb → defmastership/modifier/update_def_version_spec.rb} +38 -38
  47. data/spec/unit/{def_mastership_spec.rb → defmastership_spec.rb} +2 -2
  48. data/tasks/documentation.rake +19 -0
  49. data/tasks/package.rake +4 -0
  50. metadata +63 -43
  51. data/README.rdoc +0 -6
  52. data/defmastership.rdoc +0 -5
  53. data/lib/defmastership/change_ref_modifier.rb +0 -99
  54. data/lib/defmastership/constants.rb +0 -91
  55. data/lib/defmastership/csv_formatter.rb +0 -53
  56. data/lib/defmastership/csv_formatter_body.rb +0 -46
  57. data/lib/defmastership/csv_formatter_header.rb +0 -41
  58. data/lib/defmastership/modifier.rb +0 -42
  59. data/lib/defmastership/modifier_factory.rb +0 -12
  60. data/lib/defmastership/parsing_state.rb +0 -31
  61. data/lib/defmastership/rename_included_files_modifier.rb +0 -182
  62. data/lib/defmastership/update_def_checksum_modifier.rb +0 -16
  63. data/lib/defmastership/update_def_modifier.rb +0 -49
  64. data/lib/defmastership/update_def_version_modifier.rb +0 -91
  65. data/spec/unit/def_mastership/modifier_factory_spec.rb +0 -38
  66. data/spec/unit/def_mastership/parsing_state_spec.rb +0 -62
  67. data/tasks/package.task +0 -9
  68. /data/spec/unit/{def_mastership → defmastership}/string_spec.rb +0 -0
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) 2023 Jerome Arbez-Gindre
2
2
  # frozen_string_literal: true
3
3
 
4
- require('defmastership/modifier')
4
+ require('defmastership/modifier/modifier_common')
5
5
 
6
6
  # just a class for test
7
7
  class DummyClassParent
@@ -16,7 +16,7 @@ end
16
16
 
17
17
  # just a class for test
18
18
  class DummyClass < DummyClassParent
19
- include DefMastership::Modifier
19
+ include Defmastership::Modifier::ModifierCommon
20
20
 
21
21
  def self.replacement_methods
22
22
  %i[replace_pouet_by_foo replace_foo_by_zoo]
@@ -42,7 +42,7 @@ class DummyClass < DummyClassParent
42
42
  end
43
43
  end
44
44
 
45
- RSpec.describe(DefMastership::Modifier) do
45
+ RSpec.describe(Defmastership::Modifier::ModifierCommon) do
46
46
  subject(:modifier) { DummyClass.new({}) }
47
47
 
48
48
  describe '.new' do
@@ -65,15 +65,6 @@ RSpec.describe(DefMastership::Modifier) do
65
65
  end
66
66
  end
67
67
 
68
- describe '#apply_to_all' do
69
- it do
70
- texts = { first: "pouet\ntoto\npouet", second: "toto\npouet\ntoto" }
71
-
72
- expect(modifier.apply_to_all(texts, :replace_pouet_by_foo))
73
- .to(eq({ first: "foo\ntoto\nfoo", second: "toto\nfoo\ntoto" }))
74
- end
75
- end
76
-
77
68
  describe '#do_modifications' do
78
69
  it do
79
70
  adoc_sources = { first: "pouet\ntoto\npouet", second: "toto\npouet\ntoto" }
@@ -1,13 +1,13 @@
1
1
  # Copyright (c) 2021 Jerome Arbez-Gindre
2
2
  # frozen_string_literal: true
3
3
 
4
- require('defmastership/rename_included_files_modifier')
4
+ require('defmastership/modifier/rename_included_files')
5
5
 
6
- RSpec.describe(DefMastership::RenameIncludedFilesModifier) do
6
+ RSpec.describe(Defmastership::Modifier::RenameIncludedFiles) do
7
7
  subject(:includeschanger) { described_class.new({}) }
8
8
 
9
9
  describe '.new' do
10
- it { expect(described_class.ancestors).to(include(DefMastership::Modifier)) }
10
+ it { expect(described_class.ancestors).to(include(Defmastership::Modifier::ModifierCommon)) }
11
11
  it { is_expected.not_to(be_nil) }
12
12
  it { is_expected.to(have_attributes(from_regexp: '')) }
13
13
  it { is_expected.to(have_attributes(to_template: '')) }
@@ -1,13 +1,13 @@
1
1
  # Copyright (c) 2020 Jerome Arbez-Gindre
2
2
  # frozen_string_literal: true
3
3
 
4
- require('defmastership/update_def_checksum_modifier')
4
+ require('defmastership/modifier/update_def_checksum')
5
5
 
6
- RSpec.describe(DefMastership::UpdateDefChecksumModifier) do
6
+ RSpec.describe(Defmastership::Modifier::UpdateDefChecksum) do
7
7
  subject(:modifier) { described_class.new({}) }
8
8
 
9
9
  describe '.new' do
10
- it { expect(described_class.ancestors).to(include(DefMastership::Modifier)) }
10
+ it { expect(described_class.ancestors).to(include(Defmastership::Modifier::ModifierCommon)) }
11
11
  it { is_expected.not_to(be_nil) }
12
12
  it { is_expected.to(have_attributes(def_type: '')) }
13
13
  end
@@ -19,8 +19,8 @@ RSpec.describe(DefMastership::UpdateDefChecksumModifier) do
19
19
  describe '#do_modifications' do
20
20
  subject(:modifier) { described_class.new({ def_type: 'req' }) }
21
21
 
22
- let(:document) { instance_double(DefMastership::Document, 'document') }
23
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
22
+ let(:document) { instance_double(Defmastership::Document, 'document') }
23
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
24
24
  let(:definitions) { { 'REFERENCE' => definition } }
25
25
  let(:adoc_sources) do
26
26
  {
@@ -31,7 +31,7 @@ RSpec.describe(DefMastership::UpdateDefChecksumModifier) do
31
31
  let(:new_adoc_sources) { nil }
32
32
 
33
33
  before do
34
- allow(DefMastership::Document).to(receive(:new).and_return(document))
34
+ allow(Defmastership::Document).to(receive(:new).and_return(document))
35
35
  allow(document).to(receive(:parse_file_with_preprocessor))
36
36
  allow(document).to(receive(:ref_to_def).with('REFERENCE').and_return(definition))
37
37
  allow(definition).to(receive(:sha256_short).and_return('~abcd1234'))
@@ -39,7 +39,7 @@ RSpec.describe(DefMastership::UpdateDefChecksumModifier) do
39
39
  modifier.do_modifications(adoc_sources)
40
40
  end
41
41
 
42
- it { expect(DefMastership::Document).to(have_received(:new)) }
42
+ it { expect(Defmastership::Document).to(have_received(:new)) }
43
43
 
44
44
  it do
45
45
  expect(document).to(
@@ -61,8 +61,8 @@ RSpec.describe(DefMastership::UpdateDefChecksumModifier) do
61
61
  )
62
62
  end
63
63
 
64
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
65
- let(:document) { instance_double(DefMastership::Document, 'document') }
64
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
65
+ let(:document) { instance_double(Defmastership::Document, 'document') }
66
66
  let(:definitions) { { 'REFERENCE' => definition } }
67
67
 
68
68
  before do
@@ -78,7 +78,7 @@ RSpec.describe(DefMastership::UpdateDefChecksumModifier) do
78
78
 
79
79
  context 'when definition has the good type' do
80
80
  before do
81
- allow(DefMastership::Document).to(receive(:new).and_return(document))
81
+ allow(Defmastership::Document).to(receive(:new).and_return(document))
82
82
  allow(document).to(receive(:ref_to_def).with('REFERENCE').and_return(definition))
83
83
  allow(definition).to(receive(:sha256_short).and_return('~abcd1234'))
84
84
  end
@@ -1,25 +1,27 @@
1
1
  # Copyright (c) 2020 Jerome Arbez-Gindre
2
2
  # frozen_string_literal: true
3
3
 
4
- require('defmastership/update_def_modifier')
4
+ require('defmastership/modifier/update_def')
5
5
 
6
- module DefMastership
7
- # Just a class for tests
8
- class ConcreteRefModifier < UpdateDefModifier
9
- private
6
+ module Defmastership
7
+ module Modifier
8
+ # Just a class for tests
9
+ class ConcreteRef < UpdateDef
10
+ private
10
11
 
11
- # This method smells of :reek:UtilityFunction
12
- def reference_replacement(reference, match)
13
- "#{reference}_something_#{match[:explicit_version]}"
12
+ # This method smells of :reek:UtilityFunction
13
+ def reference_replacement(reference, match)
14
+ "#{reference}_something_#{match[:explicit_version]}"
15
+ end
14
16
  end
15
17
  end
16
18
  end
17
19
 
18
- RSpec.describe(DefMastership::UpdateDefModifier) do
19
- subject(:modifier) { DefMastership::ConcreteRefModifier.new({}) }
20
+ RSpec.describe(Defmastership::Modifier::UpdateDef) do
21
+ subject(:modifier) { Defmastership::Modifier::ConcreteRef.new({}) }
20
22
 
21
23
  describe '.new' do
22
- it { expect(described_class.ancestors).to(include(DefMastership::Modifier)) }
24
+ it { expect(described_class.ancestors).to(include(Defmastership::Modifier::ModifierCommon)) }
23
25
  it { is_expected.not_to(be_nil) }
24
26
  it { is_expected.to(have_attributes(def_type: '')) }
25
27
  end
@@ -29,10 +31,10 @@ RSpec.describe(DefMastership::UpdateDefModifier) do
29
31
  end
30
32
 
31
33
  describe '#do_modifications' do
32
- subject(:modifier) { DefMastership::ConcreteRefModifier.new({ def_type: 'req' }) }
34
+ subject(:modifier) { Defmastership::Modifier::ConcreteRef.new({ def_type: 'req' }) }
33
35
 
34
- let(:document) { instance_double(DefMastership::Document, 'document') }
35
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
36
+ let(:document) { instance_double(Defmastership::Document, 'document') }
37
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
36
38
  let(:definitions) { { 'REFERENCE' => definition } }
37
39
  let(:adoc_sources) do
38
40
  {
@@ -43,14 +45,14 @@ RSpec.describe(DefMastership::UpdateDefModifier) do
43
45
  let(:new_adoc_sources) { nil }
44
46
 
45
47
  before do
46
- allow(DefMastership::Document).to(receive(:new).and_return(document))
48
+ allow(Defmastership::Document).to(receive(:new).and_return(document))
47
49
  allow(document).to(receive(:parse_file_with_preprocessor).with('file1.adoc'))
48
50
  allow(document).to(receive(:parse_file_with_preprocessor).with('file2.adoc'))
49
51
 
50
52
  modifier.do_modifications(adoc_sources)
51
53
  end
52
54
 
53
- it { expect(DefMastership::Document).to(have_received(:new)) }
55
+ it { expect(Defmastership::Document).to(have_received(:new)) }
54
56
 
55
57
  it do
56
58
  expect(document).to(
@@ -68,13 +70,13 @@ RSpec.describe(DefMastership::UpdateDefModifier) do
68
70
 
69
71
  describe '#replace_reference' do
70
72
  subject(:modifier) do
71
- DefMastership::ConcreteRefModifier.new(
73
+ Defmastership::Modifier::ConcreteRef.new(
72
74
  def_type: 'requirement'
73
75
  )
74
76
  end
75
77
 
76
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
77
- let(:document) { instance_double(DefMastership::Document, 'document') }
78
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
79
+ let(:document) { instance_double(Defmastership::Document, 'document') }
78
80
  let(:definitions) { { 'REFERENCE' => definition } }
79
81
 
80
82
  before do
@@ -97,7 +99,7 @@ RSpec.describe(DefMastership::UpdateDefModifier) do
97
99
 
98
100
  context 'when definition has the good type' do
99
101
  before do
100
- allow(DefMastership::Document).to(receive(:new).and_return(document))
102
+ allow(Defmastership::Document).to(receive(:new).and_return(document))
101
103
  allow(document).to(receive(:ref_to_def).with('REFERENCE').and_return(definition))
102
104
  allow(definition).to(receive(:sha256_short).and_return('~abcd1234'))
103
105
  end
@@ -1,14 +1,14 @@
1
1
  # Copyright (c) 2020 Jerome Arbez-Gindre
2
2
  # frozen_string_literal: true
3
3
 
4
- require('defmastership/update_def_version_modifier')
4
+ require('defmastership/modifier/update_def_version')
5
5
  require('git')
6
6
 
7
- RSpec.describe(DefMastership::UpdateDefVersionModifier) do
7
+ RSpec.describe(Defmastership::Modifier::UpdateDefVersion) do
8
8
  subject(:modifier) { described_class.new({}) }
9
9
 
10
10
  describe '.new' do
11
- it { expect(described_class.ancestors).to(include(DefMastership::Modifier)) }
11
+ it { expect(described_class.ancestors).to(include(Defmastership::Modifier::ModifierCommon)) }
12
12
  it { is_expected.not_to(be_nil) }
13
13
  it { is_expected.to(have_attributes(def_type: '')) }
14
14
  it { is_expected.to(have_attributes(ref_document: [])) }
@@ -29,10 +29,10 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
29
29
  )
30
30
  end
31
31
 
32
- let(:document) { instance_double(DefMastership::Document, 'document') }
33
- let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
34
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
35
- let(:ref_definition) { instance_double(DefMastership::Definition, 'ref_definitions') }
32
+ let(:document) { instance_double(Defmastership::Document, 'document') }
33
+ let(:ref_document) { instance_double(Defmastership::Document, 'ref_document') }
34
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
35
+ let(:ref_definition) { instance_double(Defmastership::Definition, 'ref_definitions') }
36
36
  let(:adoc_sources) do
37
37
  {
38
38
  'file1.adoc' => "[define,req,REFERENCE]\nfile1 line2",
@@ -41,7 +41,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
41
41
  end
42
42
 
43
43
  before do
44
- allow(DefMastership::Document).to(receive(:new).twice.and_return(ref_document, document))
44
+ allow(Defmastership::Document).to(receive(:new).twice.and_return(ref_document, document))
45
45
  allow(document).to(receive(:parse_file_with_preprocessor).with('file1.adoc'))
46
46
  allow(document).to(receive(:parse_file_with_preprocessor).with('file2.adoc'))
47
47
  allow(ref_document).to(receive(:parse_file_with_preprocessor).with('ref_doc.adoc'))
@@ -55,7 +55,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
55
55
  end
56
56
 
57
57
  it { is_expected.to(have_attributes(ref_document: ['ref_doc.adoc'])) }
58
- it { expect(DefMastership::Document).to(have_received(:new).twice) }
58
+ it { expect(Defmastership::Document).to(have_received(:new).twice) }
59
59
  it { expect(document).to(have_received(:parse_file_with_preprocessor).twice) }
60
60
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('ref_doc.adoc')) }
61
61
 
@@ -73,10 +73,10 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
73
73
  )
74
74
  end
75
75
 
76
- let(:document) { instance_double(DefMastership::Document, 'document') }
77
- let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
78
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
79
- let(:ref_definition) { instance_double(DefMastership::Definition, 'ref_definitions') }
76
+ let(:document) { instance_double(Defmastership::Document, 'document') }
77
+ let(:ref_document) { instance_double(Defmastership::Document, 'ref_document') }
78
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
79
+ let(:ref_definition) { instance_double(Defmastership::Definition, 'ref_definitions') }
80
80
  let(:adoc_sources) do
81
81
  {
82
82
  'file1.adoc' => "[define,req,REFERENCE]\nfile1 line2",
@@ -85,7 +85,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
85
85
  end
86
86
 
87
87
  before do
88
- allow(DefMastership::Document).to(receive(:new).twice.and_return(ref_document, document))
88
+ allow(Defmastership::Document).to(receive(:new).twice.and_return(ref_document, document))
89
89
  allow(document).to(receive(:parse_file_with_preprocessor).with('file1.adoc'))
90
90
  allow(document).to(receive(:parse_file_with_preprocessor).with('file2.adoc'))
91
91
  allow(ref_document).to(receive(:parse_file_with_preprocessor).with('ref_doc1.adoc'))
@@ -99,7 +99,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
99
99
  modifier.do_modifications(adoc_sources)
100
100
  end
101
101
 
102
- it { expect(DefMastership::Document).to(have_received(:new).twice) }
102
+ it { expect(Defmastership::Document).to(have_received(:new).twice) }
103
103
  it { expect(document).to(have_received(:parse_file_with_preprocessor).twice) }
104
104
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('ref_doc1.adoc')) }
105
105
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('ref_doc2.adoc')) }
@@ -114,10 +114,10 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
114
114
  )
115
115
  end
116
116
 
117
- let(:document) { instance_double(DefMastership::Document, 'document') }
118
- let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
119
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
120
- let(:ref_definition) { instance_double(DefMastership::Definition, 'ref_definitions') }
117
+ let(:document) { instance_double(Defmastership::Document, 'document') }
118
+ let(:ref_document) { instance_double(Defmastership::Document, 'ref_document') }
119
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
120
+ let(:ref_definition) { instance_double(Defmastership::Definition, 'ref_definitions') }
121
121
  let(:adoc_sources) do
122
122
  {
123
123
  'file1.adoc' => "[define,req,REFERENCE]\nfile1 line2",
@@ -128,7 +128,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
128
128
  before do
129
129
  allow(Dir).to(receive(:mktmpdir).and_yield('tmp'))
130
130
  allow(Git).to(receive(:clone))
131
- allow(DefMastership::Document).to(receive(:new).twice.and_return(ref_document, document))
131
+ allow(Defmastership::Document).to(receive(:new).twice.and_return(ref_document, document))
132
132
  allow(document).to(receive(:parse_file_with_preprocessor).with('file1.adoc'))
133
133
  allow(document).to(receive(:parse_file_with_preprocessor).with('file2.adoc'))
134
134
  allow(ref_document).to(receive(:parse_file_with_preprocessor).with('tmp/file1.adoc'))
@@ -144,7 +144,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
144
144
 
145
145
  it { expect(Dir).to(have_received(:mktmpdir).with('defmastership')) }
146
146
  it { expect(Git).to(have_received(:clone).with('.', 'tmp', branch: 'THE_TAG')) }
147
- it { expect(DefMastership::Document).to(have_received(:new).twice) }
147
+ it { expect(Defmastership::Document).to(have_received(:new).twice) }
148
148
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('tmp/file1.adoc')) }
149
149
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('tmp/file2.adoc')) }
150
150
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).twice) }
@@ -164,10 +164,10 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
164
164
  )
165
165
  end
166
166
 
167
- let(:document) { instance_double(DefMastership::Document, 'document') }
168
- let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
169
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
170
- let(:ref_definition) { instance_double(DefMastership::Definition, 'ref_definitions') }
167
+ let(:document) { instance_double(Defmastership::Document, 'document') }
168
+ let(:ref_document) { instance_double(Defmastership::Document, 'ref_document') }
169
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
170
+ let(:ref_definition) { instance_double(Defmastership::Definition, 'ref_definitions') }
171
171
  let(:adoc_sources) do
172
172
  {
173
173
  'file1.adoc' => "[define,req,REFERENCE]\nfile1 line2",
@@ -178,7 +178,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
178
178
  before do
179
179
  allow(Dir).to(receive(:mktmpdir).and_yield('tmp'))
180
180
  allow(Git).to(receive(:clone))
181
- allow(DefMastership::Document).to(receive(:new).twice.and_return(ref_document, document))
181
+ allow(Defmastership::Document).to(receive(:new).twice.and_return(ref_document, document))
182
182
  allow(document).to(receive(:parse_file_with_preprocessor).with('file1.adoc'))
183
183
  allow(document).to(receive(:parse_file_with_preprocessor).with('file2.adoc'))
184
184
  allow(ref_document).to(receive(:parse_file_with_preprocessor).with('tmp/file1.adoc'))
@@ -194,7 +194,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
194
194
 
195
195
  it { expect(Dir).to(have_received(:mktmpdir).with('defmastership')) }
196
196
  it { expect(Git).to(have_received(:clone).with('not dot', 'tmp', branch: 'THE_TAG')) }
197
- it { expect(DefMastership::Document).to(have_received(:new).twice) }
197
+ it { expect(Defmastership::Document).to(have_received(:new).twice) }
198
198
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('tmp/file1.adoc')) }
199
199
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('tmp/file2.adoc')) }
200
200
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).twice) }
@@ -214,10 +214,10 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
214
214
  )
215
215
  end
216
216
 
217
- let(:document) { instance_double(DefMastership::Document, 'document') }
218
- let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
219
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
220
- let(:ref_definition) { instance_double(DefMastership::Definition, 'ref_definitions') }
217
+ let(:document) { instance_double(Defmastership::Document, 'document') }
218
+ let(:ref_document) { instance_double(Defmastership::Document, 'ref_document') }
219
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
220
+ let(:ref_definition) { instance_double(Defmastership::Definition, 'ref_definitions') }
221
221
  let(:adoc_sources) do
222
222
  {
223
223
  'file1.adoc' => "[define,req,REFERENCE]\nfile1 line2",
@@ -228,7 +228,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
228
228
  before do
229
229
  allow(Dir).to(receive(:mktmpdir).and_yield('tmp'))
230
230
  allow(Git).to(receive(:clone))
231
- allow(DefMastership::Document).to(receive(:new).twice.and_return(ref_document, document))
231
+ allow(Defmastership::Document).to(receive(:new).twice.and_return(ref_document, document))
232
232
  allow(document).to(receive(:parse_file_with_preprocessor).with('file1.adoc'))
233
233
  allow(document).to(receive(:parse_file_with_preprocessor).with('file2.adoc'))
234
234
  allow(ref_document).to(receive(:parse_file_with_preprocessor))
@@ -243,7 +243,7 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
243
243
 
244
244
  it { expect(Dir).to(have_received(:mktmpdir).with('defmastership')) }
245
245
  it { expect(Git).to(have_received(:clone).with('.', 'tmp', branch: 'THE_TAG')) }
246
- it { expect(DefMastership::Document).to(have_received(:new).twice) }
246
+ it { expect(Defmastership::Document).to(have_received(:new).twice) }
247
247
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).with('tmp/./another/doc.adoc')) }
248
248
  it { expect(ref_document).to(have_received(:parse_file_with_preprocessor).once) }
249
249
 
@@ -261,14 +261,14 @@ RSpec.describe(DefMastership::UpdateDefVersionModifier) do
261
261
  )
262
262
  end
263
263
 
264
- let(:document) { instance_double(DefMastership::Document, 'document') }
265
- let(:ref_document) { instance_double(DefMastership::Document, 'ref_document') }
266
- let(:definition) { instance_double(DefMastership::Definition, 'definition') }
267
- let(:ref_definition) { instance_double(DefMastership::Definition, 'ref_definitions') }
264
+ let(:document) { instance_double(Defmastership::Document, 'document') }
265
+ let(:ref_document) { instance_double(Defmastership::Document, 'ref_document') }
266
+ let(:definition) { instance_double(Defmastership::Definition, 'definition') }
267
+ let(:ref_definition) { instance_double(Defmastership::Definition, 'ref_definitions') }
268
268
 
269
269
  before do
270
270
  allow(File).to(receive(:rename))
271
- allow(DefMastership::Document).to(receive(:new).with(no_args).and_return(ref_document, document))
271
+ allow(Defmastership::Document).to(receive(:new).with(no_args).and_return(ref_document, document))
272
272
  end
273
273
 
274
274
  context 'when definition has not the good type' do
@@ -1,8 +1,8 @@
1
1
  # Copyright (c) 2020 Jerome Arbez-Gindre
2
2
  # frozen_string_literal: true
3
3
 
4
- RSpec.describe(DefMastership) do
4
+ RSpec.describe(Defmastership) do
5
5
  it 'has a version number' do
6
- expect(DefMastership::VERSION).not_to(be_nil)
6
+ expect(Defmastership::VERSION).not_to(be_nil)
7
7
  end
8
8
  end
@@ -0,0 +1,19 @@
1
+ # Copyright (c) 2024 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ namespace 'documentation' do
5
+ require('yard')
6
+
7
+ YARD::Rake::YardocTask.new do |task|
8
+ task.files = ['lib/**/*.rb']
9
+ task.options = ['--fail-on-warning', '--verbose']
10
+ task.stats_options = ['--list-undoc']
11
+ end
12
+ rescue LoadError
13
+ task(:yard) do
14
+ puts('Install Yard to run its rake tasks')
15
+ end
16
+ end
17
+
18
+ desc 'Synonym for documentation:yard'
19
+ task(yard: 'documentation:yard')
@@ -0,0 +1,4 @@
1
+ # Copyright (c) 2024 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('bundler/gem_tasks')
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.19
4
+ version: 1.1.0
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: 2024-07-16 00:00:00.000000000 Z
11
+ date: 2024-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: defmastership-core
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: git
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,21 +94,33 @@ dependencies:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
96
  version: '2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: ostruct
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  description:
84
112
  email: jeromearbezgindre@gmail.com
85
113
  executables:
86
114
  - defmastership
87
115
  extensions: []
88
- extra_rdoc_files:
89
- - README.rdoc
90
- - defmastership.rdoc
116
+ extra_rdoc_files: []
91
117
  files:
92
118
  - ".gitignore"
93
119
  - ".gitlab-ci.yml"
94
120
  - Gemfile
95
121
  - Guardfile
96
122
  - LICENSE
97
- - README.rdoc
123
+ - README.adoc
98
124
  - Rakefile
99
125
  - bin/defmastership
100
126
  - config/cucumber.yml
@@ -103,7 +129,6 @@ files:
103
129
  - config/rspec
104
130
  - config/rubocop.yml
105
131
  - defmastership.gemspec
106
- - defmastership.rdoc
107
132
  - features/changeref.feature
108
133
  - features/definition_checksum.feature
109
134
  - features/definition_version.feature
@@ -116,48 +141,46 @@ files:
116
141
  - features/support/env.rb
117
142
  - lib/defmastership.rb
118
143
  - lib/defmastership/batch_modifier.rb
119
- - lib/defmastership/change_ref_modifier.rb
120
144
  - lib/defmastership/comment_filter.rb
121
- - lib/defmastership/constants.rb
122
- - lib/defmastership/csv_formatter.rb
123
- - lib/defmastership/csv_formatter_body.rb
124
- - lib/defmastership/csv_formatter_header.rb
125
145
  - lib/defmastership/definition.rb
126
146
  - lib/defmastership/definition_parser.rb
127
147
  - lib/defmastership/document.rb
148
+ - lib/defmastership/export/body_formatter.rb
149
+ - lib/defmastership/export/csv/formatter.rb
150
+ - lib/defmastership/export/header_formatter.rb
128
151
  - lib/defmastership/filters.rb
129
152
  - lib/defmastership/matching_line.rb
130
- - lib/defmastership/modifier.rb
131
- - lib/defmastership/modifier_factory.rb
132
- - lib/defmastership/parsing_state.rb
133
- - lib/defmastership/rename_included_files_modifier.rb
153
+ - lib/defmastership/modifier/change_ref.rb
154
+ - lib/defmastership/modifier/factory.rb
155
+ - lib/defmastership/modifier/modifier_common.rb
156
+ - lib/defmastership/modifier/rename_included_files.rb
157
+ - lib/defmastership/modifier/update_def.rb
158
+ - lib/defmastership/modifier/update_def_checksum.rb
159
+ - lib/defmastership/modifier/update_def_version.rb
134
160
  - lib/defmastership/set_join_hack.rb
135
- - lib/defmastership/update_def_checksum_modifier.rb
136
- - lib/defmastership/update_def_modifier.rb
137
- - lib/defmastership/update_def_version_modifier.rb
138
161
  - lib/defmastership/version.rb
139
162
  - spec/spec_helper.rb
140
- - spec/unit/def_mastership/batch_modifier_spec.rb
141
- - spec/unit/def_mastership/change_ref_modifier_spec.rb
142
- - spec/unit/def_mastership/csv_formatter_body_spec.rb
143
- - spec/unit/def_mastership/csv_formatter_header_spec.rb
144
- - spec/unit/def_mastership/csv_formatter_spec.rb
145
- - spec/unit/def_mastership/definition_parser_spec.rb
146
- - spec/unit/def_mastership/definition_spec.rb
147
- - spec/unit/def_mastership/document_spec.rb
148
- - spec/unit/def_mastership/matching_line_spec.rb
149
- - spec/unit/def_mastership/modifier_factory_spec.rb
150
- - spec/unit/def_mastership/modifier_spec.rb
151
- - spec/unit/def_mastership/parsing_state_spec.rb
152
- - spec/unit/def_mastership/rename_included_files_modifier_spec.rb
153
- - spec/unit/def_mastership/string_spec.rb
154
- - spec/unit/def_mastership/update_def_checksum_modifier_spec.rb
155
- - spec/unit/def_mastership/update_def_modifier_spec.rb
156
- - spec/unit/def_mastership/update_def_version_modifier_spec.rb
157
- - spec/unit/def_mastership_spec.rb
163
+ - spec/unit/defmastership/batch_modifier_spec.rb
164
+ - spec/unit/defmastership/definition_parser_spec.rb
165
+ - spec/unit/defmastership/definition_spec.rb
166
+ - spec/unit/defmastership/document_spec.rb
167
+ - spec/unit/defmastership/export/body_formatter_spec.rb
168
+ - spec/unit/defmastership/export/csv/formatter_spec.rb
169
+ - spec/unit/defmastership/export/header_formatter_spec.rb
170
+ - spec/unit/defmastership/matching_line_spec.rb
171
+ - spec/unit/defmastership/modifier/change_ref_spec.rb
172
+ - spec/unit/defmastership/modifier/factory_spec.rb
173
+ - spec/unit/defmastership/modifier/modifier_common_spec.rb
174
+ - spec/unit/defmastership/modifier/rename_included_files_spec.rb
175
+ - spec/unit/defmastership/modifier/update_def_checksum_spec.rb
176
+ - spec/unit/defmastership/modifier/update_def_spec.rb
177
+ - spec/unit/defmastership/modifier/update_def_version_spec.rb
178
+ - spec/unit/defmastership/string_spec.rb
179
+ - spec/unit/defmastership_spec.rb
158
180
  - tasks/code_quality.rake
159
181
  - tasks/console.rake
160
- - tasks/package.task
182
+ - tasks/documentation.rake
183
+ - tasks/package.rake
161
184
  - tasks/test.rake
162
185
  homepage: https://gitlab.com/jjag/defmastership/
163
186
  licenses:
@@ -165,10 +188,7 @@ licenses:
165
188
  metadata:
166
189
  rubygems_mfa_required: 'true'
167
190
  post_install_message:
168
- rdoc_options:
169
- - "--title defmastership"
170
- - "--main README.rdoc"
171
- - "-ri"
191
+ rdoc_options: []
172
192
  require_paths:
173
193
  - lib
174
194
  - lib
@@ -183,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
203
  - !ruby/object:Gem::Version
184
204
  version: '0'
185
205
  requirements: []
186
- rubygems_version: 3.5.9
206
+ rubygems_version: 3.5.22
187
207
  signing_key:
188
208
  specification_version: 4
189
209
  summary: Handling of references and definitions with asciidoctor
data/README.rdoc DELETED
@@ -1,6 +0,0 @@
1
- = defmastership
2
-
3
- Describe your project here
4
-
5
- :include:defmastership.rdoc
6
-
data/defmastership.rdoc DELETED
@@ -1,5 +0,0 @@
1
- = defmastership
2
-
3
- Generate this with
4
- defmastership _doc
5
- After you have described your command line interface