defmastership 1.3.3 → 1.3.4

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -9
  3. data/Rakefile +1 -1
  4. data/defmastership.gemspec +3 -2
  5. data/features/changeref.feature +30 -0
  6. data/features/export.feature +55 -0
  7. data/features/rename_included_files.feature +27 -0
  8. data/features/step_definitions/git_steps.rb +3 -0
  9. data/lib/defmastership/app.rb +31 -3
  10. data/lib/defmastership/export/csv/formatter.rb +8 -60
  11. data/lib/defmastership/export/formatter.rb +88 -0
  12. data/lib/defmastership/export/json/formatter.rb +34 -0
  13. data/lib/defmastership/export/xlsx/formatter.rb +87 -0
  14. data/lib/defmastership/export/yaml/formatter.rb +34 -0
  15. data/lib/defmastership/modifier/change_ref.rb +13 -5
  16. data/lib/defmastership/modifier/modifier_common.rb +4 -4
  17. data/lib/defmastership/modifier/rename_included_files.rb +7 -5
  18. data/lib/defmastership/modifier/update_def.rb +2 -1
  19. data/lib/defmastership/modifier/update_eref_common.rb +2 -1
  20. data/lib/defmastership/modifier/update_iref_checksum.rb +2 -1
  21. data/lib/defmastership/modifier/update_iref_version.rb +2 -1
  22. data/lib/defmastership/version.rb +1 -1
  23. data/spec/unit/defmastership/app_spec.rb +27 -3
  24. data/spec/unit/defmastership/export/csv/formatter_spec.rb +44 -231
  25. data/spec/unit/defmastership/export/formatter_spec.rb +97 -0
  26. data/spec/unit/defmastership/export/json/formatter_spec.rb +85 -0
  27. data/spec/unit/defmastership/export/xlsx/formatter_spec.rb +82 -0
  28. data/spec/unit/defmastership/export/yaml/formatter_spec.rb +85 -0
  29. data/spec/unit/defmastership/modifier/change_ref_spec.rb +54 -48
  30. data/spec/unit/defmastership/modifier/modifier_common_spec.rb +5 -5
  31. data/spec/unit/defmastership/modifier/rename_included_files_spec.rb +66 -62
  32. data/spec/unit/defmastership/modifier/update_def_checksum_spec.rb +5 -5
  33. data/spec/unit/defmastership/modifier/update_def_spec.rb +12 -10
  34. data/spec/unit/defmastership/modifier/update_def_version_spec.rb +9 -7
  35. data/spec/unit/defmastership/modifier/update_eref_checksum_spec.rb +26 -17
  36. data/spec/unit/defmastership/modifier/update_eref_version_spec.rb +34 -22
  37. data/spec/unit/defmastership/modifier/update_iref_checksum_spec.rb +8 -8
  38. data/spec/unit/defmastership/modifier/update_iref_version_spec.rb +11 -11
  39. data/tasks/code_quality.rake +1 -1
  40. metadata +28 -6
@@ -0,0 +1,85 @@
1
+ # Copyright (c) 2020 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('defmastership/document')
5
+ require('defmastership/export/json/formatter')
6
+
7
+ RSpec.describe(Defmastership::Export::JSON::Formatter) do
8
+ subject(:formatter) { described_class.new(document) }
9
+
10
+ let(:document) { instance_double(Defmastership::Document, 'document') }
11
+
12
+ describe '.new' do
13
+ it { is_expected.not_to(be_nil) }
14
+ end
15
+
16
+ describe '#export_to' do
17
+ let(:header) { instance_double(Defmastership::Export::HeaderFormatter, 'header') }
18
+ let(:bodies) do
19
+ [
20
+ instance_double(Defmastership::Export::BodyFormatter, 'bodies[0]'),
21
+ instance_double(Defmastership::Export::BodyFormatter, 'bodies[1]')
22
+ ]
23
+ end
24
+
25
+ let(:json) { instance_double(JSON, 'json') }
26
+ let(:expected_hash_array) do
27
+ [
28
+ {
29
+ 'checksum header': 'checksum def0 body',
30
+ 'reference header': 'reference def0 body',
31
+ 'type header': 'type def0 body',
32
+ 'value header': 'value def0 body'
33
+ },
34
+ {
35
+ 'checksum header': 'checksum def1 body',
36
+ 'reference header': 'reference def1 body',
37
+ 'type header': 'type def1 body',
38
+ 'value header': 'value def1 body'
39
+ }
40
+ ]
41
+ end
42
+
43
+ before do
44
+ allow(Defmastership::Export::HeaderFormatter).to(receive(:new).with(document).and_return(header))
45
+ bodies.each_with_index do |body, index|
46
+ allow(Defmastership::Export::BodyFormatter).to(
47
+ receive(:new).with(
48
+ document,
49
+ :"def#{index}"
50
+ ).and_return(body)
51
+ )
52
+ end
53
+ allow(document).to(receive(:definitions).and_return(%i[def0 def1]))
54
+ allow(document).to(receive(:summaries?).with(no_args).and_return(false))
55
+ allow(document).to(receive(:wrong_explicit_checksum?).with(no_args).and_return(false))
56
+ allow(document).to(receive(:explicit_version?).with(no_args).and_return(false))
57
+ allow(document).to(receive(:labels).with(no_args).and_return([]))
58
+ allow(document).to(receive(:eref).with(no_args).and_return([]))
59
+ allow(document).to(receive(:iref).with(no_args).and_return(false))
60
+ allow(document).to(receive(:attributes).with(no_args).and_return([]))
61
+
62
+ COLUMN_METHODS.each do |method|
63
+ allow(header).to(receive(method).with(no_args).and_return(["#{method} header"]))
64
+ bodies.each_with_index do |body, index|
65
+ allow(body).to(receive(method).with(no_args).and_return(["#{method} def#{index} body"]))
66
+ end
67
+ end
68
+
69
+ allow(JSON).to(receive(:pretty_generate)).and_return('the generated json')
70
+ allow(File).to(receive(:write).with('filename', 'the generated json'))
71
+ formatter.export_to('filename')
72
+ end
73
+
74
+ COLUMN_METHODS.each do |method|
75
+ it { expect(header).to(have_received(method).with(no_args)) }
76
+
77
+ 2.times do |index|
78
+ it { expect(bodies[index]).to(have_received(method).with(no_args)) }
79
+ end
80
+ end
81
+
82
+ it { expect(JSON).to(have_received(:pretty_generate).with(expected_hash_array)) }
83
+ it { expect(File).to(have_received(:write).with('filename', 'the generated json')) }
84
+ end
85
+ end
@@ -0,0 +1,82 @@
1
+ # Copyright (c) 2020 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('defmastership/export/xlsx/formatter')
5
+ require('rubyXL')
6
+
7
+ RSpec.describe(Defmastership::Export::XLSX::Formatter) do
8
+ subject(:formatter) { described_class.new(document) }
9
+
10
+ let(:document) { instance_double(Defmastership::Document, 'document') }
11
+
12
+ describe '.new' do
13
+ it { is_expected.not_to(be_nil) }
14
+ end
15
+
16
+ describe '#export_to' do
17
+ let(:header) { instance_double(Defmastership::Export::HeaderFormatter, 'header') }
18
+ let(:bodies) do
19
+ [
20
+ instance_double(Defmastership::Export::BodyFormatter, 'bodies[0]'),
21
+ instance_double(Defmastership::Export::BodyFormatter, 'bodies[1]')
22
+ ]
23
+ end
24
+ let(:workbook) { instance_double(RubyXL::Workbook, 'workbook') }
25
+ let(:worksheet) { instance_double(RubyXL::Worksheet, 'worksheet') }
26
+
27
+ before do
28
+ allow(RubyXL::Workbook).to(receive(:new).and_return(workbook))
29
+ allow(workbook).to(receive(:worksheets).with(no_args).and_return([worksheet]))
30
+ allow(worksheet).to(receive(:add_cell))
31
+ allow(workbook).to(receive(:write))
32
+ allow(Defmastership::Export::HeaderFormatter).to(receive(:new).with(document).and_return(header))
33
+ bodies.each_with_index do |body, index|
34
+ allow(Defmastership::Export::BodyFormatter).to(
35
+ receive(:new).with(
36
+ document,
37
+ :"def#{index}"
38
+ ).and_return(body)
39
+ )
40
+ end
41
+ allow(document).to(receive(:definitions).and_return(%i[def0 def1]))
42
+ allow(document).to(receive(:summaries?).with(no_args).and_return(false))
43
+ allow(document).to(receive(:wrong_explicit_checksum?).with(no_args).and_return(false))
44
+ allow(document).to(receive(:explicit_version?).with(no_args).and_return(false))
45
+ allow(document).to(receive(:labels).with(no_args).and_return([]))
46
+ allow(document).to(receive(:eref).with(no_args).and_return([]))
47
+ allow(document).to(receive(:iref).with(no_args).and_return(false))
48
+ allow(document).to(receive(:attributes).with(no_args).and_return([]))
49
+ end
50
+
51
+ context 'when no variable columns' do
52
+ before do
53
+ COLUMN_METHODS.each do |method|
54
+ allow(header).to(receive(method).with(no_args).and_return(["#{method} header"]))
55
+ bodies.each_with_index do |body, index|
56
+ allow(body).to(receive(method).with(no_args).and_return(["#{method} def#{index} body"]))
57
+ end
58
+ end
59
+ formatter.export_to('whatever')
60
+ end
61
+
62
+ it { expect(RubyXL::Workbook).to(have_received(:new)) }
63
+ it { expect(workbook).to(have_received(:worksheets)) }
64
+
65
+ COLUMN_METHODS.each do |method|
66
+ it { expect(header).to(have_received(method).with(no_args)) }
67
+
68
+ 2.times do |index|
69
+ it { expect(bodies[index]).to(have_received(method).with(no_args)) }
70
+ end
71
+ end
72
+
73
+ COLUMN_METHODS.each_with_index do |method, index|
74
+ it { expect(worksheet).to(have_received(:add_cell).with(0, index, "#{method} header")) }
75
+ it { expect(worksheet).to(have_received(:add_cell).with(1, index, "#{method} def0 body")) }
76
+ it { expect(worksheet).to(have_received(:add_cell).with(2, index, "#{method} def1 body")) }
77
+ end
78
+
79
+ it { expect(workbook).to(have_received(:write).with('whatever')) }
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,85 @@
1
+ # Copyright (c) 2020 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require('defmastership/document')
5
+ require('defmastership/export/yaml/formatter')
6
+
7
+ RSpec.describe(Defmastership::Export::YAML::Formatter) do
8
+ subject(:formatter) { described_class.new(document) }
9
+
10
+ let(:document) { instance_double(Defmastership::Document, 'document') }
11
+
12
+ describe '.new' do
13
+ it { is_expected.not_to(be_nil) }
14
+ end
15
+
16
+ describe '#export_to' do
17
+ let(:header) { instance_double(Defmastership::Export::HeaderFormatter, 'header') }
18
+ let(:bodies) do
19
+ [
20
+ instance_double(Defmastership::Export::BodyFormatter, 'bodies[0]'),
21
+ instance_double(Defmastership::Export::BodyFormatter, 'bodies[1]')
22
+ ]
23
+ end
24
+
25
+ let(:yaml) { instance_double(YAML, 'yaml') }
26
+ let(:expected_hash_array) do
27
+ [
28
+ {
29
+ 'checksum header': 'checksum def0 body',
30
+ 'reference header': 'reference def0 body',
31
+ 'type header': 'type def0 body',
32
+ 'value header': 'value def0 body'
33
+ },
34
+ {
35
+ 'checksum header': 'checksum def1 body',
36
+ 'reference header': 'reference def1 body',
37
+ 'type header': 'type def1 body',
38
+ 'value header': 'value def1 body'
39
+ }
40
+ ]
41
+ end
42
+
43
+ before do
44
+ allow(Defmastership::Export::HeaderFormatter).to(receive(:new).with(document).and_return(header))
45
+ bodies.each_with_index do |body, index|
46
+ allow(Defmastership::Export::BodyFormatter).to(
47
+ receive(:new).with(
48
+ document,
49
+ :"def#{index}"
50
+ ).and_return(body)
51
+ )
52
+ end
53
+ allow(document).to(receive(:definitions).and_return(%i[def0 def1]))
54
+ allow(document).to(receive(:summaries?).with(no_args).and_return(false))
55
+ allow(document).to(receive(:wrong_explicit_checksum?).with(no_args).and_return(false))
56
+ allow(document).to(receive(:explicit_version?).with(no_args).and_return(false))
57
+ allow(document).to(receive(:labels).with(no_args).and_return([]))
58
+ allow(document).to(receive(:eref).with(no_args).and_return([]))
59
+ allow(document).to(receive(:iref).with(no_args).and_return(false))
60
+ allow(document).to(receive(:attributes).with(no_args).and_return([]))
61
+
62
+ COLUMN_METHODS.each do |method|
63
+ allow(header).to(receive(method).with(no_args).and_return(["#{method} header"]))
64
+ bodies.each_with_index do |body, index|
65
+ allow(body).to(receive(method).with(no_args).and_return(["#{method} def#{index} body"]))
66
+ end
67
+ end
68
+
69
+ allow(YAML).to(receive(:dump)).and_return('the generated yaml')
70
+ allow(File).to(receive(:write).with('filename', 'the generated yaml'))
71
+ formatter.export_to('filename')
72
+ end
73
+
74
+ COLUMN_METHODS.each do |method|
75
+ it { expect(header).to(have_received(method).with(no_args)) }
76
+
77
+ 2.times do |index|
78
+ it { expect(bodies[index]).to(have_received(method).with(no_args)) }
79
+ end
80
+ end
81
+
82
+ it { expect(YAML).to(have_received(:dump).with(expected_hash_array)) }
83
+ it { expect(File).to(have_received(:write).with('filename', 'the generated yaml')) }
84
+ end
85
+ end
@@ -28,25 +28,27 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
28
28
 
29
29
  context 'when valid definition' do
30
30
  it do
31
- expect(refchanger.replace_refdef('[define, whatever, TEMP]')).to(eq('[define, whatever, TUTU]'))
31
+ expect(refchanger.replace_refdef('', '[define, whatever, TEMP]')).to(eq('[define, whatever, TUTU]'))
32
32
  end
33
33
 
34
34
  it do
35
- expect(refchanger.replace_refdef('[define, whatever, TEMP(a~12345678)]'))
35
+ expect(refchanger.replace_refdef('', '[define, whatever, TEMP(a~12345678)]'))
36
36
  .to(eq('[define, whatever, TUTU(a~12345678)]'))
37
37
  end
38
38
 
39
39
  it do
40
- expect(refchanger.replace_refdef('[define, whatever, TEMP(~12345678)]'))
40
+ expect(refchanger.replace_refdef('', '[define, whatever, TEMP(~12345678)]'))
41
41
  .to(eq('[define, whatever, TUTU(~12345678)]'))
42
42
  end
43
43
 
44
- it { expect(refchanger.replace_refdef('[define, whatever, TEMP(a)]')).to(eq('[define, whatever, TUTU(a)]')) }
44
+ it do
45
+ expect(refchanger.replace_refdef('', '[define, whatever, TEMP(a)]')).to(eq('[define, whatever, TUTU(a)]'))
46
+ end
45
47
  end
46
48
 
47
49
  context 'when no valid definition' do
48
50
  it do
49
- expect(refchanger.replace_refdef('[pouet, whatever, TEMP]')).to(eq('[pouet, whatever, TEMP]'))
51
+ expect(refchanger.replace_refdef('', '[pouet, whatever, TEMP]')).to(eq('[pouet, whatever, TEMP]'))
50
52
  end
51
53
  end
52
54
  end
@@ -57,11 +59,11 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
57
59
  end
58
60
 
59
61
  it do
60
- expect(refchanger.replace_refdef('[define, whatever, TEMP]')).to(eq('[define, whatever, TOTO-0124]'))
62
+ expect(refchanger.replace_refdef('', '[define, whatever, TEMP]')).to(eq('[define, whatever, TOTO-0124]'))
61
63
  end
62
64
 
63
65
  it do
64
- refchanger.replace_refdef('[define, whatever, TEMP]')
66
+ refchanger.replace_refdef('', '[define, whatever, TEMP]')
65
67
  expect(refchanger).to(have_attributes(next_ref: 125))
66
68
  end
67
69
  end
@@ -75,16 +77,18 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
75
77
  )
76
78
  end
77
79
 
78
- it { expect(refchanger.replace_refdef('[define, whatever, TOTO-TEMP]')).to(eq('[define, whatever, TOTO-0132]')) }
80
+ it do
81
+ expect(refchanger.replace_refdef('', '[define, whatever, TOTO-TEMP]')).to(eq('[define, whatever, TOTO-0132]'))
82
+ end
79
83
 
80
84
  it do
81
- refchanger.replace_refdef('[define, whatever, TOTO-TEMP]')
82
- expect(refchanger.replace_refdef('[define, whatever, TITI-TEMP]')).to(eq('[define, whatever, TITI-0133]'))
85
+ refchanger.replace_refdef('', '[define, whatever, TOTO-TEMP]')
86
+ expect(refchanger.replace_refdef('', '[define, whatever, TITI-TEMP]')).to(eq('[define, whatever, TITI-0133]'))
83
87
  end
84
88
 
85
89
  it do
86
- refchanger.replace_refdef('[define, whatever, TOTO-TEMP1]')
87
- refchanger.replace_refdef('[define, whatever, TITI-TEMP2]')
90
+ refchanger.replace_refdef('', '[define, whatever, TOTO-TEMP1]')
91
+ refchanger.replace_refdef('', '[define, whatever, TITI-TEMP2]')
88
92
  expect(refchanger).to(have_attributes(changes: [%w[TOTO-TEMP1 TOTO-0132], %w[TITI-TEMP2 TITI-0133]]))
89
93
  end
90
94
  end
@@ -93,10 +97,10 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
93
97
  subject(:refchanger) { described_class.new(from_regexp: 'TEMP', to_template: 'TUTU') }
94
98
 
95
99
  before do
96
- refchanger.replace_refdef('....')
100
+ refchanger.replace_refdef('', '....')
97
101
  end
98
102
 
99
- it { expect(refchanger.replace_refdef('[define, whatever, TEMP]')).to(eq('[define, whatever, TEMP]')) }
103
+ it { expect(refchanger.replace_refdef('', '[define, whatever, TEMP]')).to(eq('[define, whatever, TEMP]')) }
100
104
  end
101
105
 
102
106
  context 'when definition is after literal block' do
@@ -105,27 +109,27 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
105
109
  end
106
110
 
107
111
  before do
108
- refchanger.replace_refdef("....\n")
109
- refchanger.replace_refdef('[define, whatever, TEMP]')
110
- refchanger.replace_refdef("....\n")
112
+ refchanger.replace_refdef('', "....\n")
113
+ refchanger.replace_refdef('', '[define, whatever, TEMP]')
114
+ refchanger.replace_refdef('', "....\n")
111
115
  end
112
116
 
113
- it { expect(refchanger.replace_refdef('[define, whatever, TEMP]')).to(eq('[define, whatever, TUTU]')) }
117
+ it { expect(refchanger.replace_refdef('', '[define, whatever, TEMP]')).to(eq('[define, whatever, TUTU]')) }
114
118
  end
115
119
 
116
120
  context 'when definition do no fit with a definition\'s type value' do
117
121
  subject(:refchanger) { described_class.new(def_type: 'req', from_regexp: 'TEMP', to_template: 'TUTU') }
118
122
 
119
- it { expect(refchanger.replace_refdef('[define, whatever, TEMP]')).to(eq('[define, whatever, TEMP]')) }
120
- it { expect(refchanger.replace_refdef('[define, req, TEMP]')).to(eq('[define, req, TUTU]')) }
123
+ it { expect(refchanger.replace_refdef('', '[define, whatever, TEMP]')).to(eq('[define, whatever, TEMP]')) }
124
+ it { expect(refchanger.replace_refdef('', '[define, req, TEMP]')).to(eq('[define, req, TUTU]')) }
121
125
  end
122
126
 
123
127
  context 'when definition do no fit with a definition\'s type list' do
124
128
  subject(:refchanger) { described_class.new(def_type: %w[req pouet], from_regexp: 'TEMP', to_template: 'TUTU') }
125
129
 
126
- it { expect(refchanger.replace_refdef('[define, whatever, TEMP]')).to(eq('[define, whatever, TEMP]')) }
127
- it { expect(refchanger.replace_refdef('[define, req, TEMP]')).to(eq('[define, req, TUTU]')) }
128
- it { expect(refchanger.replace_refdef('[define, pouet, TEMP]')).to(eq('[define, pouet, TUTU]')) }
130
+ it { expect(refchanger.replace_refdef('', '[define, whatever, TEMP]')).to(eq('[define, whatever, TEMP]')) }
131
+ it { expect(refchanger.replace_refdef('', '[define, req, TEMP]')).to(eq('[define, req, TUTU]')) }
132
+ it { expect(refchanger.replace_refdef('', '[define, pouet, TEMP]')).to(eq('[define, pouet, TUTU]')) }
129
133
  end
130
134
  end
131
135
 
@@ -139,26 +143,22 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
139
143
  end
140
144
 
141
145
  before do
142
- refchanger.replace_refdef('[define, whatever, TOTO-TEMP123]')
143
- refchanger.replace_refdef('[define, whatever, TITI-TEMP421]')
146
+ refchanger.replace_refdef('', '[define, whatever, TOTO-TEMP123]')
147
+ refchanger.replace_refdef('', '[define, whatever, TITI-TEMP421]')
144
148
  end
145
149
 
146
- it { expect(refchanger.replace_irefs('defs:iref[TOTO-TEMP1234]')).to(eq('defs:iref[TOTO-TEMP1234]')) }
147
- it { expect(refchanger.replace_irefs('defs:iref[TOTO-TEMP123]')).to(eq('defs:iref[TOTO-0132]')) }
150
+ it { expect(refchanger.replace_irefs('', 'defs:iref[TOTO-TEMP1234]')).to(eq('defs:iref[TOTO-TEMP1234]')) }
151
+ it { expect(refchanger.replace_irefs('', 'defs:iref[TOTO-TEMP123]')).to(eq('defs:iref[TOTO-0132]')) }
148
152
 
149
153
  it do
150
154
  expect(
151
- refchanger.replace_irefs(
152
- 'defs:iref[TOTO-TEMP123] defs:iref[TITI-TEMP421] bla'
153
- )
155
+ refchanger.replace_irefs('', 'defs:iref[TOTO-TEMP123] defs:iref[TITI-TEMP421] bla')
154
156
  ).to(eq('defs:iref[TOTO-0132] defs:iref[TITI-0133] bla'))
155
157
  end
156
158
 
157
159
  it do
158
160
  expect(
159
- refchanger.replace_irefs(
160
- 'defs:iref[TOTO-TEMP123] defs:iref[TOTO-TEMP123] bla'
161
- )
161
+ refchanger.replace_irefs('', 'defs:iref[TOTO-TEMP123] defs:iref[TOTO-TEMP123] bla')
162
162
  ).to(eq('defs:iref[TOTO-0132] defs:iref[TOTO-0132] bla'))
163
163
  end
164
164
  end
@@ -173,12 +173,12 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
173
173
  end
174
174
 
175
175
  before do
176
- refchanger.replace_refdef('[define, whatever, TOTO-TEMP123]')
177
- refchanger.replace_refdef('[define, whatever, TITI-TEMP421]')
176
+ refchanger.replace_refdef('', '[define, whatever, TOTO-TEMP123]')
177
+ refchanger.replace_refdef('', '[define, whatever, TITI-TEMP421]')
178
178
  end
179
179
 
180
180
  it do
181
- expect(refchanger.replace_irefs('include::target[tags=TOTO-TEMP1234]'))
181
+ expect(refchanger.replace_irefs('', 'include::target[tags=TOTO-TEMP1234]'))
182
182
  .to(eq('include::target[tags=TOTO-TEMP1234]'))
183
183
  end
184
184
 
@@ -191,7 +191,9 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
191
191
  ['tag=!TITI-TEMP421;TOTO-TEMP123', 'tag=!TITI-0133;TOTO-0132']
192
192
  ].each do |from, to|
193
193
  it do
194
- expect(refchanger.replace_include_tags("include::path/target[#{from}]")).to(eq("include::path/target[#{to}]"))
194
+ expect(
195
+ refchanger.replace_include_tags('', "include::path/target[#{from}]")
196
+ ).to(eq("include::path/target[#{to}]"))
195
197
  end
196
198
  end
197
199
 
@@ -201,7 +203,7 @@ RSpec.describe(Defmastership::Modifier::ChangeRef) do
201
203
  'include:target[tag=TITI-TEMP421]',
202
204
  '# include::target[tag=TITI-TEMP421]'
203
205
  ].each do |unchanged|
204
- it { expect(refchanger.replace_include_tags(unchanged)).to(eq(unchanged)) }
206
+ it { expect(refchanger.replace_include_tags('', unchanged)).to(eq(unchanged)) }
205
207
  end
206
208
  end
207
209
 
@@ -247,28 +249,32 @@ MIF
247
249
  end
248
250
 
249
251
  before do
250
- refchanger.replace_refdef('[define, whatever, TOTO-TEMP123]')
251
- refchanger.replace_refdef('[define, whatever, TITI-TEMP421]')
252
+ refchanger.replace_refdef('', '[define, whatever, TOTO-TEMP123]')
253
+ refchanger.replace_refdef('', '[define, whatever, TITI-TEMP421]')
252
254
 
253
- allow(File).to(receive(:readlines)).with('target').and_return(['# tag::TOTO-TEMP123'])
254
- allow(File).to(receive(:readlines)).with('path/target').and_return(original_included_file.split)
255
+ allow(File).to(receive(:readlines)).with('sub/target').and_return(['whatever'])
256
+ allow(File).to(receive(:readlines)).with('sub/path/target').and_return(original_included_file.split)
257
+ allow(File).to(receive(:readlines)).with('./path/target').and_return(['whatever'])
258
+ allow(File).to(receive(:readlines)).with('./target').and_return(['whatever'])
255
259
 
256
260
  allow(File).to(receive(:writelines))
257
261
 
258
- refchanger.replace_tags_in_included_files('include::path/target[]')
259
- refchanger.replace_tags_in_included_files('includ::otherpath/othertarget[]')
262
+ refchanger.replace_tags_in_included_files('sub/one_file.adoc', 'include::path/target[]')
263
+ refchanger.replace_tags_in_included_files('', 'includ::otherpath/othertarget[]')
260
264
  end
261
265
 
262
- it { expect(File).to(have_received(:readlines).with('path/target')) }
266
+ it { expect(File).to(have_received(:readlines).with('sub/path/target')) }
263
267
 
264
268
  it do
265
- expect(File).to(have_received(:writelines).with('path/target', mofified_included_file.split))
269
+ expect(File).to(have_received(:writelines).with('sub/path/target', mofified_included_file.split))
266
270
  end
267
271
 
268
272
  it { expect(File).not_to(have_received(:readlines).with('otherpath/othertarget')) }
269
273
 
270
- it { expect(refchanger.replace_tags_in_included_files('include::target[]')).to(eq('include::target[]')) }
274
+ it { expect(refchanger.replace_tags_in_included_files('', 'include::target[]')).to(eq('include::target[]')) }
271
275
 
272
- it { expect(refchanger.replace_tags_in_included_files('include::path/target[]')).to(eq('include::path/target[]')) }
276
+ it do
277
+ expect(refchanger.replace_tags_in_included_files('', 'include::path/target[]')).to(eq('include::path/target[]'))
278
+ end
273
279
  end
274
280
  end
@@ -32,13 +32,13 @@ class DummyClass < DummyClassParent
32
32
  end
33
33
 
34
34
  # This method smells of :reek:UtilityFunction
35
- def replace_pouet_by_foo(line)
36
- line.gsub('pouet', 'foo')
35
+ def replace_pouet_by_foo(filename, line)
36
+ line.gsub('pouet', "foo(#{filename})")
37
37
  end
38
38
 
39
39
  # This method smells of :reek:UtilityFunction
40
- def replace_foo_by_zoo(line)
41
- line.gsub('foo', 'zoo')
40
+ def replace_foo_by_zoo(filename, line)
41
+ line.gsub('foo', "zoo(#{filename})")
42
42
  end
43
43
  end
44
44
 
@@ -70,7 +70,7 @@ RSpec.describe(Defmastership::Modifier::ModifierCommon) do
70
70
  adoc_sources = { first: "pouet\ntoto\npouet", second: "toto\npouet\ntoto" }
71
71
 
72
72
  expect(modifier.do_modifications(adoc_sources))
73
- .to(eq({ first: "zoo\ntoto\nzoo", second: "toto\nzoo\ntoto" }))
73
+ .to(eq({ first: "zoo(first)(first)\ntoto\nzoo(first)(first)", second: "toto\nzoo(second)(second)\ntoto" }))
74
74
  end
75
75
  end
76
76
  end