svg_conform 0.2.6 → 0.2.7
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/.github/workflows/rake.yml +1 -1
- data/Gemfile +2 -3
- data/Gemfile.lock +56 -117
- data/config/profiles/metanorma.yml +2 -2
- data/lib/svg_conform/cli.rb +0 -1
- data/lib/svg_conform/external_checkers/svgcheck/parser.rb +1 -3
- data/lib/svg_conform/quality_metrics/configuration.rb +4 -2
- data/lib/svg_conform/references/reference_manifest.rb +1 -2
- data/lib/svg_conform/validation/error_tracker.rb +37 -8
- data/lib/svg_conform/validation/svg_1_1_document_conformance.rb +0 -1
- data/lib/svg_conform/version.rb +1 -1
- data/lib/svg_conform/yaml_io.rb +20 -0
- data/lib/svg_conform.rb +1 -0
- data/spec/fixtures/quality_metrics/aliases.yml +7 -0
- data/spec/svg_conform/gemspec_spec.rb +13 -0
- data/spec/svg_conform/profiles/metanorma_profile_spec.rb +48 -0
- data/spec/svg_conform/quality_metrics/configuration_spec.rb +82 -0
- data/spec/svg_conform/requirements/text_as_path_requirement_spec.rb +9 -5
- data/spec/svg_conform/yaml_io_spec.rb +41 -0
- data/svg_conform.gemspec +1 -0
- metadata +20 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c570e54c0025259102584f034e789bcd18b4487d2954b858f8941c1095a7034a
|
|
4
|
+
data.tar.gz: 96aae95705ee4769216dd82a1b694d471f0dd348ae15228282f925006f66e558
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6314a0c0a4bd5f2cdf3a04e95852173382ccb33c9f4a2683cc38809a1a0afed53ea1febb809a12803e417769f82fed9a538ea7ee3e110f50b37bb7814ab0b541
|
|
7
|
+
data.tar.gz: 9f3f51c1f050447a6d84506e59fc52d3efaec2616deea94eb6e596c8255969a843bd69a8feebecb318308211937a81b85d079aa43a9dc9db9dd0edd045536a52
|
data/.github/workflows/rake.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -9,9 +9,8 @@ gem "canon", "~>0.1.10"
|
|
|
9
9
|
gem "leptris", ">= 1.9.399.0"
|
|
10
10
|
gem "lutaml-model", "~> 0.8.155" # rubygems line; drop the git-main float
|
|
11
11
|
gem "moxml", "~> 0.6.0"
|
|
12
|
-
#
|
|
13
|
-
|
|
14
|
-
gem "lens_core", git: "https://github.com/claricle/lens_core.git", ref: "d00a6e8f7c0b5365a76b43e256a2f41ef9aee4ef"
|
|
12
|
+
# lens_core is optional at runtime (#121); development and CI use the released v1 gem.
|
|
13
|
+
gem "lens_core", "~> 0.1"
|
|
15
14
|
gem "nokogiri", "~> 1.16"
|
|
16
15
|
gem "openssl", "~> 3.0"
|
|
17
16
|
gem "rake"
|
data/Gemfile.lock
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
GIT
|
|
2
|
-
remote: https://github.com/claricle/lens_core.git
|
|
3
|
-
revision: d00a6e8f7c0b5365a76b43e256a2f41ef9aee4ef
|
|
4
|
-
ref: d00a6e8f7c0b5365a76b43e256a2f41ef9aee4ef
|
|
5
|
-
specs:
|
|
6
|
-
lens_core (0.1.0)
|
|
7
|
-
|
|
8
1
|
PATH
|
|
9
2
|
remote: .
|
|
10
3
|
specs:
|
|
@@ -15,6 +8,7 @@ PATH
|
|
|
15
8
|
rainbow
|
|
16
9
|
table_tennis
|
|
17
10
|
thor
|
|
11
|
+
yeptris (~> 0.6.36)
|
|
18
12
|
|
|
19
13
|
GEM
|
|
20
14
|
remote: https://rubygems.org/
|
|
@@ -39,72 +33,75 @@ GEM
|
|
|
39
33
|
ffi (1.17.4-arm-linux-gnu)
|
|
40
34
|
ffi (1.17.4-arm-linux-musl)
|
|
41
35
|
ffi (1.17.4-arm64-darwin)
|
|
42
|
-
ffi (1.17.4-x64-mingw-ucrt)
|
|
43
36
|
ffi (1.17.4-x86_64-darwin)
|
|
44
37
|
ffi (1.17.4-x86_64-linux-gnu)
|
|
45
38
|
ffi (1.17.4-x86_64-linux-musl)
|
|
46
39
|
json (3.1.0)
|
|
47
40
|
language_server-protocol (3.17.0.6)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
leptris (1.9.399.0-aarch64-linux-musl)
|
|
41
|
+
lens_core (0.1.0)
|
|
42
|
+
leptris (1.9.416.0-aarch64-linux)
|
|
51
43
|
ffi (~> 1.15)
|
|
52
|
-
leptris (1.9.
|
|
44
|
+
leptris (1.9.416.0-aarch64-linux-musl)
|
|
53
45
|
ffi (~> 1.15)
|
|
54
|
-
leptris (1.9.
|
|
46
|
+
leptris (1.9.416.0-arm-linux)
|
|
55
47
|
ffi (~> 1.15)
|
|
56
|
-
leptris (1.9.
|
|
48
|
+
leptris (1.9.416.0-arm-linux-musl)
|
|
57
49
|
ffi (~> 1.15)
|
|
58
|
-
leptris (1.9.
|
|
50
|
+
leptris (1.9.416.0-arm64-darwin)
|
|
59
51
|
ffi (~> 1.15)
|
|
60
|
-
leptris (1.9.
|
|
52
|
+
leptris (1.9.416.0-x86_64-darwin)
|
|
61
53
|
ffi (~> 1.15)
|
|
62
|
-
leptris (1.9.
|
|
54
|
+
leptris (1.9.416.0-x86_64-linux)
|
|
63
55
|
ffi (~> 1.15)
|
|
64
|
-
leptris (1.9.
|
|
56
|
+
leptris (1.9.416.0-x86_64-linux-musl)
|
|
65
57
|
ffi (~> 1.15)
|
|
66
58
|
lint_roller (1.1.0)
|
|
67
59
|
liquid (5.14.0)
|
|
68
60
|
bigdecimal
|
|
69
61
|
strscan (>= 3.1.1)
|
|
70
|
-
lutaml-model (0.8.
|
|
62
|
+
lutaml-model (0.8.174)
|
|
71
63
|
base64 (>= 0.1.1)
|
|
72
64
|
bigdecimal
|
|
73
65
|
canon
|
|
74
66
|
concurrent-ruby
|
|
75
67
|
liquid (>= 4.0, < 6.0)
|
|
76
|
-
moxml (
|
|
68
|
+
moxml (~> 0.6.1)
|
|
77
69
|
ostruct
|
|
78
70
|
rubyzip (~> 3.7)
|
|
79
71
|
thor (~> 1.4)
|
|
80
72
|
memo_wise (1.13.0)
|
|
81
|
-
moxml (0.6.
|
|
82
|
-
nokogiri (1.19.
|
|
83
|
-
racc (~> 1.4)
|
|
84
|
-
nokogiri (1.19.4-aarch64-linux-musl)
|
|
73
|
+
moxml (0.6.4)
|
|
74
|
+
nokogiri (1.19.7-aarch64-linux-gnu)
|
|
85
75
|
racc (~> 1.4)
|
|
86
|
-
nokogiri (1.19.
|
|
76
|
+
nokogiri (1.19.7-aarch64-linux-musl)
|
|
87
77
|
racc (~> 1.4)
|
|
88
|
-
nokogiri (1.19.
|
|
78
|
+
nokogiri (1.19.7-arm-linux-gnu)
|
|
89
79
|
racc (~> 1.4)
|
|
90
|
-
nokogiri (1.19.
|
|
80
|
+
nokogiri (1.19.7-arm-linux-musl)
|
|
91
81
|
racc (~> 1.4)
|
|
92
|
-
nokogiri (1.19.
|
|
82
|
+
nokogiri (1.19.7-arm64-darwin)
|
|
93
83
|
racc (~> 1.4)
|
|
94
|
-
nokogiri (1.19.
|
|
84
|
+
nokogiri (1.19.7-x86_64-darwin)
|
|
95
85
|
racc (~> 1.4)
|
|
96
|
-
nokogiri (1.19.
|
|
86
|
+
nokogiri (1.19.7-x86_64-linux-gnu)
|
|
97
87
|
racc (~> 1.4)
|
|
98
|
-
nokogiri (1.19.
|
|
88
|
+
nokogiri (1.19.7-x86_64-linux-musl)
|
|
99
89
|
racc (~> 1.4)
|
|
100
90
|
openssl (3.3.3)
|
|
101
91
|
ostruct (0.6.3)
|
|
102
92
|
paint (2.3.0)
|
|
103
93
|
parallel (2.3.0)
|
|
104
|
-
parser (3.3.
|
|
94
|
+
parser (3.3.13.0)
|
|
105
95
|
ast (~> 2.4.1)
|
|
106
96
|
racc
|
|
107
|
-
prism (1.
|
|
97
|
+
prism (2.1.0-aarch64-linux-gnu)
|
|
98
|
+
prism (2.1.0-aarch64-linux-musl)
|
|
99
|
+
prism (2.1.0-arm-linux-gnu)
|
|
100
|
+
prism (2.1.0-arm-linux-musl)
|
|
101
|
+
prism (2.1.0-arm64-darwin)
|
|
102
|
+
prism (2.1.0-x86_64-darwin)
|
|
103
|
+
prism (2.1.0-x86_64-linux-gnu)
|
|
104
|
+
prism (2.1.0-x86_64-linux-musl)
|
|
108
105
|
racc (1.8.1)
|
|
109
106
|
rainbow (3.1.1)
|
|
110
107
|
rake (13.4.2)
|
|
@@ -113,16 +110,16 @@ GEM
|
|
|
113
110
|
rspec-core (~> 3.13.0)
|
|
114
111
|
rspec-expectations (~> 3.13.0)
|
|
115
112
|
rspec-mocks (~> 3.13.0)
|
|
116
|
-
rspec-core (3.13.
|
|
113
|
+
rspec-core (3.13.7)
|
|
117
114
|
rspec-support (~> 3.13.0)
|
|
118
|
-
rspec-expectations (3.13.
|
|
115
|
+
rspec-expectations (3.13.6)
|
|
119
116
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
120
117
|
rspec-support (~> 3.13.0)
|
|
121
|
-
rspec-mocks (3.13.
|
|
118
|
+
rspec-mocks (3.13.9)
|
|
122
119
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
123
120
|
rspec-support (~> 3.13.0)
|
|
124
|
-
rspec-support (3.13.
|
|
125
|
-
rubocop (1.92.
|
|
121
|
+
rspec-support (3.13.8)
|
|
122
|
+
rubocop (1.92.2)
|
|
126
123
|
json (>= 2.3)
|
|
127
124
|
language_server-protocol (~> 3.17.0.2)
|
|
128
125
|
lint_roller (~> 1.1.0)
|
|
@@ -133,9 +130,9 @@ GEM
|
|
|
133
130
|
rubocop-ast (>= 1.49.0, < 2.0)
|
|
134
131
|
ruby-progressbar (~> 1.7)
|
|
135
132
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
136
|
-
rubocop-ast (1.
|
|
133
|
+
rubocop-ast (1.51.0)
|
|
137
134
|
parser (>= 3.3.7.2)
|
|
138
|
-
prism (
|
|
135
|
+
prism (>= 1.7)
|
|
139
136
|
rubocop-performance (1.27.0)
|
|
140
137
|
lint_roller (~> 1.1)
|
|
141
138
|
rubocop (>= 1.89.0, < 2.0)
|
|
@@ -163,24 +160,40 @@ GEM
|
|
|
163
160
|
unicode-name (1.15.1)
|
|
164
161
|
unicode-types (~> 1.12)
|
|
165
162
|
unicode-types (1.12.0)
|
|
163
|
+
yeptris (0.6.61.1-aarch64-linux)
|
|
164
|
+
ffi (~> 1.15)
|
|
165
|
+
yeptris (0.6.61.1-aarch64-linux-musl)
|
|
166
|
+
ffi (~> 1.15)
|
|
167
|
+
yeptris (0.6.61.1-arm-linux-eabihf)
|
|
168
|
+
ffi (~> 1.15)
|
|
169
|
+
yeptris (0.6.61.1-arm-linux-musleabihf)
|
|
170
|
+
ffi (~> 1.15)
|
|
171
|
+
yeptris (0.6.61.1-arm64-darwin)
|
|
172
|
+
ffi (~> 1.15)
|
|
173
|
+
yeptris (0.6.61.1-x86_64-darwin)
|
|
174
|
+
ffi (~> 1.15)
|
|
175
|
+
yeptris (0.6.61.1-x86_64-linux)
|
|
176
|
+
ffi (~> 1.15)
|
|
177
|
+
yeptris (0.6.61.1-x86_64-linux-musl)
|
|
178
|
+
ffi (~> 1.15)
|
|
166
179
|
|
|
167
180
|
PLATFORMS
|
|
168
181
|
aarch64-linux
|
|
169
182
|
aarch64-linux-gnu
|
|
170
183
|
aarch64-linux-musl
|
|
171
184
|
arm-linux
|
|
185
|
+
arm-linux-eabihf
|
|
172
186
|
arm-linux-gnu
|
|
173
187
|
arm-linux-musl
|
|
188
|
+
arm-linux-musleabihf
|
|
174
189
|
arm64-darwin
|
|
175
|
-
x64-mingw-ucrt
|
|
176
190
|
x86_64-darwin
|
|
177
|
-
x86_64-linux
|
|
178
191
|
x86_64-linux-gnu
|
|
179
192
|
x86_64-linux-musl
|
|
180
193
|
|
|
181
194
|
DEPENDENCIES
|
|
182
195
|
canon (~> 0.1.10)
|
|
183
|
-
lens_core
|
|
196
|
+
lens_core (~> 0.1)
|
|
184
197
|
leptris (>= 1.9.399.0)
|
|
185
198
|
lutaml-model (~> 0.8.155)
|
|
186
199
|
moxml (~> 0.6.0)
|
|
@@ -194,79 +207,5 @@ DEPENDENCIES
|
|
|
194
207
|
rubocop-rspec
|
|
195
208
|
svg_conform!
|
|
196
209
|
|
|
197
|
-
CHECKSUMS
|
|
198
|
-
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
|
|
199
|
-
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
|
|
200
|
-
bigdecimal (4.1.3) sha256=61ebe1e5e559bdc3cc6f2c0ee7f427321fc838f59611c294356eb04d6e21cf66
|
|
201
|
-
canon (0.1.23) sha256=502646c0d50cd9e17c8867d24e5808b4adb85230482ad02157f4d4f161f74cc0
|
|
202
|
-
concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
|
|
203
|
-
csv (3.3.7) sha256=15a3f16f6628da8664d455eb634e7f22031bcf53044923caf56975109e71b9f8
|
|
204
|
-
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
|
|
205
|
-
ffi (1.17.4-aarch64-linux-gnu) sha256=b208f06f91ffd8f5e1193da3cae3d2ccfc27fc36fba577baf698d26d91c080df
|
|
206
|
-
ffi (1.17.4-aarch64-linux-musl) sha256=9286b7a615f2676245283aef0a0a3b475ae3aae2bb5448baace630bb77b91f39
|
|
207
|
-
ffi (1.17.4-arm-linux-gnu) sha256=d6dbddf7cb77bf955411af5f187a65b8cd378cb003c15c05697f5feee1cb1564
|
|
208
|
-
ffi (1.17.4-arm-linux-musl) sha256=9d4838ded0465bef6e2426935f6bcc93134b6616785a84ffd2a3d82bc3cf6f95
|
|
209
|
-
ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b
|
|
210
|
-
ffi (1.17.4-x64-mingw-ucrt) sha256=f6ff9618cfccc494138bddade27aa06c74c6c7bc367a1ea1103d80c2fcb9ed35
|
|
211
|
-
ffi (1.17.4-x86_64-darwin) sha256=aa70390523cf3235096cf64962b709b4cfbd5c082a2cb2ae714eb0fe2ccda496
|
|
212
|
-
ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d
|
|
213
|
-
ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e
|
|
214
|
-
json (3.1.0) sha256=3ce7ccf8fde58960177a3a756c31f292a4c1e1dedee884547096a5b0604e3bd8
|
|
215
|
-
language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
|
|
216
|
-
lens_core (0.1.0)
|
|
217
|
-
leptris (1.9.399.0-aarch64-linux) sha256=f96125c2ceb69a48c9576dbba33d20466fd27b017ab7f54041f6bf37f0d3dc78
|
|
218
|
-
leptris (1.9.399.0-aarch64-linux-musl) sha256=feede158d84c3a46ac11da49e99ba2108a0b85a3e7113e056fa33e88f1dc694f
|
|
219
|
-
leptris (1.9.399.0-arm-linux) sha256=39046099c3d16e429966a79e5d509e120ad839bb41f3a1ed8183f0174f5a22fb
|
|
220
|
-
leptris (1.9.399.0-arm-linux-musl) sha256=b7526a73a8b06843228010fc03c00c801241ca591b1504aaf09fae8a12bb7bdb
|
|
221
|
-
leptris (1.9.399.0-arm64-darwin) sha256=f2c3e513cc31026307d4a28a92d97624fdb9dc1a67ef098a9586e0e76f250097
|
|
222
|
-
leptris (1.9.399.0-x64-mingw-ucrt) sha256=b3aced983a662307e930eed3d408d844b82d947d63f80dc6e4c48fec962d6a7b
|
|
223
|
-
leptris (1.9.399.0-x86_64-darwin) sha256=428c84f7c2e763bc2db614b1cafb49792852cd781d2c353e27206bf4aea3ce1c
|
|
224
|
-
leptris (1.9.399.0-x86_64-linux) sha256=ae235c244456b8949920d10c21bf9d8f01cf05fb6900c41bc2ef2531e01e86a8
|
|
225
|
-
leptris (1.9.399.0-x86_64-linux-musl) sha256=f7cf698c4858e132a19bf00667587ad96add7c35b3c629cbe97fdb20ef8099ce
|
|
226
|
-
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
|
|
227
|
-
liquid (5.14.0) sha256=e1020c2b2ee58c7a4d3bfdc7a331537bd27a783353748bff0bf27c6ac0c17065
|
|
228
|
-
lutaml-model (0.8.155) sha256=3d90f2fb4fdf41a42d4a05b62b3f6644b433070b82291a9371deaa8e68a1e02d
|
|
229
|
-
memo_wise (1.13.0) sha256=30220c38c4cef410849bc73553c58664dc2c91c6379e4a1df22aea02358b716b
|
|
230
|
-
moxml (0.6.1) sha256=5b7677258bbad372f0725a421f8adeae37b65d6f7871da2747e2c1906cdac7ea
|
|
231
|
-
nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f
|
|
232
|
-
nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af
|
|
233
|
-
nokogiri (1.19.4-arm-linux-gnu) sha256=a301313e38bb065d68239e79734bcd6f56fb6efaacebde29e9abf2a4735340ca
|
|
234
|
-
nokogiri (1.19.4-arm-linux-musl) sha256=588923c101bcfa78869734d247d25b598674323e7f22474fc468f6e5647311eb
|
|
235
|
-
nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527
|
|
236
|
-
nokogiri (1.19.4-x64-mingw-ucrt) sha256=051da97b8eccfdb5444fed40246a35e10d7298b9efe759b4cd25455ea04c587e
|
|
237
|
-
nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551
|
|
238
|
-
nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a
|
|
239
|
-
nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b
|
|
240
|
-
openssl (3.3.3) sha256=d46902138f2987c13122fab826030a11c2bb9b8a16394215cbfc5062c5e2d335
|
|
241
|
-
ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
|
|
242
|
-
paint (2.3.0) sha256=327d623e4038619d5bd99ae5db07973859cd78400c7f0329eea283cef8e83be5
|
|
243
|
-
parallel (2.3.0) sha256=f75a3e904101ce6a1ccb6b8dc800cbafd42166d83330192438dcf29395167a6f
|
|
244
|
-
parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828
|
|
245
|
-
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
246
|
-
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
|
247
|
-
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
|
|
248
|
-
rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
|
|
249
|
-
regexp_parser (2.13.1) sha256=5aedb6b7c35688f51e86eef17a15374dfd287c83f4ca644b2c5f3ec50a33b44b
|
|
250
|
-
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
|
|
251
|
-
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
|
|
252
|
-
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
|
|
253
|
-
rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
|
|
254
|
-
rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
|
|
255
|
-
rubocop (1.92.1) sha256=a905381a5344215a79abcfe80f6c94366447e6a55347c9a525b5a24990e33f62
|
|
256
|
-
rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
|
|
257
|
-
rubocop-performance (1.27.0) sha256=eeeb1374d062a368ee1c787b70eb0b0cc4b184cb1f8565f424760946146d61ce
|
|
258
|
-
rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d
|
|
259
|
-
rubocop-rspec (3.10.2) sha256=0b3e2ecc592cd10ecbf0095bb58d1e357905276e069643523cc19eb7495f65e2
|
|
260
|
-
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
|
261
|
-
rubyzip (3.7.0) sha256=65c19294da75297a939006f3516deacc33185fbd721ff1954f7a231db6d3e121
|
|
262
|
-
strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e
|
|
263
|
-
svg_conform (0.2.6)
|
|
264
|
-
table_tennis (1.0.0) sha256=955f76ca4debd42ee88682af8d4554a74d533c89de4f1581bc37855b15faa956
|
|
265
|
-
thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
|
|
266
|
-
unicode-display_width (3.3.0) sha256=4b7aa66a4b11db50f6f7e98411215cd0dd10eaecb665d36eec5bcacb3fa0b613
|
|
267
|
-
unicode-emoji (4.3.0) sha256=11c02fa73290378c066bb0562cd4c87d8e1b706fbbe0059ca12746a4244de8ce
|
|
268
|
-
unicode-name (1.15.1) sha256=b8f2e3ca14bc24799f84a4f74d43a3612d02a051700d88bc6ca8e3bd53cda3f6
|
|
269
|
-
unicode-types (1.12.0) sha256=7e26a4352cecc2a50325a3793df834b732581ca9f25c5e29f46f3378934363f6
|
|
270
|
-
|
|
271
210
|
BUNDLED WITH
|
|
272
211
|
2.7.2
|
|
@@ -67,7 +67,7 @@ requirements:
|
|
|
67
67
|
attributes: ["label", "class", "id", "role", "fill", "style", "transform", "fill-rule", "visibility", "base", "lang", "rel", "rev", "typeof", "content", "datatype", "resource", "about", "property", "space", "data-name", "clip-path", "mask"]
|
|
68
68
|
allowed_children: ["title", "path", "rect", "circle", "line", "ellipse", "polyline", "polygon", "solidColor", "textArea", "text", "g", "defs", "use", "a", "tspan", "desc", "image"]
|
|
69
69
|
- tag: "defs"
|
|
70
|
-
attributes: ["id", "role", "fill", "fill-rule", "base", "lang", "class", "rel", "rev", "typeof", "content", "datatype", "resource", "about", "property", "space"]
|
|
70
|
+
attributes: ["id", "role", "fill", "fill-rule", "base", "lang", "class", "rel", "rev", "typeof", "content", "datatype", "resource", "about", "property", "space", "clip-path", "mask"]
|
|
71
71
|
allowed_children: ["title", "path", "rect", "circle", "line", "ellipse", "polyline", "polygon", "solidColor", "textArea", "text", "g", "defs", "use", "a", "tspan", "desc", "style", "clipPath", "linearGradient", "radialGradient", "pattern", "marker", "mask", "filter", "image"]
|
|
72
72
|
- tag: "clipPath"
|
|
73
73
|
attributes: ["id", "clipPathUnits", "class", "style"]
|
|
@@ -100,7 +100,7 @@ requirements:
|
|
|
100
100
|
attributes: ["x", "y", "href", "xlink:href", "id", "role", "fill", "transform", "fill-rule", "base", "lang", "class", "rel", "rev", "typeof", "content", "datatype", "resource", "about", "property", "space", "clip-path", "mask"]
|
|
101
101
|
allowed_children: ["title", "desc"]
|
|
102
102
|
- tag: "a"
|
|
103
|
-
attributes: ["id", "role", "fill", "transform", "fill-rule", "target", "base", "lang", "class", "rel", "rev", "typeof", "content", "datatype", "resource", "about", "property", "space", "title"]
|
|
103
|
+
attributes: ["id", "role", "fill", "transform", "fill-rule", "target", "base", "lang", "class", "rel", "rev", "typeof", "content", "datatype", "resource", "about", "property", "space", "title", "clip-path", "mask"]
|
|
104
104
|
allowed_children: ["title", "path", "rect", "circle", "line", "ellipse", "polyline", "polygon", "solidColor", "textArea", "text", "g", "defs", "use", "a", "tspan", "desc"]
|
|
105
105
|
- tag: "tspan"
|
|
106
106
|
attributes: ["x", "y", "id", "role", "fill", "fill-rule", "base", "lang", "class", "rel", "rev", "typeof", "content", "datatype", "resource", "about", "property", "space", "letter-spacing"]
|
data/lib/svg_conform/cli.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require "yaml"
|
|
4
|
-
|
|
5
3
|
module SvgConform
|
|
6
4
|
module ExternalCheckers
|
|
7
5
|
module Svgcheck
|
|
@@ -26,7 +24,7 @@ module SvgConform
|
|
|
26
24
|
|
|
27
25
|
def load_mapping_config
|
|
28
26
|
@mapping_config = if File.exist?(@mapping_config_path)
|
|
29
|
-
|
|
27
|
+
SvgConform::YamlIO.load_file(@mapping_config_path)
|
|
30
28
|
else
|
|
31
29
|
# Fallback to empty config if file doesn't exist
|
|
32
30
|
{
|
|
@@ -39,8 +39,10 @@ module SvgConform
|
|
|
39
39
|
raise ArgumentError, "Configuration file not found: #{path}"
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
hash =
|
|
43
|
-
|
|
42
|
+
hash = SvgConform::YamlIO.safe_load_file(
|
|
43
|
+
path, permitted_classes: [Symbol], permitted_symbols: [],
|
|
44
|
+
aliases: true
|
|
45
|
+
)
|
|
44
46
|
new(hash)
|
|
45
47
|
end
|
|
46
48
|
|
|
@@ -18,13 +18,38 @@ module SvgConform
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
# Add an error to the context
|
|
21
|
+
#
|
|
22
|
+
# A declared severity of :warning is a quality advisory (see
|
|
23
|
+
# TextAsPathRequirement) and must surface as a warning, not an error:
|
|
24
|
+
# otherwise schema-valid documents are reported as corrupt by consumers
|
|
25
|
+
# that log result.errors (metanorma, metanorma-pdfa#106). Other
|
|
26
|
+
# severities keep their existing routing: :validity_error stays out of
|
|
27
|
+
# the main error bucket, and :info remains in errors because the style
|
|
28
|
+
# remediation flow consumes it there.
|
|
21
29
|
def add_error(node:, message:, rule: nil, requirement: nil,
|
|
22
30
|
requirement_id: nil, severity: nil, fix: nil, data: {})
|
|
23
31
|
# Support both old rule system and new requirements system
|
|
24
32
|
rule_or_requirement = requirement || rule
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
|
|
34
|
+
if severity == :warning
|
|
35
|
+
warning = ::SvgConform::Errors::ValidationIssue.new(
|
|
36
|
+
type: :warning,
|
|
37
|
+
rule: rule_or_requirement,
|
|
38
|
+
node: node,
|
|
39
|
+
message: message,
|
|
40
|
+
fix: fix,
|
|
41
|
+
data: data,
|
|
42
|
+
requirement_id: requirement_id,
|
|
43
|
+
severity: severity,
|
|
44
|
+
)
|
|
45
|
+
@warnings << warning
|
|
46
|
+
return warning
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
type, bucket = severity_bucket(severity)
|
|
50
|
+
|
|
51
|
+
issue = ::SvgConform::Errors::ValidationIssue.new(
|
|
52
|
+
type: type,
|
|
28
53
|
rule: rule_or_requirement,
|
|
29
54
|
node: node,
|
|
30
55
|
message: message,
|
|
@@ -34,14 +59,18 @@ module SvgConform
|
|
|
34
59
|
severity: severity,
|
|
35
60
|
)
|
|
36
61
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
62
|
+
bucket << issue
|
|
63
|
+
issue
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Map a declared severity to the issue type and tracker bucket
|
|
67
|
+
def severity_bucket(severity)
|
|
68
|
+
case severity
|
|
69
|
+
when :validity_error
|
|
70
|
+
[:error, @validity_errors]
|
|
40
71
|
else
|
|
41
|
-
@errors
|
|
72
|
+
[:error, @errors]
|
|
42
73
|
end
|
|
43
|
-
|
|
44
|
-
error
|
|
45
74
|
end
|
|
46
75
|
|
|
47
76
|
# Add a warning to the context
|
data/lib/svg_conform/version.rb
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "yeptris/psych"
|
|
4
|
+
|
|
5
|
+
module SvgConform
|
|
6
|
+
# YAML operations through Yeptris without installing its global drop-in.
|
|
7
|
+
module YamlIO
|
|
8
|
+
def self.load_file(...)
|
|
9
|
+
Yeptris::Psych.load_file(...)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.safe_load_file(...)
|
|
13
|
+
Yeptris::Psych.safe_load_file(...)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.dump(...)
|
|
17
|
+
Yeptris::Psych.dump(...)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
data/lib/svg_conform.rb
CHANGED
|
@@ -64,6 +64,7 @@ module SvgConform
|
|
|
64
64
|
require_relative "svg_conform/diagnostics/lens_core_adapter"
|
|
65
65
|
|
|
66
66
|
# Autoload core classes
|
|
67
|
+
autoload :YamlIO, File.expand_path("svg_conform/yaml_io", __dir__)
|
|
67
68
|
autoload :Validator, File.expand_path("svg_conform/validator", __dir__)
|
|
68
69
|
autoload :Fixer, "svg_conform/fixer"
|
|
69
70
|
autoload :RemediationEngine, "svg_conform/remediation_engine"
|
|
@@ -14,6 +14,19 @@ RSpec.describe "svg_conform.gemspec" do # rubocop:disable RSpec/DescribeClass
|
|
|
14
14
|
expect(File.read("lib/svg_conform.rb")).to include("rescue LoadError")
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
it "declares yeptris as a runtime dependency" do
|
|
18
|
+
dependency = specification.runtime_dependencies.find { |d| d.name == "yeptris" }
|
|
19
|
+
|
|
20
|
+
expect(dependency).not_to be_nil
|
|
21
|
+
expect(dependency.requirement).to eq(Gem::Requirement.new("~> 0.6.36"))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "loads the Psych-compatible yeptris API" do
|
|
25
|
+
require "yeptris/psych"
|
|
26
|
+
|
|
27
|
+
expect(defined?(Yeptris::Psych)).to be_truthy
|
|
28
|
+
end
|
|
29
|
+
|
|
17
30
|
it "exposes the lens_core availability probe" do
|
|
18
31
|
expect(SvgConform).to respond_to(:lens_core_available?)
|
|
19
32
|
expect(SvgConform.lens_core_available?).to be_truthy.or be_falsey
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
require "spec_helper"
|
|
4
4
|
|
|
5
|
+
# Container elements take the clip-path and mask presentation attributes
|
|
6
|
+
# per SVG (metanorma-pdfa#106).
|
|
7
|
+
METANORMA_PROFILE_CONTAINER_TAGS = %w[g a defs].freeze
|
|
8
|
+
METANORMA_PROFILE_CLIP_ATTRIBUTES = %w[clip-path mask].freeze
|
|
9
|
+
|
|
5
10
|
RSpec.describe "Metanorma Profile" do
|
|
6
11
|
let(:metanorma_profile_path) { "config/profiles/metanorma.yml" }
|
|
7
12
|
|
|
@@ -59,4 +64,47 @@ RSpec.describe "Metanorma Profile" do
|
|
|
59
64
|
expect(result).to respond_to(:valid?)
|
|
60
65
|
end
|
|
61
66
|
end
|
|
67
|
+
|
|
68
|
+
describe "clip-path and mask on container elements" do
|
|
69
|
+
# SVG applies the clip-path and mask properties to container elements and
|
|
70
|
+
# graphics elements alike; rejecting them on containers rejects
|
|
71
|
+
# schema-valid documents (metanorma-pdfa#106).
|
|
72
|
+
let(:profile) { SvgConform::Profile.load_from_file(metanorma_profile_path) }
|
|
73
|
+
let(:validator) { SvgConform::Validator.new(mode: :sax) }
|
|
74
|
+
|
|
75
|
+
def svg_with_clip_assets(inner)
|
|
76
|
+
<<~SVG
|
|
77
|
+
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny" viewBox="0 0 100 100">
|
|
78
|
+
<defs>
|
|
79
|
+
<clipPath id="clip1">
|
|
80
|
+
<rect x="0" y="0" width="50" height="50"/>
|
|
81
|
+
</clipPath>
|
|
82
|
+
<mask id="mask1">
|
|
83
|
+
<rect x="0" y="0" width="50" height="50" fill="white"/>
|
|
84
|
+
</mask>
|
|
85
|
+
</defs>
|
|
86
|
+
#{inner}
|
|
87
|
+
</svg>
|
|
88
|
+
SVG
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
METANORMA_PROFILE_CONTAINER_TAGS.each do |tag|
|
|
92
|
+
METANORMA_PROFILE_CLIP_ATTRIBUTES.each do |attribute|
|
|
93
|
+
it "allows #{attribute} on #{tag}" do
|
|
94
|
+
svg = svg_with_clip_assets(
|
|
95
|
+
"<#{tag} #{attribute}=\"url(##{attribute == 'clip-path' ? 'clip1' : 'mask1'})\">" \
|
|
96
|
+
"<rect x=\"10\" y=\"10\" width=\"30\" height=\"30\" fill=\"red\"/>" \
|
|
97
|
+
"</#{tag}>",
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
result = validator.validate(svg, profile: profile)
|
|
101
|
+
attribute_errors = result.errors.select do |e|
|
|
102
|
+
e.message.include?("'#{attribute}'")
|
|
103
|
+
end
|
|
104
|
+
expect(attribute_errors).to be_empty
|
|
105
|
+
expect(result).to be_valid
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
62
110
|
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "spec_helper"
|
|
4
|
+
require "svg_conform/quality_metrics/configuration"
|
|
5
|
+
require "psych"
|
|
6
|
+
require "tempfile"
|
|
7
|
+
|
|
8
|
+
RSpec.describe SvgConform::QualityMetrics::Configuration do
|
|
9
|
+
describe ".default" do
|
|
10
|
+
let(:hash) { described_class.default.instance_variable_get(:@hash) }
|
|
11
|
+
|
|
12
|
+
it "loads bundled violation types as Symbols" do
|
|
13
|
+
types = hash.fetch("severity_levels").values.flat_map do |level|
|
|
14
|
+
level.fetch("violation_types")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
expect(types).to include(:reference_violation)
|
|
18
|
+
expect(types).to all(be_a(Symbol))
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "preserves the entire Psych-loaded configuration" do
|
|
22
|
+
expected = Psych.safe_load_file(described_class::DEFAULT_CONFIG_PATH,
|
|
23
|
+
permitted_classes: [Symbol],
|
|
24
|
+
permitted_symbols: [], aliases: true)
|
|
25
|
+
|
|
26
|
+
expect(hash).to eq(expected)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe ".from_yaml" do
|
|
31
|
+
def load_yaml(source)
|
|
32
|
+
Tempfile.create(["quality_metrics", ".yml"]) do |file|
|
|
33
|
+
file.write(source)
|
|
34
|
+
file.flush
|
|
35
|
+
described_class.from_yaml(file.path)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "preserves quoted Symbol values" do
|
|
40
|
+
pending "yeptris differs from Psych: quoted Symbols retain quotes; upstream issue to be filed, see PR description"
|
|
41
|
+
|
|
42
|
+
config = load_yaml('a: :"x y"')
|
|
43
|
+
|
|
44
|
+
expect(config.instance_variable_get(:@hash)).to eq("a" => :"x y")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "rejects disallowed dates with the yeptris error naming Date" do
|
|
48
|
+
expect { load_yaml("f: 2024-01-02\n") }
|
|
49
|
+
.to raise_error(Yeptris::Psych::DisallowedClass, /Date/)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "rejects disallowed times with the yeptris error naming Time" do
|
|
53
|
+
pending "yeptris differs from Psych: disallowed Time is reported as Date; upstream issue to be filed, see PR description"
|
|
54
|
+
|
|
55
|
+
expect { load_yaml("f: 2024-01-02 10:00:00\n") }
|
|
56
|
+
.to raise_error(Yeptris::Psych::DisallowedClass, /Time/)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "rejects invalid YAML with the yeptris syntax error" do
|
|
60
|
+
expect { load_yaml("a: [\n") }.to raise_error(Yeptris::Psych::SyntaxError)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "resolves anchors and aliases" do
|
|
64
|
+
path = File.expand_path("../../fixtures/quality_metrics/aliases.yml", __dir__)
|
|
65
|
+
hash = described_class.from_yaml(path).instance_variable_get(:@hash)
|
|
66
|
+
|
|
67
|
+
expect(hash.fetch("remediable_types")).to eq([:reference_violation])
|
|
68
|
+
expect(hash.dig("severity_levels", "critical", "violation_types"))
|
|
69
|
+
.to eq(hash.fetch("remediable_types"))
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it "rejects a non-permitted class with the yeptris error" do
|
|
73
|
+
Tempfile.create(["quality_metrics", ".yml"]) do |file|
|
|
74
|
+
file.write("--- !ruby/object:Object {}\n")
|
|
75
|
+
file.flush
|
|
76
|
+
|
|
77
|
+
expect { described_class.from_yaml(file.path) }
|
|
78
|
+
.to raise_error(Yeptris::Psych::DisallowedClass)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -56,12 +56,16 @@ RSpec.describe SvgConform::Requirements::TextAsPathRequirement do
|
|
|
56
56
|
SVG
|
|
57
57
|
|
|
58
58
|
result = validator.validate(svg, profile: :metanorma)
|
|
59
|
-
text_as_path_errors = result.errors.select do |e|
|
|
60
|
-
e.message.include?("rendered as paths")
|
|
61
|
-
end
|
|
62
59
|
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
# Text-as-path is a quality advisory declared with severity: warning:
|
|
61
|
+
# it must surface as a warning, never as an error, so that schema-valid
|
|
62
|
+
# documents are not reported as invalid (metanorma-pdfa#106).
|
|
63
|
+
expect(result.errors).to be_empty
|
|
64
|
+
expect(result.warnings.map(&:message)).to include(
|
|
65
|
+
a_string_including("rendered as paths"),
|
|
66
|
+
)
|
|
67
|
+
expect(result.warnings.first.severity).to eq(:warning)
|
|
68
|
+
expect(result).to be_valid
|
|
65
69
|
end
|
|
66
70
|
|
|
67
71
|
it "does not flag SVG with native text elements" do
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "spec_helper"
|
|
4
|
+
require "tmpdir"
|
|
5
|
+
|
|
6
|
+
RSpec.describe SvgConform::YamlIO do
|
|
7
|
+
def with_yaml(text)
|
|
8
|
+
Dir.mktmpdir do |dir|
|
|
9
|
+
path = File.join(dir, "t.yml")
|
|
10
|
+
File.write(path, text)
|
|
11
|
+
yield path
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
let(:aliased) { "a: &x {k: 1}\nb: *x\nc: :sym\n" }
|
|
16
|
+
|
|
17
|
+
it "loads aliases and permitted Symbols like Psych" do
|
|
18
|
+
with_yaml(aliased) do |path|
|
|
19
|
+
expect(described_class.safe_load_file(
|
|
20
|
+
path, permitted_classes: [Symbol], aliases: true
|
|
21
|
+
)).to eq("a" => { "k" => 1 }, "b" => { "k" => 1 }, "c" => :sym)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "rejects aliases unless aliases: true" do
|
|
26
|
+
with_yaml(aliased) do |path|
|
|
27
|
+
expect do
|
|
28
|
+
described_class.safe_load_file(path, permitted_classes: [Symbol])
|
|
29
|
+
end.to raise_error(Yeptris::Psych::AliasesError)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "loads the bundled quality config through Configuration" do
|
|
34
|
+
expect(SvgConform::QualityMetrics::Configuration.default).not_to be_nil
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "dumps byte-identical to Psych for a manifest-like hash" do
|
|
38
|
+
h = { "a" => :b, "c" => [1, "x: y", nil], "d" => { "e" => 1.5 } }
|
|
39
|
+
expect(described_class.dump(h)).to eq(Psych.dump(h))
|
|
40
|
+
end
|
|
41
|
+
end
|
data/svg_conform.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: svg_conform
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-11-
|
|
11
|
+
date: 2026-11-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lutaml-model
|
|
@@ -94,6 +94,20 @@ dependencies:
|
|
|
94
94
|
- - ">="
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: yeptris
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 0.6.36
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 0.6.36
|
|
97
111
|
description:
|
|
98
112
|
email:
|
|
99
113
|
- open.source@ribose.com
|
|
@@ -272,6 +286,7 @@ files:
|
|
|
272
286
|
- lib/svg_conform/validation_result.rb
|
|
273
287
|
- lib/svg_conform/validator.rb
|
|
274
288
|
- lib/svg_conform/version.rb
|
|
289
|
+
- lib/svg_conform/yaml_io.rb
|
|
275
290
|
- lib/tasks/fixtures.rake
|
|
276
291
|
- lib/tasks/svgcheck.rake
|
|
277
292
|
- reference-docs/SVG-1.2-RFC.rnc.txt
|
|
@@ -346,6 +361,7 @@ files:
|
|
|
346
361
|
- spec/fixtures/profiles/svg_2_secure_static/valid/same-document-fragment.svg
|
|
347
362
|
- spec/fixtures/profiles/svg_2_secure_static/valid/svg-base64.svg
|
|
348
363
|
- spec/fixtures/profiles/svg_2_secure_static/valid/svg-percent.svg
|
|
364
|
+
- spec/fixtures/quality_metrics/aliases.yml
|
|
349
365
|
- spec/fixtures/style/inputs/basic_violations.svg
|
|
350
366
|
- spec/fixtures/style/repair/basic_violations.svg
|
|
351
367
|
- spec/fixtures/style_promotion/inputs/basic_test.svg
|
|
@@ -533,6 +549,7 @@ files:
|
|
|
533
549
|
- spec/svg_conform/profiles/svg_1_2_rfc_with_rdf_profile_spec.rb
|
|
534
550
|
- spec/svg_conform/profiles/svg_2_secure_static_profile_spec.rb
|
|
535
551
|
- spec/svg_conform/profiles_plantuml_spec.rb
|
|
552
|
+
- spec/svg_conform/quality_metrics/configuration_spec.rb
|
|
536
553
|
- spec/svg_conform/references/data_uri_reference_spec.rb
|
|
537
554
|
- spec/svg_conform/references/integration_spec.rb
|
|
538
555
|
- spec/svg_conform/references/reference_classifier_spec.rb
|
|
@@ -573,6 +590,7 @@ files:
|
|
|
573
590
|
- spec/svg_conform/validation_context_spec.rb
|
|
574
591
|
- spec/svg_conform/validation_result_spec.rb
|
|
575
592
|
- spec/svg_conform/validator_input_types_spec.rb
|
|
593
|
+
- spec/svg_conform/yaml_io_spec.rb
|
|
576
594
|
- spec/svg_conform_spec.rb
|
|
577
595
|
- spec/svgcheck_compatibility_spec.rb
|
|
578
596
|
- svg_conform.gemspec
|