defmastership 1.0.18 → 1.0.19

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitlab-ci.yml +15 -1
  4. data/Gemfile +27 -7
  5. data/Guardfile +44 -0
  6. data/config/cucumber.yml +3 -0
  7. data/config/mutant.yml +4 -0
  8. data/config/reek.yml +129 -105
  9. data/config/rubocop.yml +72 -28
  10. data/defmastership.gemspec +5 -3
  11. data/features/changeref.feature +0 -8
  12. data/features/definition_checksum.feature +0 -10
  13. data/features/definition_version.feature +168 -10
  14. data/features/export.feature +23 -18
  15. data/features/modify.feature +1 -5
  16. data/features/rename_included_files.feature +0 -5
  17. data/features/step_definitions/git_steps.rb +19 -0
  18. data/lib/defmastership/constants.rb +5 -3
  19. data/lib/defmastership/definition.rb +2 -2
  20. data/lib/defmastership/document.rb +6 -14
  21. data/lib/defmastership/update_def_modifier.rb +1 -1
  22. data/lib/defmastership/update_def_version_modifier.rb +30 -5
  23. data/lib/defmastership/version.rb +1 -1
  24. data/spec/unit/def_mastership/batch_modifier_spec.rb +2 -0
  25. data/spec/unit/def_mastership/modifier_factory_spec.rb +1 -0
  26. data/spec/unit/def_mastership/modifier_spec.rb +8 -6
  27. data/spec/unit/def_mastership/update_def_modifier_spec.rb +2 -0
  28. data/spec/unit/def_mastership/update_def_version_modifier_spec.rb +225 -33
  29. data/tasks/code_quality.rake +74 -0
  30. data/tasks/test.rake +6 -21
  31. metadata +36 -11
  32. data/.rubocop.yml +0 -76
  33. data/config/devtools.yml +0 -2
  34. data/config/flay.yml +0 -3
  35. data/config/flog.yml +0 -2
  36. data/config/yardstick.yml +0 -2
  37. data/cucumber.yml +0 -2
  38. data/tasks/smelling_code.rake +0 -38
  39. /data/{.rspec → config/rspec} +0 -0
@@ -82,7 +82,6 @@ Feature: definition checksum
82
82
  Second line.",~b86dcbde
83
83
  """
84
84
  And the stdout should not contain anything
85
- And the stderr should not contain anything
86
85
 
87
86
  Scenario: Change one modifier
88
87
  Given a file named "modifications.yml" with:
@@ -102,7 +101,6 @@ Feature: definition checksum
102
101
  """
103
102
  When I successfully run `defmastership modify --modifications update_requirement_checksum thedoc.adoc`
104
103
  Then the stdout should not contain anything
105
- And the stderr should not contain anything
106
104
  And the file "thedoc.adoc" should contain:
107
105
  """
108
106
  [define, requirement, TOTO-TEMP-XXX1(~244eed18)]
@@ -129,7 +127,6 @@ Feature: definition checksum
129
127
  """
130
128
  When I successfully run `defmastership modify --modifications update_requirement_checksum thedoc.adoc`
131
129
  Then the stdout should not contain anything
132
- And the stderr should not contain anything
133
130
  And the file "thedoc.adoc" should contain:
134
131
  """
135
132
  [define, requirement, TOTO-TEMP-XXX1(~244eed18)]
@@ -159,7 +156,6 @@ Feature: definition checksum
159
156
  Second line.",~b86dcbde
160
157
  """
161
158
  And the stdout should not contain anything
162
- And the stderr should not contain anything
163
159
 
164
160
  Scenario: Checksum is calculated on included file in ref modification
165
161
  Given a file named "modifications.yml" with:
@@ -191,7 +187,6 @@ Feature: definition checksum
191
187
  --
192
188
  """
193
189
  And the stdout should not contain anything
194
- And the stderr should not contain anything
195
190
 
196
191
  Scenario: Checksum take into account variables in CSV export
197
192
  Given a file named "thedoc.adoc" with:
@@ -211,7 +206,6 @@ Feature: definition checksum
211
206
  Second line.",~b86dcbde
212
207
  """
213
208
  And the stdout should not contain anything
214
- And the stderr should not contain anything
215
209
 
216
210
  Scenario: Checksum takes into account variables in ref modification
217
211
  Given a file named "modifications.yml" with:
@@ -241,7 +235,6 @@ Feature: definition checksum
241
235
  --
242
236
  """
243
237
  And the stdout should not contain anything
244
- And the stderr should not contain anything
245
238
 
246
239
  Scenario: Checksum does not take into account bad variables definition
247
240
  Given a file named "modifications.yml" with:
@@ -271,7 +264,6 @@ Feature: definition checksum
271
264
  --
272
265
  """
273
266
  And the stdout should not contain anything
274
- And the stderr should not contain anything
275
267
 
276
268
  Scenario: Checksum keep explicit version in ref modification
277
269
  Given a file named "modifications.yml" with:
@@ -291,7 +283,6 @@ Feature: definition checksum
291
283
  """
292
284
  When I successfully run `defmastership modify --modifications update_requirement_checksum thedoc.adoc`
293
285
  Then the stdout should not contain anything
294
- And the stderr should not contain anything
295
286
  And the file "thedoc.adoc" should contain:
296
287
  """
297
288
  [define, requirement, TOTO-TEMP-XXX1(toto~244eed18)]
@@ -318,7 +309,6 @@ Feature: definition checksum
318
309
  """
319
310
  When I successfully run `defmastership modify --modifications update_requirement_checksum thedoc.adoc`
320
311
  Then the stdout should not contain anything
321
- And the stderr should not contain anything
322
312
  And the file "thedoc.adoc" should contain:
323
313
  """
324
314
  [define, requirement, TOTO-TEMP-XXX1(toto~244eed18)]
@@ -1,9 +1,9 @@
1
- Feature: definitions version
2
- As a Responsible of definitions for a given document
1
+ Feature: definitions version
2
+ As a Responsible of definitions for a given document
3
3
  In order to detect handle versions definitions
4
4
  I want defmastership to export explicit versions in definitions
5
5
 
6
- Scenario: Extract one definition with explicit version to CSV
6
+ Scenario: Extract one definition with explicit version to CSV
7
7
  Given a file named "thedoc.adoc" with:
8
8
  """
9
9
  [define, requirement, TOTO-0001(pouet)]
@@ -20,9 +20,8 @@ Feature: definitions version
20
20
  Second line.",~b86dcbde,pouet
21
21
  """
22
22
  And the stdout should not contain anything
23
- And the stderr should not contain anything
24
23
 
25
- Scenario: Set initial explicit version when definition has changed
24
+ Scenario: Set initial explicit version when definition has changed
26
25
  Given a file named "ref_doc.adoc" with:
27
26
  """
28
27
  [define, requirement, TOTO-0001]
@@ -49,7 +48,170 @@ Feature: definitions version
49
48
  """
50
49
  When I successfully run `defmastership modify --modifications update_requirement_version thedoc.adoc`
51
50
  And the stdout should not contain anything
52
- And the stderr should not contain anything
51
+ Then the file "thedoc.adoc" should contain:
52
+ """
53
+ [define, requirement, TOTO-0001(a)]
54
+ --
55
+ modified text.
56
+ --
57
+ """
58
+
59
+ Scenario: Set initial explicit version when definition has changed with multiple ref_files
60
+ Given a file named "ref_doc1.adoc" with:
61
+ """
62
+ [define, requirement, TOTO-0001]
63
+ --
64
+ initial text 1.
65
+ --
66
+ """
67
+ Given a file named "ref_doc2.adoc" with:
68
+ """
69
+ [define, requirement, TOTO-0002(z)]
70
+ --
71
+ initial text 2.
72
+ --
73
+ """
74
+ Given a file named "thedoc.adoc" with:
75
+ """
76
+ [define, requirement, TOTO-0001(whatever)]
77
+ --
78
+ modified text.
79
+ --
80
+
81
+ [define, requirement, TOTO-0002(whatever)]
82
+ --
83
+ modified text again.
84
+ --
85
+ """
86
+ And a file named "modifications.yml" with:
87
+ """
88
+ ---
89
+ :update_requirement_version:
90
+ :type: update_def_version
91
+ :config:
92
+ :def_type: requirement
93
+ :first_version: a
94
+ :ref_document: ['./ref_doc1.adoc', './ref_doc2.adoc']
95
+ """
96
+ When I successfully run `defmastership modify --modifications update_requirement_version thedoc.adoc`
97
+ And the stdout should not contain anything
98
+ Then the file "thedoc.adoc" should contain:
99
+ """
100
+ [define, requirement, TOTO-0001(a)]
101
+ --
102
+ modified text.
103
+ --
104
+
105
+ [define, requirement, TOTO-0002(aa)]
106
+ --
107
+ modified text again.
108
+ --
109
+ """
110
+
111
+ Scenario: Update explicit version based on git tag
112
+ Given I initialize a git repo
113
+ And a file named "thedoc.adoc" with:
114
+ """
115
+ [define, requirement, TOTO-0001]
116
+ --
117
+ initial text.
118
+ --
119
+ """
120
+ And I add and commit the "thedoc.adoc" file
121
+ And I set the "THE_TAG" tag
122
+ And a file named "thedoc.adoc" with:
123
+ """
124
+ [define, requirement, TOTO-0001(whatever)]
125
+ --
126
+ modified text.
127
+ --
128
+ """
129
+ And a file named "modifications.yml" with:
130
+ """
131
+ ---
132
+ :update_requirement_version:
133
+ :type: update_def_version
134
+ :config:
135
+ :def_type: requirement
136
+ :first_version: a
137
+ :ref_tag: 'THE_TAG'
138
+ """
139
+ When I successfully run `defmastership modify --modifications update_requirement_version thedoc.adoc`
140
+ And the stdout should not contain anything
141
+ Then the file "thedoc.adoc" should contain:
142
+ """
143
+ [define, requirement, TOTO-0001(a)]
144
+ --
145
+ modified text.
146
+ --
147
+ """
148
+
149
+ Scenario: Update explicit version based on git tag on a different git repo
150
+ And a file named "defmastership-example.adoc" with:
151
+ """
152
+ [define, whatever, WHATEVER-0001]
153
+ Simplest ever definition. !modified!
154
+ With a single paragraph.
155
+ """
156
+ And a file named "modifications.yml" with:
157
+ """
158
+ ---
159
+ :update_requirement_version:
160
+ :type: update_def_version
161
+ :config:
162
+ :def_type: whatever
163
+ :first_version: a
164
+ :ref_tag: 'TEST_UPDATE_VERSION'
165
+ :ref_repo: 'https://gitlab.com/defmastership/defmastership-example.git'
166
+ """
167
+ When I successfully run `defmastership modify --modifications update_requirement_version defmastership-example.adoc`
168
+ And the stdout should not contain anything
169
+ Then the file "defmastership-example.adoc" should contain:
170
+ """
171
+ [define, whatever, WHATEVER-0001(a)]
172
+ Simplest ever definition. !modified!
173
+ With a single paragraph.
174
+ """
175
+
176
+ Scenario: Update explicit version based on git tag and different filename
177
+ Given I initialize a git repo
178
+ And a file named "ref_doc.adoc" with:
179
+ """
180
+ [define, requirement, TOTO-0001]
181
+ --
182
+ initial text.
183
+ --
184
+ """
185
+ And I add and commit the "ref_doc.adoc" file
186
+ And I set the "THE_TAG" tag
187
+ And I remove the file "ref_doc.adoc"
188
+ And a file named "thedoc.adoc" with:
189
+ """
190
+ [define, requirement, TOTO-0001(whatever)]
191
+ --
192
+ modified text.
193
+ --
194
+ """
195
+ And a file named "ref_doc.adoc" with:
196
+ """
197
+ [define, requirement, TOTO-0001(whatever)]
198
+ --
199
+ modified text.
200
+ --
201
+ """
202
+ And a file named "modifications.yml" with:
203
+ """
204
+ ---
205
+ :update_requirement_version:
206
+ :type: update_def_version
207
+ :config:
208
+ :def_type: requirement
209
+ :first_version: a
210
+ :ref_document: ./ref_doc.adoc
211
+ :ref_tag: 'THE_TAG'
212
+ """
213
+ When I successfully run `defmastership modify --modifications update_requirement_version thedoc.adoc`
214
+ And the stdout should not contain anything
53
215
  Then the file "thedoc.adoc" should contain:
54
216
  """
55
217
  [define, requirement, TOTO-0001(a)]
@@ -85,7 +247,6 @@ Feature: definitions version
85
247
  """
86
248
  When I successfully run `defmastership modify --modifications update_requirement_version thedoc.adoc`
87
249
  And the stdout should not contain anything
88
- And the stderr should not contain anything
89
250
  Then the file "thedoc.adoc" should contain:
90
251
  """
91
252
  [define, requirement, TOTO-0001]
@@ -121,7 +282,6 @@ Feature: definitions version
121
282
  """
122
283
  When I successfully run `defmastership modify --modifications update_requirement_version thedoc.adoc`
123
284
  And the stdout should not contain anything
124
- And the stderr should not contain anything
125
285
  Then the file "thedoc.adoc" should contain:
126
286
  """
127
287
  [define, requirement, TOTO-0001(4)]
@@ -157,7 +317,6 @@ Feature: definitions version
157
317
  """
158
318
  When I successfully run `defmastership modify --modifications update_requirement_version thedoc.adoc`
159
319
  And the stdout should not contain anything
160
- And the stderr should not contain anything
161
320
  Then the file "thedoc.adoc" should contain:
162
321
  """
163
322
  [define, requirement, TOTO-0001]
@@ -193,7 +352,6 @@ Feature: definitions version
193
352
  """
194
353
  When I successfully run `defmastership modify --modifications update_requirement_version thedoc.adoc`
195
354
  And the stdout should not contain anything
196
- And the stderr should not contain anything
197
355
  Then the file "thedoc.adoc" should contain:
198
356
  """
199
357
  [define, requirement, TOTO-0001(a~abcd1234)]
@@ -20,7 +20,6 @@ Feature: The extract command
20
20
  Second line.",~b86dcbde
21
21
  """
22
22
  And the stdout should not contain anything
23
- And the stderr should not contain anything
24
23
 
25
24
  Scenario: Extract to CSV with alternative CSV separator
26
25
  Given a file named "toto.adoc" with:
@@ -60,7 +59,6 @@ Feature: The extract command
60
59
  Third line with {not_defined_variable}.",~3bf370ed
61
60
  """
62
61
  And the stdout should not contain anything
63
- And the stderr should not contain anything
64
62
 
65
63
 
66
64
  Scenario: Extract some definitions to CSV
@@ -93,7 +91,6 @@ Feature: The extract command
93
91
  ignored multiline
94
92
  """
95
93
  And the stdout should not contain anything
96
- And the stderr should not contain anything
97
94
 
98
95
  Scenario: Ignore definitions in literal block
99
96
  Given a file named "toto.adoc" with:
@@ -114,7 +111,6 @@ Feature: The extract command
114
111
  something_else
115
112
  """
116
113
  And the stdout should not contain anything
117
- And the stderr should not contain anything
118
114
 
119
115
  Scenario: Ignore definitions in example block
120
116
  Given a file named "toto.adoc" with:
@@ -135,7 +131,6 @@ Feature: The extract command
135
131
  something_else
136
132
  """
137
133
  And the stdout should not contain anything
138
- And the stderr should not contain anything
139
134
 
140
135
  Scenario: Ignore definitions in commment block
141
136
  Given a file named "toto.adoc" with:
@@ -156,7 +151,6 @@ Feature: The extract command
156
151
  something_else
157
152
  """
158
153
  And the stdout should not contain anything
159
- And the stderr should not contain anything
160
154
 
161
155
  Scenario: Handle mixes comment and literal blocks
162
156
  Given a file named "toto.adoc" with:
@@ -179,7 +173,6 @@ Feature: The extract command
179
173
  something_else
180
174
  """
181
175
  And the stdout should not contain anything
182
- And the stderr should not contain anything
183
176
 
184
177
  Scenario: Extract definition with labels
185
178
  Given a file named "toto.adoc" with:
@@ -199,7 +192,6 @@ Feature: The extract command
199
192
  label2"
200
193
  """
201
194
  And the stdout should not contain anything
202
- And the stderr should not contain anything
203
195
 
204
196
  Scenario: Extract one definition with external ref to CSV
205
197
  Given a file named "toto.adoc" with:
@@ -222,7 +214,29 @@ Feature: The extract command
222
214
  SYSTEM-0014"
223
215
  """
224
216
  And the stdout should not contain anything
225
- And the stderr should not contain anything
217
+
218
+ Scenario: Extract one definition with external ref (with version and checksum) to CSV
219
+ Given a file named "toto.adoc" with:
220
+ """
221
+ :eref-implements-prefix: Participate to:
222
+ :eref-implements-url: ./the_other_document.html
223
+ [define, requirement, TOTO-0001]
224
+ --
225
+ Exemple of multiline requirement.
226
+ Second line.
227
+ --
228
+ defs:eref[implements, [SYSTEM-0012(a), SYSTEM-0014, SYSTEM-0015(b~1223abcd)]]
229
+ """
230
+ When I successfully run `defmastership export toto.adoc`
231
+ Then the file "toto.csv" should contain:
232
+ """
233
+ Type,Reference,Value,Checksum,Participate to:
234
+ requirement,TOTO-0001,"Exemple of multiline requirement.
235
+ Second line.",~b86dcbde,"SYSTEM-0012(a)
236
+ SYSTEM-0014
237
+ SYSTEM-0015(b~1223abcd)"
238
+ """
239
+ And the stdout should not contain anything
226
240
 
227
241
  Scenario: Extract one definition with missing external ref to CSV
228
242
  Given a file named "toto.adoc" with:
@@ -243,7 +257,6 @@ Feature: The extract command
243
257
  Second line.",~b86dcbde,
244
258
  """
245
259
  And the stdout should not contain anything
246
- And the stderr should not contain anything
247
260
 
248
261
  Scenario: Extract one definition with external ref without url to CSV
249
262
  Given a file named "toto.adoc" with:
@@ -266,7 +279,6 @@ Feature: The extract command
266
279
  SYSTEM-0014"
267
280
  """
268
281
  And the stdout should not contain anything
269
- And the stderr should not contain anything
270
282
 
271
283
  Scenario: Extract one definition with external ref to CSV without URL
272
284
  Given a file named "toto.adoc" with:
@@ -281,7 +293,6 @@ Feature: The extract command
281
293
  """
282
294
  When I successfully run `defmastership export toto.adoc`
283
295
  Then the stdout should not contain anything
284
- And the stderr should not contain anything
285
296
  And the file "toto.csv" should contain:
286
297
  """
287
298
  Type,Reference,Value,Checksum,Participate to:
@@ -310,7 +321,6 @@ Feature: The extract command
310
321
  TOTO-0002"
311
322
  """
312
323
  And the stdout should not contain anything
313
- And the stderr should not contain anything
314
324
 
315
325
  Scenario: Extract one definition with attributes to CSV
316
326
  Given a file named "toto.adoc" with:
@@ -332,7 +342,6 @@ Feature: The extract command
332
342
  requirement,TOTO-0001,One single line.,~554b0ff5,Beautiful Test,Very cool
333
343
  """
334
344
  And the stdout should not contain anything
335
- And the stderr should not contain anything
336
345
 
337
346
  Scenario: Extract one definition with missing attributes to CSV
338
347
  Given a file named "toto.adoc" with:
@@ -353,7 +362,6 @@ Feature: The extract command
353
362
  requirement,TOTO-0001,One single line.,~554b0ff5,Beautiful Test,
354
363
  """
355
364
  And the stdout should not contain anything
356
- And the stderr should not contain anything
357
365
 
358
366
  Scenario: Extract one definition with example in it
359
367
  Given a file named "toto.adoc" with:
@@ -378,7 +386,6 @@ Feature: The extract command
378
386
  ----",~8f20a443
379
387
  """
380
388
  And the stdout should not contain anything
381
- And the stderr should not contain anything
382
389
 
383
390
  Scenario: Extract one definition with single line comment in it
384
391
  Given a file named "toto.adoc" with:
@@ -395,7 +402,6 @@ Feature: The extract command
395
402
  requirement,TOTO-0001,// comment,~b0b506c3
396
403
  """
397
404
  And the stdout should not contain anything
398
- And the stderr should not contain anything
399
405
 
400
406
  Scenario: Extract one definition with multi line comment or literal in it
401
407
  Given a file named "toto.adoc" with:
@@ -422,4 +428,3 @@ Feature: The extract command
422
428
  ....",~7eb3c490
423
429
  """
424
430
  And the stdout should not contain anything
425
- And the stderr should not contain anything
@@ -20,7 +20,6 @@ Feature: The modify command
20
20
  """
21
21
  When I successfully run `defmastership modify --modifications temp-references thedoc.adoc`
22
22
  Then the stdout should not contain anything
23
- And the stderr should not contain anything
24
23
  And the file "modifications.yml" should contain:
25
24
  """
26
25
  ---
@@ -75,7 +74,6 @@ Feature: The modify command
75
74
  """
76
75
  When I successfully run `defmastership modify --modifications-file=pouet.yml --modifications toto thedoc.adoc`
77
76
  Then the stdout should not contain anything
78
- And the stderr should not contain anything
79
77
  And the file "pouet.yml" should contain:
80
78
  """
81
79
  ---
@@ -108,8 +106,7 @@ Feature: The modify command
108
106
  [define, requirement, TOTO-TEMP-XXX2]
109
107
  """
110
108
  When I successfully run `defmastership modify --modifications temp-references --changes-summary=changes.csv thedoc.adoc`
111
- Then the stderr should not contain anything
112
- And the stdout should not contain anything
109
+ Then the stdout should not contain anything
113
110
  And the file "changes.csv" should contain:
114
111
  """
115
112
  Modifier,Was,Becomes
@@ -141,7 +138,6 @@ Feature: The modify command
141
138
  """
142
139
  When I successfully run `defmastership modify --modifications temp-references,tata_or_titi --changes-summary=changes.csv thedoc.adoc`
143
140
  Then the stdout should not contain anything
144
- And the stderr should not contain anything
145
141
  And the file "modifications.yml" should contain:
146
142
  """
147
143
  ---
@@ -23,7 +23,6 @@ Feature: The rename_included_files command
23
23
  And an empty file named "any_path/one_file.png"
24
24
  When I successfully run `defmastership modify --modifications rename_included_png thedoc.adoc`
25
25
  Then the stdout should not contain anything
26
- And the stderr should not contain anything
27
26
  And the file "thedoc.adoc" should contain:
28
27
  """
29
28
  include::any_path/one_file.png[]
@@ -49,7 +48,6 @@ Feature: The rename_included_files command
49
48
  And an empty file named "any_path/one_file.png"
50
49
  When I successfully run `defmastership modify --modifications rename_included_png thedoc.adoc`
51
50
  Then the stdout should not contain anything
52
- And the stderr should not contain anything
53
51
  And the file "thedoc.adoc" should contain:
54
52
  """
55
53
  [define, requirement, TOTO-WHATEVER-123]
@@ -77,7 +75,6 @@ Feature: The rename_included_files command
77
75
  And an empty file named "any_path/one_file.png"
78
76
  When I successfully run `defmastership modify --modifications rename_included_png thedoc.adoc`
79
77
  Then the stdout should not contain anything
80
- And the stderr should not contain anything
81
78
  And the file "thedoc.adoc" should contain:
82
79
  """
83
80
  [define, requirement, TOTO-WHATEVER-123]
@@ -109,7 +106,6 @@ Feature: The rename_included_files command
109
106
  And an empty file named "one_two/one_file.png"
110
107
  When I successfully run `defmastership modify --modifications rename_included_png thedoc.adoc`
111
108
  Then the stdout should not contain anything
112
- And the stderr should not contain anything
113
109
  And the file "thedoc.adoc" should contain:
114
110
  """
115
111
  :any: one
@@ -142,7 +138,6 @@ Feature: The rename_included_files command
142
138
  And an empty file named "any_path/TOTO-WHATEVER-123_one_file.png"
143
139
  When I successfully run `defmastership modify --modifications rename_included_png thedoc.adoc`
144
140
  Then the stdout should not contain anything
145
- And the stderr should not contain anything
146
141
  And the file "thedoc.adoc" should contain:
147
142
  """
148
143
  [define, requirement, TOTO-WHATEVER-123]
@@ -0,0 +1,19 @@
1
+ # Copyright (c) 2024 Jerome Arbez-Gindre
2
+ # frozen_string_literal: true
3
+
4
+ require 'git'
5
+
6
+ Given('I initialize a git repo') do
7
+ Git.init(Aruba.config.home_directory)
8
+ end
9
+
10
+ Given('I add and commit the {string} file') do |filename|
11
+ git = Git.open(Aruba.config.home_directory)
12
+ git.add(filename)
13
+ git.commit('whatever')
14
+ end
15
+
16
+ Given('I set the {string} tag') do |tag_name|
17
+ git = Git.open(Aruba.config.home_directory)
18
+ git.add_tag(tag_name)
19
+ end
@@ -23,8 +23,10 @@ module DefMastership
23
23
  '\((?<explicit_version>[^~]+)?(?<explicit_checksum>~[[:alnum:]]+)?\)' \
24
24
  ')?'
25
25
 
26
+ REFERENCE = '(?<reference>[\\w:_-]+)'
27
+
26
28
  DEFINITION = Regexp.new(
27
- "#{DEF_BEFORE_REF}(?<reference>[\\w:_-]+)#{DEF_VERSION_AND_CHECKSUM}#{DEF_AFTER_REF}",
29
+ "#{DEF_BEFORE_REF}#{REFERENCE}#{DEF_VERSION_AND_CHECKSUM}#{DEF_AFTER_REF}",
28
30
  Regexp::EXTENDED
29
31
  )
30
32
 
@@ -33,11 +35,11 @@ module DefMastership
33
35
 
34
36
  VARIABLE_USE = /{(?<varname>[\w:_-]+)}/x.freeze
35
37
 
36
- EREF_CONFIG = /^\s*:eref-(?<refname>[\w:_-]+)-(?<symb>prefix|url):\s*
38
+ EREF_CONFIG = /^\s*:eref-(?<reference>[\w:_-]+)-(?<symb>prefix|url):\s*
37
39
  \s*(?<value>\S.*\S)\s*/x.freeze
38
40
  EREF_DEF = /^\s*
39
41
  defs:eref\[
40
- \s*(?<refname>[\w:_-]+)\s*,
42
+ \s*(?<reference>[\w:_-]+)\s*,
41
43
  \s*\[\s*(?<extrefs>[^\]]+?)\s*\]\s*\]/x.freeze
42
44
  BLOCK = /^--\s*$/.freeze
43
45
 
@@ -76,8 +76,8 @@ module DefMastership
76
76
  explicit_checksum unless explicit_checksum.eql?(sha256_short)
77
77
  end
78
78
 
79
- def add_eref(refname, extrefs)
80
- eref[refname] = extrefs.strip.split(/\s*,\s*/)
79
+ def add_eref(ref, extrefs)
80
+ eref[ref] = extrefs.strip.split(/\s*,\s*/)
81
81
  end
82
82
 
83
83
  def add_iref(ref)
@@ -23,22 +23,18 @@ module DefMastership
23
23
  definition = Definition.new(matching_line.match)
24
24
  labels.merge(definition.labels)
25
25
  definitions << definition
26
- matching_line.line
27
26
  },
28
27
  add_line: lambda { |matching_line|
29
28
  line = matching_line.line
30
29
  definitions.last << line
31
- line
32
30
  },
33
31
  new_eref_setup: lambda { |matching_line|
34
- refname = matching_line[:refname].to_sym
35
- eref[refname] ||= {}
36
- eref[refname][matching_line[:symb].to_sym] = matching_line[:value]
37
- matching_line.line
32
+ reference = matching_line[:reference].to_sym
33
+ eref[reference] ||= {}
34
+ eref[reference][matching_line[:symb].to_sym] = matching_line[:value]
38
35
  },
39
36
  new_eref_def: lambda { |matching_line|
40
- definitions.last.add_eref(matching_line[:refname].to_sym, matching_line[:extrefs])
41
- matching_line.line
37
+ definitions.last.add_eref(matching_line[:reference].to_sym, matching_line[:extrefs])
42
38
  },
43
39
  new_iref_def: lambda { |matching_line|
44
40
  self.iref = true
@@ -46,19 +42,15 @@ module DefMastership
46
42
  line.scan(DMRegexp::IREF_DEF) do |_|
47
43
  definitions.last.add_iref(Regexp.last_match[:intref])
48
44
  end
49
- line
50
45
  },
51
46
  new_attribute_conf: lambda { |matching_line|
52
47
  attributes[matching_line[:attr].to_sym] = matching_line[:prefix]
53
- matching_line.line
54
48
  },
55
49
  new_attribute_value: lambda { |matching_line|
56
50
  definitions.last.set_attribute(matching_line[:attr].to_sym, matching_line[:value])
57
- matching_line.line
58
51
  },
59
52
  new_variable_def: lambda { |matching_line|
60
53
  variables[matching_line[:varname].to_sym] = matching_line[:value]
61
- matching_line.line
62
54
  },
63
55
  new_variable_use: lambda { |matching_line|
64
56
  line = matching_line.line
@@ -125,8 +117,8 @@ module DefMastership
125
117
  PARSER_ACTIONS.key?(method_name)
126
118
  end
127
119
 
128
- def ref_to_def(ref)
129
- definitions.find { |definition| definition.reference == ref }
120
+ def ref_to_def(reference)
121
+ definitions.find { |definition| definition.reference == reference }
130
122
  end
131
123
 
132
124
  def iref=(value)
@@ -33,7 +33,7 @@ module DefMastership
33
33
  document.parse_file_with_preprocessor(adoc_file)
34
34
  end
35
35
 
36
- super(adoc_sources)
36
+ super
37
37
  end
38
38
 
39
39
  def replace_reference(line)