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
@@ -100,18 +100,20 @@ RSpec.describe(Defmastership::Modifier::UpdateErefVersion) do
100
100
  ['(a~abcd1234)', '(z~abcd1234)']
101
101
  ].each do |from, to|
102
102
  it do
103
- modifier.replace_erefs("defs:eref[type, [THE_REF#{from}]]")
103
+ modifier.replace_erefs('', "defs:eref[type, [THE_REF#{from}]]")
104
104
  expect(ref_document).to(have_received(:ref_to_def).with('THE_REF'))
105
105
  end
106
106
 
107
107
  it do
108
- modifier.replace_erefs("defs:eref[type, [THE_REF#{from}]]")
108
+ modifier.replace_erefs('', "defs:eref[type, [THE_REF#{from}]]")
109
109
  expect(ref_definition).to(have_received(:explicit_version))
110
110
  end
111
111
 
112
- it {
113
- expect(modifier.replace_erefs("defs:eref[type, [THE_REF#{from}]]")).to(eq("defs:eref[type, [THE_REF#{to}]]"))
114
- }
112
+ it do
113
+ expect(
114
+ modifier.replace_erefs('', "defs:eref[type, [THE_REF#{from}]]")
115
+ ).to(eq("defs:eref[type, [THE_REF#{to}]]"))
116
+ end
115
117
  end
116
118
  end
117
119
 
@@ -128,18 +130,20 @@ RSpec.describe(Defmastership::Modifier::UpdateErefVersion) do
128
130
  ['(a~abcd1234)', '(~abcd1234)']
129
131
  ].each do |from, to|
130
132
  it do
131
- modifier.replace_erefs("defs:eref[type, [THE_REF#{from}]]")
133
+ modifier.replace_erefs('', "defs:eref[type, [THE_REF#{from}]]")
132
134
  expect(ref_document).to(have_received(:ref_to_def).with('THE_REF'))
133
135
  end
134
136
 
135
137
  it do
136
- modifier.replace_erefs("defs:eref[type, [THE_REF#{from}]]")
138
+ modifier.replace_erefs('', "defs:eref[type, [THE_REF#{from}]]")
137
139
  expect(ref_definition).to(have_received(:explicit_version))
138
140
  end
139
141
 
140
- it {
141
- expect(modifier.replace_erefs("defs:eref[type, [THE_REF#{from}]]")).to(eq("defs:eref[type, [THE_REF#{to}]]"))
142
- }
142
+ it do
143
+ expect(
144
+ modifier.replace_erefs('', "defs:eref[type, [THE_REF#{from}]]")
145
+ ).to(eq("defs:eref[type, [THE_REF#{to}]]"))
146
+ end
143
147
  end
144
148
  end
145
149
 
@@ -149,15 +153,15 @@ RSpec.describe(Defmastership::Modifier::UpdateErefVersion) do
149
153
  end
150
154
 
151
155
  it do
152
- modifier.replace_erefs('defs:eref[type, [BAD_REF(a)]]')
156
+ modifier.replace_erefs('', 'defs:eref[type, [BAD_REF(a)]]')
153
157
  expect(ref_document).to(have_received(:ref_to_def).with('BAD_REF'))
154
158
  end
155
159
 
156
- it { expect(modifier.replace_erefs('defs:eref[type, [BAD_REF(a)]]')).to(eq('defs:eref[type, [BAD_REF(a)]]')) }
160
+ it { expect(modifier.replace_erefs('', 'defs:eref[type, [BAD_REF(a)]]')).to(eq('defs:eref[type, [BAD_REF(a)]]')) }
157
161
  end
158
162
 
159
163
  context 'when the line is not a valid eref' do
160
- it { expect(modifier.replace_erefs('bla bla')).to(eq('bla bla')) }
164
+ it { expect(modifier.replace_erefs('', 'bla bla')).to(eq('bla bla')) }
161
165
  end
162
166
 
163
167
  context 'when the line is matching one external ref definition with more refs' do
@@ -168,7 +172,7 @@ RSpec.describe(Defmastership::Modifier::UpdateErefVersion) do
168
172
  allow(ref_document).to(receive(:ref_to_def).with('REF2').and_return(other_ref_definition))
169
173
  allow(ref_definition).to(receive(:explicit_version).and_return('a'))
170
174
  allow(other_ref_definition).to(receive(:explicit_version).and_return('z'))
171
- modifier.replace_erefs('defs:eref[type, [REF1, REF2]]')
175
+ modifier.replace_erefs('', 'defs:eref[type, [REF1, REF2]]')
172
176
  end
173
177
 
174
178
  it { expect(ref_document).to(have_received(:ref_to_def).with('REF1')) }
@@ -176,9 +180,11 @@ RSpec.describe(Defmastership::Modifier::UpdateErefVersion) do
176
180
  it { expect(ref_definition).to(have_received(:explicit_version)) }
177
181
  it { expect(other_ref_definition).to(have_received(:explicit_version)) }
178
182
 
179
- it {
180
- expect(modifier.replace_erefs('defs:eref[type, [REF1, REF2]]')).to(eq('defs:eref[type, [REF1(a), REF2(z)]]'))
181
- }
183
+ it do
184
+ expect(
185
+ modifier.replace_erefs('', 'defs:eref[type, [REF1, REF2]]')
186
+ ).to(eq('defs:eref[type, [REF1(a), REF2(z)]]'))
187
+ end
182
188
  end
183
189
 
184
190
  context 'when the modifier modifies only one eref_type' do
@@ -192,8 +198,11 @@ RSpec.describe(Defmastership::Modifier::UpdateErefVersion) do
192
198
  allow(ref_definition).to(receive(:explicit_version).and_return('a'))
193
199
  end
194
200
 
195
- it { expect(modifier.replace_erefs('defs:eref[implements, [REF]]')).to(eq('defs:eref[implements, [REF(a)]]')) }
196
- it { expect(modifier.replace_erefs('defs:eref[covers, [REF]]')).to(eq('defs:eref[covers, [REF]]')) }
201
+ it do
202
+ expect(modifier.replace_erefs('', 'defs:eref[implements, [REF]]')).to(eq('defs:eref[implements, [REF(a)]]'))
203
+ end
204
+
205
+ it { expect(modifier.replace_erefs('', 'defs:eref[covers, [REF]]')).to(eq('defs:eref[covers, [REF]]')) }
197
206
  end
198
207
 
199
208
  context 'when the modifier modifies more than one eref_type' do
@@ -207,9 +216,12 @@ RSpec.describe(Defmastership::Modifier::UpdateErefVersion) do
207
216
  allow(ref_definition).to(receive(:explicit_version).and_return('a'))
208
217
  end
209
218
 
210
- it { expect(modifier.replace_erefs('defs:eref[implements, [REF]]')).to(eq('defs:eref[implements, [REF(a)]]')) }
211
- it { expect(modifier.replace_erefs('defs:eref[covers, [REF]]')).to(eq('defs:eref[covers, [REF(a)]]')) }
212
- it { expect(modifier.replace_erefs('defs:eref[covers_not, [REF]]')).to(eq('defs:eref[covers_not, [REF]]')) }
219
+ it do
220
+ expect(modifier.replace_erefs('', 'defs:eref[implements, [REF]]')).to(eq('defs:eref[implements, [REF(a)]]'))
221
+ end
222
+
223
+ it { expect(modifier.replace_erefs('', 'defs:eref[covers, [REF]]')).to(eq('defs:eref[covers, [REF(a)]]')) }
224
+ it { expect(modifier.replace_erefs('', 'defs:eref[covers_not, [REF]]')).to(eq('defs:eref[covers_not, [REF]]')) }
213
225
  end
214
226
  end
215
227
  end
@@ -72,17 +72,17 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefChecksum) do
72
72
  ['(a~abcd1234)', '(a~a1b2c3d4)']
73
73
  ].each do |from, to|
74
74
  it do
75
- modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever")
75
+ modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever")
76
76
  expect(document).to(have_received(:ref_to_def).with('THE_REF'))
77
77
  end
78
78
 
79
79
  it do
80
- modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever")
80
+ modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever")
81
81
  expect(definition).to(have_received(:sha256_short))
82
82
  end
83
83
 
84
84
  it {
85
- expect(modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever"))
85
+ expect(modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever"))
86
86
  .to(eq("whatever defs:iref[THE_REF#{to}] whatever"))
87
87
  }
88
88
  end
@@ -94,18 +94,18 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefChecksum) do
94
94
  end
95
95
 
96
96
  it do
97
- modifier.replace_irefs('whatever defs:iref[BAD_REF(a~abcd1234)] whatever')
97
+ modifier.replace_irefs('', 'whatever defs:iref[BAD_REF(a~abcd1234)] whatever')
98
98
  expect(document).to(have_received(:ref_to_def).with('BAD_REF'))
99
99
  end
100
100
 
101
101
  it {
102
- expect(modifier.replace_irefs('whatever defs:iref[BAD_REF(a~abcd1234)] whatever'))
102
+ expect(modifier.replace_irefs('', 'whatever defs:iref[BAD_REF(a~abcd1234)] whatever'))
103
103
  .to(eq('whatever defs:iref[BAD_REF(a~abcd1234)] whatever'))
104
104
  }
105
105
  end
106
106
 
107
107
  context 'when the line is not a valid iref' do
108
- it { expect(modifier.replace_irefs('bla bla')).to(eq('bla bla')) }
108
+ it { expect(modifier.replace_irefs('', 'bla bla')).to(eq('bla bla')) }
109
109
  end
110
110
 
111
111
  context 'when the line is matching more than one iref' do
@@ -116,7 +116,7 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefChecksum) do
116
116
  allow(document).to(receive(:ref_to_def).with('REF2').and_return(other_definition))
117
117
  allow(definition).to(receive(:sha256_short).and_return('~a1b2c3d4'))
118
118
  allow(other_definition).to(receive(:sha256_short).and_return('~e5f6abcd'))
119
- modifier.replace_irefs('defs:iref[REF1], defs:iref[REF2]')
119
+ modifier.replace_irefs('', 'defs:iref[REF1], defs:iref[REF2]')
120
120
  end
121
121
 
122
122
  it { expect(document).to(have_received(:ref_to_def).with('REF1')) }
@@ -125,7 +125,7 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefChecksum) do
125
125
  it { expect(other_definition).to(have_received(:sha256_short)) }
126
126
 
127
127
  it {
128
- expect(modifier.replace_irefs('defs:iref[REF1], defs:iref[REF2]'))
128
+ expect(modifier.replace_irefs('', 'defs:iref[REF1], defs:iref[REF2]'))
129
129
  .to(eq('defs:iref[REF1(~a1b2c3d4)], defs:iref[REF2(~e5f6abcd)]'))
130
130
  }
131
131
  end
@@ -72,17 +72,17 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefVersion) do
72
72
  ['(a~abcd1234)', '(z~abcd1234)']
73
73
  ].each do |from, to|
74
74
  it do
75
- modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever")
75
+ modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever")
76
76
  expect(document).to(have_received(:ref_to_def).with('THE_REF'))
77
77
  end
78
78
 
79
79
  it do
80
- modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever")
80
+ modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever")
81
81
  expect(definition).to(have_received(:explicit_version))
82
82
  end
83
83
 
84
84
  it {
85
- expect(modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever"))
85
+ expect(modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever"))
86
86
  .to(eq("whatever defs:iref[THE_REF#{to}] whatever"))
87
87
  }
88
88
  end
@@ -101,17 +101,17 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefVersion) do
101
101
  ['(a~abcd1234)', '(~abcd1234)']
102
102
  ].each do |from, to|
103
103
  it do
104
- modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever")
104
+ modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever")
105
105
  expect(document).to(have_received(:ref_to_def).with('THE_REF'))
106
106
  end
107
107
 
108
108
  it do
109
- modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever")
109
+ modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever")
110
110
  expect(definition).to(have_received(:explicit_version))
111
111
  end
112
112
 
113
113
  it {
114
- expect(modifier.replace_irefs("whatever defs:iref[THE_REF#{from}] whatever"))
114
+ expect(modifier.replace_irefs('', "whatever defs:iref[THE_REF#{from}] whatever"))
115
115
  .to(eq("whatever defs:iref[THE_REF#{to}] whatever"))
116
116
  }
117
117
  end
@@ -123,18 +123,18 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefVersion) do
123
123
  end
124
124
 
125
125
  it do
126
- modifier.replace_irefs('whatever defs:iref[BAD_REF(a~abcd1234)] whatever')
126
+ modifier.replace_irefs('', 'whatever defs:iref[BAD_REF(a~abcd1234)] whatever')
127
127
  expect(document).to(have_received(:ref_to_def).with('BAD_REF'))
128
128
  end
129
129
 
130
130
  it {
131
- expect(modifier.replace_irefs('whatever defs:iref[BAD_REF(a~abcd1234)] whatever'))
131
+ expect(modifier.replace_irefs('', 'whatever defs:iref[BAD_REF(a~abcd1234)] whatever'))
132
132
  .to(eq('whatever defs:iref[BAD_REF(a~abcd1234)] whatever'))
133
133
  }
134
134
  end
135
135
 
136
136
  context 'when the line is not a valid iref' do
137
- it { expect(modifier.replace_irefs('bla bla')).to(eq('bla bla')) }
137
+ it { expect(modifier.replace_irefs('', 'bla bla')).to(eq('bla bla')) }
138
138
  end
139
139
 
140
140
  context 'when the line is matching more than one iref' do
@@ -145,7 +145,7 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefVersion) do
145
145
  allow(document).to(receive(:ref_to_def).with('REF2').and_return(other_definition))
146
146
  allow(definition).to(receive(:explicit_version).and_return('pouet'))
147
147
  allow(other_definition).to(receive(:explicit_version).and_return('tagada'))
148
- modifier.replace_irefs('defs:iref[REF1], defs:iref[REF2]')
148
+ modifier.replace_irefs('', 'defs:iref[REF1], defs:iref[REF2]')
149
149
  end
150
150
 
151
151
  it { expect(document).to(have_received(:ref_to_def).with('REF1')) }
@@ -154,7 +154,7 @@ RSpec.describe(Defmastership::Modifier::UpdateIrefVersion) do
154
154
  it { expect(other_definition).to(have_received(:explicit_version)) }
155
155
 
156
156
  it {
157
- expect(modifier.replace_irefs('defs:iref[REF1], defs:iref[REF2]'))
157
+ expect(modifier.replace_irefs('', 'defs:iref[REF1], defs:iref[REF2]'))
158
158
  .to(eq('defs:iref[REF1(pouet)], defs:iref[REF2(tagada)]'))
159
159
  }
160
160
  end
@@ -56,7 +56,7 @@ namespace 'quality' do
56
56
  end
57
57
 
58
58
  desc 'Runs all quality code check'
59
- task(all: ['quality:rubocop', 'quality:reek', 'quality:flay', 'quality:rubycritic'])
59
+ task(all: ['quality:rubocop', 'quality:reek', 'quality:flay'])
60
60
  end
61
61
  # rubocop:enable Metrics/BlockLength
62
62
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: defmastership
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jérôme Arbez-Gindre
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 1.5.3
60
+ version: 1.5.5
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 1.5.3
67
+ version: 1.5.5
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: facets
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -85,14 +85,14 @@ dependencies:
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '3.1'
88
+ version: '4.0'
89
89
  type: :runtime
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '3.1'
95
+ version: '4.0'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: gli
98
98
  requirement: !ruby/object:Gem::Requirement
@@ -135,6 +135,20 @@ dependencies:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0.6'
138
+ - !ruby/object:Gem::Dependency
139
+ name: rubyXL
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '3.4'
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '3.4'
138
152
  email: jeromearbezgindre@gmail.com
139
153
  executables:
140
154
  - defmastership
@@ -180,7 +194,11 @@ files:
180
194
  - lib/defmastership/document.rb
181
195
  - lib/defmastership/export/body_formatter.rb
182
196
  - lib/defmastership/export/csv/formatter.rb
197
+ - lib/defmastership/export/formatter.rb
183
198
  - lib/defmastership/export/header_formatter.rb
199
+ - lib/defmastership/export/json/formatter.rb
200
+ - lib/defmastership/export/xlsx/formatter.rb
201
+ - lib/defmastership/export/yaml/formatter.rb
184
202
  - lib/defmastership/filters.rb
185
203
  - lib/defmastership/hash_merge_no_new.rb
186
204
  - lib/defmastership/matching_line.rb
@@ -209,7 +227,11 @@ files:
209
227
  - spec/unit/defmastership/document_spec.rb
210
228
  - spec/unit/defmastership/export/body_formatter_spec.rb
211
229
  - spec/unit/defmastership/export/csv/formatter_spec.rb
230
+ - spec/unit/defmastership/export/formatter_spec.rb
212
231
  - spec/unit/defmastership/export/header_formatter_spec.rb
232
+ - spec/unit/defmastership/export/json/formatter_spec.rb
233
+ - spec/unit/defmastership/export/xlsx/formatter_spec.rb
234
+ - spec/unit/defmastership/export/yaml/formatter_spec.rb
213
235
  - spec/unit/defmastership/hash_spec.rb
214
236
  - spec/unit/defmastership/matching_line_spec.rb
215
237
  - spec/unit/defmastership/modifier/change_ref_spec.rb
@@ -250,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
250
272
  - !ruby/object:Gem::Version
251
273
  version: '0'
252
274
  requirements: []
253
- rubygems_version: 3.6.9
275
+ rubygems_version: 4.0.2
254
276
  specification_version: 4
255
277
  summary: Handling of references and definitions with asciidoctor
256
278
  test_files: []