defmastership-core 1.3.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +6 -1
- data/Gemfile +21 -21
- data/lib/defmastership/core/constants.rb +7 -1
- data/lib/defmastership/core/version.rb +1 -1
- data/spec/unit/defmastership/core/dm_regexp_spec.rb +18 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07bc53590b73e2833caaecb1bae8cfecd87a1ecef94fbe7ecb9b5eb6ea89d828
|
4
|
+
data.tar.gz: adf941d0a7655906428a6b0841780bae626e222284a192cae4e2c7af6dd25dec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21867b6159f14e934248174adff6d253b36f55d19f50528e3ccd0fda55afa2bb391a27a339d0b3b9d9e92b0c4fe427e512a0cc666e895e1089e289678f8b52cb
|
7
|
+
data.tar.gz: a5efb633dd49c4cc0593cb9a1e8e1d2177b45680e78c89f457f55efd62b0156de913db8ff7bd07e710a35dc41226ac9604584008f113224cc68d0051285dee35
|
data/.gitlab-ci.yml
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
default:
|
2
|
-
image: ruby:3.
|
2
|
+
image: ruby:3.4
|
3
3
|
before_script:
|
4
4
|
- apt-get update
|
5
5
|
- ruby -v
|
@@ -54,6 +54,11 @@ unit tests ruby3.2:
|
|
54
54
|
script:
|
55
55
|
- bundle exec rake test:spec
|
56
56
|
|
57
|
+
unit tests ruby3.3:
|
58
|
+
image: ruby:3.3
|
59
|
+
script:
|
60
|
+
- bundle exec rake test:spec
|
61
|
+
|
57
62
|
pages:
|
58
63
|
stage: deploy
|
59
64
|
script:
|
data/Gemfile
CHANGED
@@ -10,27 +10,27 @@ ruby RUBY_VERSION
|
|
10
10
|
# rubocop:disable Metrics/BlockLength
|
11
11
|
group :development do
|
12
12
|
# needed by yard to render documentation
|
13
|
-
gem 'asciidoctor', '~> 2'
|
13
|
+
gem 'asciidoctor', '~> 2.0'
|
14
14
|
# cucumber steps for command line tests
|
15
|
-
gem 'aruba', '~> 2'
|
15
|
+
gem 'aruba', '~> 2.2'
|
16
16
|
# bdd
|
17
|
-
gem 'cucumber', '~> 9'
|
17
|
+
gem 'cucumber', '~> 9.2'
|
18
18
|
|
19
19
|
# code duplication
|
20
|
-
gem 'flay', '~> 2'
|
20
|
+
gem 'flay', '~> 2.13'
|
21
21
|
|
22
22
|
# automatic test run
|
23
|
-
gem 'guard', '~> 2'
|
23
|
+
gem 'guard', '~> 2.19'
|
24
24
|
# automatic update invocation
|
25
|
-
gem 'guard-bundler', '~> 3'
|
25
|
+
gem 'guard-bundler', '~> 3.0'
|
26
26
|
if RUBY_VERSION >= '3.0'
|
27
27
|
# automatic style check
|
28
28
|
gem 'guard-reek', '~> 1.2'
|
29
29
|
end
|
30
30
|
# automatic tdd
|
31
|
-
gem 'guard-rspec', '~> 4'
|
31
|
+
gem 'guard-rspec', '~> 4.7'
|
32
32
|
# automatic style check
|
33
|
-
gem 'guard-rubocop', '~> 1'
|
33
|
+
gem 'guard-rubocop', '~> 1.5'
|
34
34
|
|
35
35
|
# if RUBY_VERSION >= '3.0'
|
36
36
|
# # mutation testing
|
@@ -44,45 +44,45 @@ group :development do
|
|
44
44
|
# gem 'mutant-rspec', '~> 0'
|
45
45
|
# end
|
46
46
|
# to parse and execute Rakefile
|
47
|
-
gem 'rake', '~> 13'
|
47
|
+
gem 'rake', '~> 13.2'
|
48
48
|
|
49
49
|
if RUBY_VERSION >= '3.0'
|
50
50
|
# needed by yard to render documentation
|
51
|
-
gem 'rdoc', '~> 6'
|
51
|
+
gem 'rdoc', '~> 6.1O'
|
52
52
|
end
|
53
53
|
# tdd
|
54
|
-
gem 'rspec', '~> 3'
|
54
|
+
gem 'rspec', '~> 3.13'
|
55
55
|
# # to test performances
|
56
56
|
# gem 'rspec-benchmark', '~> 0'
|
57
57
|
# code needs to be clean
|
58
|
-
gem 'rubocop', '1.
|
58
|
+
gem 'rubocop', '1.69'
|
59
59
|
# code needs to be clean
|
60
|
-
gem 'rubocop-performance', '~> 1'
|
60
|
+
gem 'rubocop-performance', '~> 1.23'
|
61
61
|
# test code needs to be clean
|
62
|
-
gem 'rubocop-rspec', '~> 3'
|
62
|
+
gem 'rubocop-rspec', '~> 3.3'
|
63
63
|
# Rakefiles need to be clean
|
64
|
-
gem 'rubocop-rake', '~> 0'
|
64
|
+
gem 'rubocop-rake', '~> 0.6'
|
65
65
|
|
66
66
|
if RUBY_VERSION >= '3.0'
|
67
67
|
# detect selling code
|
68
|
-
gem 'reek', '~> 6'
|
68
|
+
gem 'reek', '~> 6.3'
|
69
69
|
# my code needs to be critiqued
|
70
|
-
gem 'rubycritic', '~> 4'
|
70
|
+
gem 'rubycritic', '~> 4.9'
|
71
71
|
# Doc need to be clean
|
72
|
-
gem 'rubocop-yard', '~> 0'
|
72
|
+
gem 'rubocop-yard', '~> 0.10'
|
73
73
|
end
|
74
74
|
|
75
75
|
# What is tdd without code coverage ?
|
76
|
-
gem 'simplecov', '~> 0'
|
76
|
+
gem 'simplecov', '~> 0.22'
|
77
77
|
|
78
78
|
if RUBY_VERSION >= '3.0'
|
79
79
|
# to document code
|
80
|
-
gem 'yard', '~> 0'
|
80
|
+
gem 'yard', '~> 0.9'
|
81
81
|
end
|
82
82
|
end
|
83
83
|
# rubocop:enable Metrics/BlockLength
|
84
84
|
|
85
85
|
group :debugging do
|
86
86
|
# Sometimes, we need to debug
|
87
|
-
gem 'pry', '~> 0'
|
87
|
+
gem 'pry', '~> 0.15'
|
88
88
|
end
|
@@ -49,7 +49,12 @@ module Defmastership
|
|
49
49
|
public_constant :REFERENCE
|
50
50
|
|
51
51
|
# [Regexp] match defintion summary
|
52
|
-
DEF_SUMMARY = '
|
52
|
+
DEF_SUMMARY = <<~'SUM'
|
53
|
+
\s*
|
54
|
+
(,\s*
|
55
|
+
((?<summary>[^\s,\[\]][^,\[\]]*?)|("\s*(?<summary>[^""]*?)\s*"))
|
56
|
+
\s*)?
|
57
|
+
SUM
|
53
58
|
public_constant :DEF_SUMMARY
|
54
59
|
|
55
60
|
# [Regexp] match definition labels
|
@@ -83,6 +88,7 @@ module Defmastership
|
|
83
88
|
\\s*
|
84
89
|
\\]
|
85
90
|
DEF
|
91
|
+
# [Regexp] match a definition line
|
86
92
|
DEFINITION = Regexp.new(definition_re_string, Regexp::EXTENDED)
|
87
93
|
public_constant :DEFINITION
|
88
94
|
|
@@ -131,7 +131,8 @@ RSpec.describe(Defmastership::Core::DMRegexp) do
|
|
131
131
|
']',
|
132
132
|
',[label1]]',
|
133
133
|
', a nice summary,[label1]]',
|
134
|
-
', a nice summary]'
|
134
|
+
', a nice summary]',
|
135
|
+
', "a nice summary, with comma"]'
|
135
136
|
].each do |def_end|
|
136
137
|
it { is_expected.to(match(def_end)) }
|
137
138
|
end
|
@@ -140,6 +141,7 @@ RSpec.describe(Defmastership::Core::DMRegexp) do
|
|
140
141
|
it { expect(regexp.match(' ,[ label1 , label2 ] ]')[:summary]).to(be_nil) }
|
141
142
|
it { expect(regexp.match(', a summary ]')[:summary]).to(eq('a summary')) }
|
142
143
|
it { expect(regexp.match(', a summary ]')[:labels]).to(be_nil) }
|
144
|
+
it { expect(regexp.match(', " a, comma " ]')[:summary]).to(eq('a, comma')) }
|
143
145
|
end
|
144
146
|
|
145
147
|
context 'when invalid definitions end' do
|
@@ -221,19 +223,26 @@ RSpec.describe(Defmastership::Core::DMRegexp) do
|
|
221
223
|
'',
|
222
224
|
', bla bla bli',
|
223
225
|
', bla bla bli ',
|
224
|
-
' , bla bla bli '
|
226
|
+
' , bla bla bli ',
|
227
|
+
', bla: bla bli',
|
228
|
+
', "bla bla, bli"',
|
229
|
+
', " bla bla , bli "'
|
225
230
|
].each do |line|
|
226
231
|
it { is_expected.to(match(line)) }
|
227
232
|
end
|
228
233
|
|
229
234
|
it { expect(regexp.match('')[:summary]).to(be_nil) }
|
230
|
-
it { expect(regexp.match(', bla bla bli ')[:summary]).to(eq('bla bla bli')) }
|
235
|
+
it { expect(regexp.match(', bla: bla bli ')[:summary]).to(eq('bla: bla bli')) }
|
236
|
+
it { expect(regexp.match(', " bla bla , bli "')[:summary]).to(eq('bla bla , bli')) }
|
231
237
|
end
|
232
238
|
|
233
239
|
context 'with invalid definition summary' do
|
234
240
|
it { is_expected.not_to(match('blabla without coma')) }
|
235
241
|
it { is_expected.not_to(match(', [bla bla bli')) }
|
236
242
|
it { is_expected.not_to(match(', bla bla bli]')) }
|
243
|
+
it { is_expected.not_to(match(', "bla bla bli]')) }
|
244
|
+
it { is_expected.not_to(match(', bla bla bli"]')) }
|
245
|
+
it { is_expected.not_to(match(', ""bla bla bli]')) }
|
237
246
|
it { is_expected.not_to(match(',')) }
|
238
247
|
it { is_expected.not_to(match(', ')) }
|
239
248
|
it { is_expected.not_to(match(',,')) }
|
@@ -274,7 +283,8 @@ RSpec.describe(Defmastership::Core::DMRegexp) do
|
|
274
283
|
'[define , definition_type, REFERENCE-0001]',
|
275
284
|
'[ define,def-type , 001-REFERENCE, [ label1, label2 ] ] ',
|
276
285
|
'[ define, def-type , REFERENCE-001 , [ label1, label2 ] ]',
|
277
|
-
'[ define, def-type , REFERENCE-001 , a summary, [ label1, label2 ] ]'
|
286
|
+
'[ define, def-type , REFERENCE-001 , a summary, [ label1, label2 ] ]',
|
287
|
+
'[ define, def-type , REFERENCE-001 , "a, summary, comma", [ label1, label2 ] ]'
|
278
288
|
].each do |line|
|
279
289
|
it { is_expected.to(match(line)) }
|
280
290
|
end
|
@@ -287,6 +297,8 @@ RSpec.describe(Defmastership::Core::DMRegexp) do
|
|
287
297
|
it { expect(one_match[:explicit_checksum]).to(eq('~1234')) }
|
288
298
|
it { expect(one_match[:summary]).to(eq('a summary')) }
|
289
299
|
it { expect(one_match[:labels]).to(eq('a,b')) }
|
300
|
+
|
301
|
+
it { expect(regexp.match('[define,t,R," a , comma "]')[:summary]).to(eq('a , comma')) }
|
290
302
|
end
|
291
303
|
|
292
304
|
context 'with invalid definition lines' do
|
@@ -342,7 +354,8 @@ RSpec.describe(Defmastership::Core::DMRegexp) do
|
|
342
354
|
[
|
343
355
|
'{my_var}',
|
344
356
|
' {my_var} ',
|
345
|
-
'{var-with_dash}'
|
357
|
+
'{var-with_dash}',
|
358
|
+
'[define, requirement, TOTO-0001, A nice {a_variable}]'
|
346
359
|
].each do |line|
|
347
360
|
it { is_expected.to(match(line)) }
|
348
361
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: defmastership-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jérôme Arbez-Gindre
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: jeromearbezgindre@gmail.com
|
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
requirements: []
|
64
|
-
rubygems_version: 3.5.
|
64
|
+
rubygems_version: 3.5.22
|
65
65
|
signing_key:
|
66
66
|
specification_version: 4
|
67
67
|
summary: Handling of references and definitions with asciidoctor - common code
|