defmastership 1.0.15 → 1.0.17
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.gitlab-ci.yml +34 -3
- data/.rubocop.yml +14 -6
- data/Rakefile +29 -15
- data/bin/defmastership +4 -4
- data/defmastership.gemspec +32 -27
- data/features/export.feature +70 -1
- data/lib/defmastership/batch_modifier.rb +1 -1
- data/lib/defmastership/change_ref_line_modifier.rb +3 -0
- data/lib/defmastership/change_ref_modifier.rb +2 -0
- data/lib/defmastership/csv_formatter.rb +4 -4
- data/lib/defmastership/document.rb +15 -9
- data/lib/defmastership/modifier_base.rb +10 -3
- data/lib/defmastership/parsing_state.rb +3 -1
- data/lib/defmastership/version.rb +1 -1
- data/lib/defmastership.rb +11 -16
- data/spec/spec_helper.rb +2 -2
- data/spec/unit/{defmastership → def_mastership}/batch_modifier_spec.rb +5 -4
- data/spec/unit/{defmastership → def_mastership}/change_ref_line_modifier_spec.rb +11 -4
- data/spec/unit/{defmastership → def_mastership}/change_ref_modifier_spec.rb +1 -1
- data/spec/unit/{defmastership → def_mastership}/csv_formatter_body_spec.rb +1 -1
- data/spec/unit/{defmastership → def_mastership}/csv_formatter_header_spec.rb +1 -1
- data/spec/unit/{defmastership → def_mastership}/csv_formatter_spec.rb +11 -8
- data/spec/unit/{defmastership → def_mastership}/definition_parser_spec.rb +1 -1
- data/spec/unit/{defmastership → def_mastership}/definition_spec.rb +1 -1
- data/spec/unit/{defmastership → def_mastership}/document_spec.rb +99 -44
- data/spec/unit/def_mastership/parsing_state_spec.rb +62 -0
- data/spec/unit/{defmastership → def_mastership}/rename_included_files_line_modifier_spec.rb +7 -3
- data/spec/unit/{defmastership → def_mastership}/rename_included_files_modifier_spec.rb +1 -1
- data/spec/unit/{defmastership → def_mastership}/update_def_checksum_line_modifier_spec.rb +7 -3
- data/spec/unit/{defmastership → def_mastership}/update_def_checksum_modifier_spec.rb +1 -1
- data/spec/unit/{defmastership → def_mastership}/update_def_version_line_modifier_spec.rb +7 -3
- data/spec/unit/{defmastership → def_mastership}/update_def_version_modifier_spec.rb +3 -3
- data/spec/unit/{defmastership_spec.rb → def_mastership_spec.rb} +1 -1
- metadata +64 -35
- data/spec/unit/defmastership/parsing_state_spec.rb +0 -48
- /data/spec/unit/{defmastership/comment_filter_spec.rb → def_mastership/string_spec.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29225577d47450033d4ea2c9715ab51cb2025318ff26da38435c11900ff0cb52
|
4
|
+
data.tar.gz: a36cb1eb3b8c45cb14b74200d43163edd1907bcfe7ed2a54d15f4f1ebd341454
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb97db7204c4665f53c5f57e03737e31a88373a928ce4157f912938b84feff1b3b7f260365fa210bab905b47eb87c336e259e91d1a77d73ace80e84f8152d464
|
7
|
+
data.tar.gz: 4c359dbf1017c365d9c00faf7617233e3793093dba327d39982cebd7dabd68a7b5af0a999568c91775cd16a2a8af9cc544a67fdf3acedf92d65120269c372d18
|
data/.gitignore
CHANGED
data/.gitlab-ci.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
default:
|
2
|
-
image: ruby:2
|
2
|
+
image: ruby:3.2
|
3
3
|
before_script:
|
4
4
|
- apt-get update
|
5
5
|
- ruby -v
|
@@ -7,14 +7,45 @@ default:
|
|
7
7
|
- gem install bundler --no-document
|
8
8
|
- bundle install --jobs $(nproc) "${FLAGS[@]}"
|
9
9
|
|
10
|
-
|
10
|
+
bdd:
|
11
11
|
script:
|
12
12
|
- bundle exec rake features
|
13
13
|
|
14
|
-
|
14
|
+
unit tests:
|
15
15
|
script:
|
16
16
|
- bundle exec rake spec
|
17
17
|
|
18
18
|
rubocop:
|
19
19
|
script:
|
20
20
|
- bundle exec rake rubocop
|
21
|
+
|
22
|
+
bdd ruby2.7:
|
23
|
+
image: ruby:2.7
|
24
|
+
script:
|
25
|
+
- bundle exec rake features
|
26
|
+
|
27
|
+
bdd ruby3.0:
|
28
|
+
image: ruby:3.0
|
29
|
+
script:
|
30
|
+
- bundle exec rake features
|
31
|
+
|
32
|
+
bdd ruby3.1:
|
33
|
+
image: ruby:3.1
|
34
|
+
script:
|
35
|
+
- bundle exec rake features
|
36
|
+
|
37
|
+
unit tests ruby2.7:
|
38
|
+
image: ruby:2.7
|
39
|
+
script:
|
40
|
+
- bundle exec rake spec
|
41
|
+
|
42
|
+
unit tests ruby3.0:
|
43
|
+
image: ruby:3.0
|
44
|
+
script:
|
45
|
+
- bundle exec rake spec
|
46
|
+
|
47
|
+
unit tests ruby3.1:
|
48
|
+
image: ruby:3.1
|
49
|
+
script:
|
50
|
+
- bundle exec rake spec
|
51
|
+
|
data/.rubocop.yml
CHANGED
@@ -10,17 +10,19 @@
|
|
10
10
|
# See https://github.com/rubocop-hq/rubocop/blob/master/manual/configuration.md
|
11
11
|
|
12
12
|
require:
|
13
|
+
- rubocop-performance
|
13
14
|
- rubocop-rspec
|
15
|
+
- rubocop-rake
|
14
16
|
|
15
17
|
AllCops:
|
16
|
-
TargetRubyVersion: 2.
|
18
|
+
TargetRubyVersion: 2.7
|
17
19
|
EnabledByDefault: true
|
18
20
|
DisplayCopNames: true
|
19
21
|
|
20
22
|
Style/Copyright:
|
21
23
|
Enabled: true
|
22
24
|
Notice: 'Copyright (\(c\) )?202[0-9] Jerome Arbez-Gindre'
|
23
|
-
AutocorrectNotice: '# Copyright (c)
|
25
|
+
AutocorrectNotice: '# Copyright (c) 2023 Jerome Arbez-Gindre'
|
24
26
|
|
25
27
|
Lint/ConstantResolution: # Not available ins rubocop 0.81
|
26
28
|
Enabled: false
|
@@ -29,7 +31,10 @@ Style/DocumentationMethod:
|
|
29
31
|
Enabled: false
|
30
32
|
|
31
33
|
Style/StringHashKeys :
|
32
|
-
Enabled:
|
34
|
+
Enabled: true
|
35
|
+
Exclude:
|
36
|
+
- '*.gemspec'
|
37
|
+
- 'spec/**/*'
|
33
38
|
|
34
39
|
Style/MissingElse:
|
35
40
|
EnforcedStyle: case
|
@@ -55,14 +60,17 @@ Style/ConstantVisibility :
|
|
55
60
|
|
56
61
|
# rubocop-rspec options
|
57
62
|
RSpec/MessageExpectation :
|
58
|
-
Enabled:
|
63
|
+
Enabled: true
|
59
64
|
|
60
65
|
RSpec/FilePath :
|
61
|
-
Enabled:
|
66
|
+
Enabled: true
|
62
67
|
|
63
68
|
RSpec/NestedGroups:
|
64
69
|
Max: 4
|
65
70
|
|
66
71
|
Layout/RedundantLineBreak:
|
67
72
|
Enabled: false
|
68
|
-
|
73
|
+
|
74
|
+
Layout/EndOfLine:
|
75
|
+
EnforcedStyle: lf
|
76
|
+
|
data/Rakefile
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# Copyright (c) 2020 Jerome Arbez-Gindre
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require('cucumber')
|
5
|
+
require('cucumber/rake/task')
|
4
6
|
require('rake/clean')
|
7
|
+
require('rdoc/task')
|
5
8
|
require('rubygems')
|
6
9
|
require('rubygems/package_task')
|
7
|
-
require('rdoc/task')
|
8
|
-
require('cucumber')
|
9
|
-
require('cucumber/rake/task')
|
10
10
|
|
11
11
|
Rake::RDocTask.new do |rd|
|
12
12
|
rd.main = 'README.rdoc'
|
@@ -14,40 +14,54 @@ Rake::RDocTask.new do |rd|
|
|
14
14
|
rd.title = 'Your application title'
|
15
15
|
end
|
16
16
|
|
17
|
-
spec = eval(
|
17
|
+
spec = eval(File.read('defmastership.gemspec'))
|
18
18
|
|
19
19
|
Gem::PackageTask.new(spec)
|
20
20
|
CUKE_RESULTS = 'features_results.html'
|
21
21
|
CLEAN << CUKE_RESULTS
|
22
22
|
|
23
23
|
desc('Run features')
|
24
|
-
|
25
|
-
opts =
|
26
|
-
|
24
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
25
|
+
opts = ['features'] +
|
26
|
+
['--format', 'html'] +
|
27
|
+
['-o', CUKE_RESULTS] +
|
28
|
+
['--format', 'progress'] +
|
29
|
+
['-x']
|
30
|
+
opts += ['--tags', ENV.fetch('TAGS').split.join(' or ')] if ENV['TAGS']
|
27
31
|
t.cucumber_opts = opts
|
28
32
|
t.fork = false
|
29
33
|
end
|
30
34
|
|
31
35
|
desc('Run features tagged as work-in-progress (@wip)')
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
36
|
+
Cucumber::Rake::Task.new('features:wip') do |t|
|
37
|
+
t.cucumber_opts = ['features'] +
|
38
|
+
['--format', 'html'] +
|
39
|
+
['-o', CUKE_RESULTS] +
|
40
|
+
['--format', 'pretty'] +
|
41
|
+
['-x'] +
|
42
|
+
['-s'] +
|
43
|
+
['--tags', '@wip and not @pending']
|
37
44
|
t.fork = false
|
38
45
|
end
|
39
46
|
|
47
|
+
desc('Test all features')
|
40
48
|
task(cucumber: :features)
|
49
|
+
|
50
|
+
desc('Test only WIP features')
|
41
51
|
task(wip: 'features:wip')
|
42
52
|
|
43
53
|
require('bundler/gem_tasks')
|
44
54
|
|
45
55
|
require('rspec/core/rake_task')
|
46
56
|
|
47
|
-
|
57
|
+
RSpec::Core::RakeTask.new(:spec)
|
48
58
|
|
49
59
|
require('rubocop/rake_task')
|
50
60
|
|
51
|
-
|
61
|
+
RuboCop::RakeTask.new do |task|
|
62
|
+
task.requires << 'rubocop-performance'
|
63
|
+
task.requires << 'rubocop-rspec'
|
64
|
+
task.requires << 'rubocop-rake'
|
65
|
+
end
|
52
66
|
|
53
|
-
task(default: %i[spec features
|
67
|
+
task(default: %i[rubocop spec features])
|
data/bin/defmastership
CHANGED
@@ -67,7 +67,7 @@ module DefMastership
|
|
67
67
|
|
68
68
|
warn("warning: #{definition.reference} has a wrong explicit checksum (should be #{definition.sha256})")
|
69
69
|
end
|
70
|
-
exit 1 unless options[:
|
70
|
+
exit 1 unless options[:'no-fail']
|
71
71
|
end
|
72
72
|
end
|
73
73
|
end
|
@@ -87,16 +87,16 @@ module DefMastership
|
|
87
87
|
c.action do |_global_options, options, args|
|
88
88
|
changer = BatchModifier.new(
|
89
89
|
YAML.load_file(options[:'modifications-file']),
|
90
|
-
args.
|
90
|
+
args.to_h { |afile| [afile, File.read(afile)] }
|
91
91
|
)
|
92
92
|
|
93
93
|
changer.apply(options[:modifications])
|
94
94
|
|
95
95
|
changer.adoc_texts.each do |adoc_file, adoc_text|
|
96
|
-
File.
|
96
|
+
File.write(adoc_file, adoc_text)
|
97
97
|
end
|
98
98
|
|
99
|
-
File.
|
99
|
+
File.write(options[:'modifications-file'], changer.config.to_yaml)
|
100
100
|
|
101
101
|
unless options['changes-summary'].nil?
|
102
102
|
CSV.open(options['changes-summary'], 'wb') do |csv|
|
data/defmastership.gemspec
CHANGED
@@ -14,31 +14,36 @@ require(
|
|
14
14
|
)
|
15
15
|
)
|
16
16
|
|
17
|
-
Gem::Specification.new do |
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
17
|
+
Gem::Specification.new do |spec|
|
18
|
+
spec.metadata = {
|
19
|
+
'rubygems_mfa_required' => 'true'
|
20
|
+
}
|
21
|
+
spec.required_ruby_version = '>= 2.7'
|
22
|
+
spec.name = 'defmastership'
|
23
|
+
spec.version = DefMastership::VERSION
|
24
|
+
spec.author = 'Jérôme Arbez-Gindre'
|
25
|
+
spec.email = 'jeromearbezgindre@gmail.com'
|
26
|
+
spec.licenses = ['MIT']
|
27
|
+
spec.homepage = 'https://gitlab.com/jjag/defmastership/'
|
28
|
+
spec.platform = Gem::Platform::RUBY
|
29
|
+
spec.summary = 'Handling of references and definitions with asciidoctor'
|
30
|
+
spec.files = `git ls-files`.split("\n")
|
31
|
+
spec.require_paths << 'lib'
|
32
|
+
spec.extra_rdoc_files = ['README.rdoc', 'defmastership.rdoc']
|
33
|
+
spec.rdoc_options << '--title defmastership' << '--main README.rdoc' << '-ri'
|
34
|
+
spec.bindir = 'bin'
|
35
|
+
spec.executables << 'defmastership'
|
36
|
+
spec.add_development_dependency('aruba', '~> 2')
|
37
|
+
spec.add_development_dependency('cucumber', '~> 8')
|
38
|
+
spec.add_development_dependency('rake', '~> 13')
|
39
|
+
spec.add_development_dependency('rdoc', '~> 6')
|
40
|
+
spec.add_development_dependency('rspec', '~> 3')
|
41
|
+
spec.add_development_dependency('rubocop', '1.50')
|
42
|
+
spec.add_development_dependency('rubocop-performance', '~> 1.17')
|
43
|
+
spec.add_development_dependency('rubocop-rake', '~> 0.6')
|
44
|
+
spec.add_development_dependency('rubocop-rspec', '~> 2.22')
|
45
|
+
spec.add_development_dependency('simplecov', '~> 0')
|
46
|
+
spec.add_runtime_dependency('aasm', '~> 5')
|
47
|
+
spec.add_runtime_dependency('asciidoctor', '~> 2')
|
48
|
+
spec.add_runtime_dependency('gli', '~> 2')
|
44
49
|
end
|
data/features/export.feature
CHANGED
@@ -130,7 +130,7 @@ Feature: The extract command
|
|
130
130
|
----
|
131
131
|
"""
|
132
132
|
When I successfully run `defmastership export toto.adoc`
|
133
|
-
Then the file "toto.csv" should contain:
|
133
|
+
Then the file "toto.csv" should not contain:
|
134
134
|
"""
|
135
135
|
something_else
|
136
136
|
"""
|
@@ -312,3 +312,72 @@ Feature: The extract command
|
|
312
312
|
"""
|
313
313
|
And the stdout should not contain anything
|
314
314
|
And the stderr should not contain anything
|
315
|
+
|
316
|
+
Scenario: Extract one definition with example in it
|
317
|
+
Given a file named "toto.adoc" with:
|
318
|
+
"""
|
319
|
+
[define, requirement, TOTO-0001]
|
320
|
+
--
|
321
|
+
[example]
|
322
|
+
----
|
323
|
+
[define, requirement, TOTO-002]
|
324
|
+
not a real definition
|
325
|
+
----
|
326
|
+
--
|
327
|
+
"""
|
328
|
+
When I successfully run `defmastership export toto.adoc`
|
329
|
+
Then the file "toto.csv" should contain:
|
330
|
+
"""
|
331
|
+
Type,Reference,Value,Checksum
|
332
|
+
requirement,TOTO-0001,"[example]
|
333
|
+
----
|
334
|
+
[define, requirement, TOTO-002]
|
335
|
+
not a real definition
|
336
|
+
----",~8f20a443
|
337
|
+
"""
|
338
|
+
And the stdout should not contain anything
|
339
|
+
And the stderr should not contain anything
|
340
|
+
|
341
|
+
Scenario: Extract one definition with single line comment in it
|
342
|
+
Given a file named "toto.adoc" with:
|
343
|
+
"""
|
344
|
+
[define, requirement, TOTO-0001]
|
345
|
+
--
|
346
|
+
// comment
|
347
|
+
--
|
348
|
+
"""
|
349
|
+
When I successfully run `defmastership export toto.adoc`
|
350
|
+
Then the file "toto.csv" should contain:
|
351
|
+
"""
|
352
|
+
Type,Reference,Value,Checksum
|
353
|
+
requirement,TOTO-0001,// comment,~b0b506c3
|
354
|
+
"""
|
355
|
+
And the stdout should not contain anything
|
356
|
+
And the stderr should not contain anything
|
357
|
+
|
358
|
+
Scenario: Extract one definition with multi line comment or literal in it
|
359
|
+
Given a file named "toto.adoc" with:
|
360
|
+
"""
|
361
|
+
[define, requirement, TOTO-0001]
|
362
|
+
--
|
363
|
+
////
|
364
|
+
multiline comment
|
365
|
+
////
|
366
|
+
....
|
367
|
+
literal
|
368
|
+
....
|
369
|
+
--
|
370
|
+
"""
|
371
|
+
When I successfully run `defmastership export toto.adoc`
|
372
|
+
Then the file "toto.csv" should contain:
|
373
|
+
"""
|
374
|
+
Type,Reference,Value,Checksum
|
375
|
+
requirement,TOTO-0001,"////
|
376
|
+
multiline comment
|
377
|
+
////
|
378
|
+
....
|
379
|
+
literal
|
380
|
+
....",~7eb3c490
|
381
|
+
"""
|
382
|
+
And the stdout should not contain anything
|
383
|
+
And the stderr should not contain anything
|
@@ -1,6 +1,9 @@
|
|
1
1
|
# Copyright (c) 2020 Jerome Arbez-Gindre
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require 'defmastership/constants'
|
5
|
+
require 'defmastership/line_modifier_base'
|
6
|
+
|
4
7
|
module DefMastership
|
5
8
|
# Change references from temporary to definitive with multiple RefChangers
|
6
9
|
class ChangeRefLineModifier < LineModifierBase
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require('csv')
|
5
|
-
require('defmastership/csv_formatter_header')
|
6
5
|
require('defmastership/csv_formatter_body')
|
6
|
+
require('defmastership/csv_formatter_header')
|
7
7
|
|
8
8
|
module DefMastership
|
9
9
|
# to export a CSV file
|
@@ -15,7 +15,7 @@ module DefMastership
|
|
15
15
|
|
16
16
|
def export_to(output_file)
|
17
17
|
column_list = build_column_list
|
18
|
-
CSV.open(output_file, 'w:ISO-8859-1',
|
18
|
+
CSV.open(output_file, 'w:ISO-8859-1', col_sep: @sep) do |csv|
|
19
19
|
csv << header(column_list)
|
20
20
|
@doc.definitions.each { |definition| csv << body(definition, column_list) }
|
21
21
|
end
|
@@ -26,13 +26,13 @@ module DefMastership
|
|
26
26
|
def header(column_list)
|
27
27
|
header_formatter = CSVFormatterHeader.new(@doc)
|
28
28
|
header_line = column_list.map { |part| header_formatter.public_send(part) }
|
29
|
-
header_line.
|
29
|
+
header_line.flatten
|
30
30
|
end
|
31
31
|
|
32
32
|
def body(definition, column_list)
|
33
33
|
body_formatter = CSVFormatterBody.new(@doc)
|
34
34
|
body_line = column_list.map { |part| body_formatter.public_send(part, definition) }
|
35
|
-
body_line.
|
35
|
+
body_line.flatten
|
36
36
|
end
|
37
37
|
|
38
38
|
def build_column_list
|
@@ -22,15 +22,11 @@ module DefMastership
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def parse(lines)
|
25
|
-
lines.
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
line = generate_event(filter.event, Regexp.last_match, line)
|
32
|
-
|
33
|
-
break if filter.consumed_line
|
25
|
+
lines.each do |line|
|
26
|
+
if @parsing_state.enabled?(line)
|
27
|
+
apply_filters(line)
|
28
|
+
else
|
29
|
+
generate_event(:new_line, nil, line)
|
34
30
|
end
|
35
31
|
end
|
36
32
|
end
|
@@ -113,6 +109,16 @@ module DefMastership
|
|
113
109
|
|
114
110
|
private
|
115
111
|
|
112
|
+
def apply_filters(line)
|
113
|
+
FILTERS.each do |filter|
|
114
|
+
next unless line.match(filter.regexp)
|
115
|
+
|
116
|
+
line = generate_event(filter.event, Regexp.last_match, line)
|
117
|
+
|
118
|
+
break if filter.consumed_line
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
116
122
|
def generate_event(event, match, line)
|
117
123
|
if respond_to?(event)
|
118
124
|
line = public_send(event, match, line)
|
@@ -16,14 +16,21 @@ module DefMastership
|
|
16
16
|
|
17
17
|
adoc_texts =
|
18
18
|
replacements.reduce(adoc_texts) do |texts, method|
|
19
|
-
texts
|
20
|
-
text.lines.map { |line| line_modifier.public_send(method, line) }.join
|
21
|
-
end
|
19
|
+
transform_values(texts, line_modifier, method)
|
22
20
|
end
|
23
21
|
|
24
22
|
@config = line_modifier.config
|
25
23
|
@changes = line_modifier.changes
|
26
24
|
adoc_texts
|
27
25
|
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def transform_values(texts, line_modifier, method)
|
30
|
+
texts.transform_values do |text|
|
31
|
+
text.lines.map { |line| line_modifier.public_send(method, line) }
|
32
|
+
.join
|
33
|
+
end
|
34
|
+
end
|
28
35
|
end
|
29
36
|
end
|
@@ -9,8 +9,10 @@ module DefMastership
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def enabled?(line)
|
12
|
+
return false if line.match(DMRegexp::SINGLE_LINE_COMMENT)
|
13
|
+
|
12
14
|
line = line.dup.chomp
|
13
|
-
if ['....', '////'].include?(line)
|
15
|
+
if ['....', '----', '////'].include?(line)
|
14
16
|
if @last_disabling_line == line
|
15
17
|
@last_disabling_line = nil
|
16
18
|
elsif @last_disabling_line.nil?
|
data/lib/defmastership.rb
CHANGED
@@ -5,27 +5,22 @@ require('defmastership/version')
|
|
5
5
|
|
6
6
|
# Add requires for other files you add to your project here, so
|
7
7
|
# you just need to require this one file in your bin file
|
8
|
+
require('defmastership/batch_modifier')
|
9
|
+
require('defmastership/change_ref_line_modifier')
|
10
|
+
require('defmastership/change_ref_modifier')
|
11
|
+
require('defmastership/comment_filter')
|
8
12
|
require('defmastership/constants')
|
9
|
-
require('defmastership/
|
13
|
+
require('defmastership/csv_formatter')
|
10
14
|
require('defmastership/definition')
|
11
15
|
require('defmastership/definition_parser')
|
12
|
-
require('defmastership/filters')
|
13
16
|
require('defmastership/document')
|
14
|
-
require('defmastership/
|
15
|
-
require('defmastership/csv_formatter')
|
16
|
-
|
17
|
-
require('defmastership/modifier_base')
|
17
|
+
require('defmastership/filters')
|
18
18
|
require('defmastership/line_modifier_base')
|
19
|
-
require('defmastership/
|
20
|
-
|
21
|
-
require('defmastership/change_ref_modifier')
|
22
|
-
require('defmastership/change_ref_line_modifier')
|
23
|
-
|
24
|
-
require('defmastership/rename_included_files_modifier')
|
19
|
+
require('defmastership/modifier_base')
|
20
|
+
require('defmastership/parsing_state')
|
25
21
|
require('defmastership/rename_included_files_line_modifier')
|
26
|
-
|
27
|
-
require('defmastership/update_def_checksum_modifier')
|
22
|
+
require('defmastership/rename_included_files_modifier')
|
28
23
|
require('defmastership/update_def_checksum_line_modifier')
|
29
|
-
|
30
|
-
require('defmastership/update_def_version_modifier')
|
24
|
+
require('defmastership/update_def_checksum_modifier')
|
31
25
|
require('defmastership/update_def_version_line_modifier')
|
26
|
+
require('defmastership/update_def_version_modifier')
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# Copyright (c) 2020 Jerome Arbez-Gindre
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
require('bundler/setup')
|
5
|
-
require('aruba/rspec')
|
6
4
|
require('aasm/rspec')
|
5
|
+
require('aruba/rspec')
|
6
|
+
require('bundler/setup')
|
7
7
|
|
8
8
|
# formatter = [SimpleCov::Formatter::HTMLFormatter]
|
9
9
|
# SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(formatter)
|
@@ -31,7 +31,7 @@ RSpec.describe(DefMastership::BatchModifier) do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
describe '.new' do
|
34
|
-
it { is_expected.not_to(
|
34
|
+
it { is_expected.not_to(be_nil) }
|
35
35
|
it { is_expected.to(have_attributes(config: config)) }
|
36
36
|
|
37
37
|
it do
|
@@ -114,9 +114,10 @@ RSpec.describe(DefMastership::BatchModifier) do
|
|
114
114
|
|
115
115
|
context 'with wrong modification' do
|
116
116
|
it do
|
117
|
-
expect { batchmodifier.apply('wrong-modification') }
|
118
|
-
|
119
|
-
|
117
|
+
expect { batchmodifier.apply('wrong-modification') }
|
118
|
+
.to(
|
119
|
+
raise_error(ArgumentError, 'wrong-modification is not a known modification')
|
120
|
+
)
|
120
121
|
end
|
121
122
|
end
|
122
123
|
end
|
@@ -7,12 +7,16 @@ RSpec.describe(DefMastership::ChangeRefLineModifier) do
|
|
7
7
|
subject(:refchanger) { described_class.new }
|
8
8
|
|
9
9
|
describe '.new' do
|
10
|
-
it { is_expected.not_to(
|
10
|
+
it { is_expected.not_to(be_nil) }
|
11
11
|
it { is_expected.to(have_attributes(from_regexp: '')) }
|
12
12
|
it { is_expected.to(have_attributes(to_template: '')) }
|
13
13
|
it { is_expected.to(have_attributes(next_ref: 0)) }
|
14
14
|
it { is_expected.to(have_attributes(changes: [])) }
|
15
|
-
|
15
|
+
|
16
|
+
it do
|
17
|
+
expect { refchanger.user_defined_attribute }
|
18
|
+
.to(raise_error(NoMethodError))
|
19
|
+
end
|
16
20
|
end
|
17
21
|
|
18
22
|
describe '.from_config' do
|
@@ -24,7 +28,7 @@ RSpec.describe(DefMastership::ChangeRefLineModifier) do
|
|
24
28
|
)
|
25
29
|
end
|
26
30
|
|
27
|
-
it { is_expected.not_to(
|
31
|
+
it { is_expected.not_to(be_nil) }
|
28
32
|
it { is_expected.to(have_attributes(from_regexp: 'Whatever.+')) }
|
29
33
|
it { is_expected.to(have_attributes(to_template: 'Whatever')) }
|
30
34
|
it { is_expected.to(have_attributes(next_ref: 17)) }
|
@@ -238,6 +242,9 @@ RSpec.describe(DefMastership::ChangeRefLineModifier) do
|
|
238
242
|
.to(eq('defs:iref[TUTU]'))
|
239
243
|
end
|
240
244
|
|
241
|
-
it
|
245
|
+
it do
|
246
|
+
expect { refchanger.replace(:pouet, 'whatever') }
|
247
|
+
.to(raise_error(NoMethodError))
|
248
|
+
end
|
242
249
|
end
|
243
250
|
end
|
@@ -18,7 +18,7 @@ RSpec.describe(DefMastership::ChangeRefModifier) do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
describe '.new' do
|
21
|
-
it { is_expected.not_to(
|
21
|
+
it { is_expected.not_to(be_nil) }
|
22
22
|
it { is_expected.to(have_attributes(config: 'fake config')) }
|
23
23
|
it { is_expected.to(have_attributes(changes: [])) }
|
24
24
|
end
|