defmastership 1.0.19 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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