selma 0.0.7 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Cargo.lock +734 -0
- data/Cargo.toml +6 -0
- data/README.md +1 -1
- data/ext/selma/Cargo.toml +3 -3
- data/ext/selma/extconf.rb +0 -2
- data/ext/selma/src/html/text_chunk.rs +6 -6
- data/ext/selma/src/rewriter.rs +21 -17
- data/ext/selma/src/sanitizer.rs +4 -3
- data/lib/selma/version.rb +1 -1
- metadata +5 -19
- data/ext/selma/_util.rb +0 -102
- data/selma.gemspec +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c8f57d5ae3f09a9457ea5a2ed3bd8db347bbb2b4d696cd660e53fe7dd77b3e1
|
4
|
+
data.tar.gz: 7722be4f78d25760464a28679cd92cede4ae0013ef1f5a170a68945e500270f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afd41b0e75bec3fa4f6ffffa20a3b8642fcbf3338fe2e9fa1439dfa54cb70a007d86fe15f9c6c78f1815d45305309f2ccef19987165e2e8c30018286d6d94576
|
7
|
+
data.tar.gz: e07f434d483f5ef6b7181c4f4197b258a83b35958eda0c5c1cb216a2bf407a9cd3b6adbc59dc6e280990397bb40f21712520d4190b4076e881a79645af01833f
|
data/Cargo.lock
ADDED
@@ -0,0 +1,734 @@
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
2
|
+
# It is not intended for manual editing.
|
3
|
+
version = 3
|
4
|
+
|
5
|
+
[[package]]
|
6
|
+
name = "ahash"
|
7
|
+
version = "0.8.3"
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
9
|
+
checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
|
10
|
+
dependencies = [
|
11
|
+
"cfg-if",
|
12
|
+
"once_cell",
|
13
|
+
"version_check",
|
14
|
+
]
|
15
|
+
|
16
|
+
[[package]]
|
17
|
+
name = "aho-corasick"
|
18
|
+
version = "1.0.2"
|
19
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
20
|
+
checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
|
21
|
+
dependencies = [
|
22
|
+
"memchr",
|
23
|
+
]
|
24
|
+
|
25
|
+
[[package]]
|
26
|
+
name = "bindgen"
|
27
|
+
version = "0.62.0"
|
28
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
29
|
+
checksum = "c6720a8b7b2d39dd533285ed438d458f65b31b5c257e6ac7bb3d7e82844dd722"
|
30
|
+
dependencies = [
|
31
|
+
"bitflags 1.3.2",
|
32
|
+
"cexpr",
|
33
|
+
"clang-sys",
|
34
|
+
"lazy_static",
|
35
|
+
"lazycell",
|
36
|
+
"peeking_take_while",
|
37
|
+
"proc-macro2",
|
38
|
+
"quote",
|
39
|
+
"regex",
|
40
|
+
"rustc-hash",
|
41
|
+
"shlex",
|
42
|
+
"syn 1.0.109",
|
43
|
+
]
|
44
|
+
|
45
|
+
[[package]]
|
46
|
+
name = "bitflags"
|
47
|
+
version = "1.3.2"
|
48
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
49
|
+
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
50
|
+
|
51
|
+
[[package]]
|
52
|
+
name = "bitflags"
|
53
|
+
version = "2.3.1"
|
54
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
55
|
+
checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84"
|
56
|
+
|
57
|
+
[[package]]
|
58
|
+
name = "byteorder"
|
59
|
+
version = "1.4.3"
|
60
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
61
|
+
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
|
62
|
+
|
63
|
+
[[package]]
|
64
|
+
name = "cexpr"
|
65
|
+
version = "0.6.0"
|
66
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
67
|
+
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
68
|
+
dependencies = [
|
69
|
+
"nom",
|
70
|
+
]
|
71
|
+
|
72
|
+
[[package]]
|
73
|
+
name = "cfg-if"
|
74
|
+
version = "1.0.0"
|
75
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
76
|
+
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
77
|
+
|
78
|
+
[[package]]
|
79
|
+
name = "clang-sys"
|
80
|
+
version = "1.6.1"
|
81
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
82
|
+
checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
|
83
|
+
dependencies = [
|
84
|
+
"glob",
|
85
|
+
"libc",
|
86
|
+
"libloading",
|
87
|
+
]
|
88
|
+
|
89
|
+
[[package]]
|
90
|
+
name = "convert_case"
|
91
|
+
version = "0.4.0"
|
92
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
93
|
+
checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
|
94
|
+
|
95
|
+
[[package]]
|
96
|
+
name = "cssparser"
|
97
|
+
version = "0.27.2"
|
98
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
99
|
+
checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
|
100
|
+
dependencies = [
|
101
|
+
"cssparser-macros",
|
102
|
+
"dtoa-short",
|
103
|
+
"itoa",
|
104
|
+
"matches",
|
105
|
+
"phf",
|
106
|
+
"proc-macro2",
|
107
|
+
"quote",
|
108
|
+
"smallvec",
|
109
|
+
"syn 1.0.109",
|
110
|
+
]
|
111
|
+
|
112
|
+
[[package]]
|
113
|
+
name = "cssparser-macros"
|
114
|
+
version = "0.6.1"
|
115
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
116
|
+
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
|
117
|
+
dependencies = [
|
118
|
+
"quote",
|
119
|
+
"syn 2.0.18",
|
120
|
+
]
|
121
|
+
|
122
|
+
[[package]]
|
123
|
+
name = "derive_more"
|
124
|
+
version = "0.99.17"
|
125
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
126
|
+
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
|
127
|
+
dependencies = [
|
128
|
+
"convert_case",
|
129
|
+
"proc-macro2",
|
130
|
+
"quote",
|
131
|
+
"rustc_version",
|
132
|
+
"syn 1.0.109",
|
133
|
+
]
|
134
|
+
|
135
|
+
[[package]]
|
136
|
+
name = "dtoa"
|
137
|
+
version = "0.4.8"
|
138
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
139
|
+
checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
|
140
|
+
|
141
|
+
[[package]]
|
142
|
+
name = "dtoa-short"
|
143
|
+
version = "0.3.3"
|
144
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
145
|
+
checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6"
|
146
|
+
dependencies = [
|
147
|
+
"dtoa",
|
148
|
+
]
|
149
|
+
|
150
|
+
[[package]]
|
151
|
+
name = "encoding_rs"
|
152
|
+
version = "0.8.32"
|
153
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
154
|
+
checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
|
155
|
+
dependencies = [
|
156
|
+
"cfg-if",
|
157
|
+
]
|
158
|
+
|
159
|
+
[[package]]
|
160
|
+
name = "entities"
|
161
|
+
version = "1.0.1"
|
162
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
163
|
+
checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
|
164
|
+
|
165
|
+
[[package]]
|
166
|
+
name = "enum-iterator"
|
167
|
+
version = "1.4.1"
|
168
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
169
|
+
checksum = "7add3873b5dd076766ee79c8e406ad1a472c385476b9e38849f8eec24f1be689"
|
170
|
+
dependencies = [
|
171
|
+
"enum-iterator-derive",
|
172
|
+
]
|
173
|
+
|
174
|
+
[[package]]
|
175
|
+
name = "enum-iterator-derive"
|
176
|
+
version = "1.2.1"
|
177
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
178
|
+
checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb"
|
179
|
+
dependencies = [
|
180
|
+
"proc-macro2",
|
181
|
+
"quote",
|
182
|
+
"syn 2.0.18",
|
183
|
+
]
|
184
|
+
|
185
|
+
[[package]]
|
186
|
+
name = "escapist"
|
187
|
+
version = "0.0.2"
|
188
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
189
|
+
checksum = "a91c7e59d7e5afa56d8be4dc7e27ea123dcd23d38b4b6a6497a05cddd95844a2"
|
190
|
+
dependencies = [
|
191
|
+
"entities",
|
192
|
+
]
|
193
|
+
|
194
|
+
[[package]]
|
195
|
+
name = "fxhash"
|
196
|
+
version = "0.2.1"
|
197
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
198
|
+
checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
|
199
|
+
dependencies = [
|
200
|
+
"byteorder",
|
201
|
+
]
|
202
|
+
|
203
|
+
[[package]]
|
204
|
+
name = "getrandom"
|
205
|
+
version = "0.1.16"
|
206
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
207
|
+
checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
|
208
|
+
dependencies = [
|
209
|
+
"cfg-if",
|
210
|
+
"libc",
|
211
|
+
"wasi",
|
212
|
+
]
|
213
|
+
|
214
|
+
[[package]]
|
215
|
+
name = "glob"
|
216
|
+
version = "0.3.1"
|
217
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
218
|
+
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
219
|
+
|
220
|
+
[[package]]
|
221
|
+
name = "hashbrown"
|
222
|
+
version = "0.13.2"
|
223
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
224
|
+
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
|
225
|
+
dependencies = [
|
226
|
+
"ahash",
|
227
|
+
]
|
228
|
+
|
229
|
+
[[package]]
|
230
|
+
name = "itoa"
|
231
|
+
version = "0.4.8"
|
232
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
233
|
+
checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
|
234
|
+
|
235
|
+
[[package]]
|
236
|
+
name = "lazy_static"
|
237
|
+
version = "1.4.0"
|
238
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
239
|
+
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
240
|
+
|
241
|
+
[[package]]
|
242
|
+
name = "lazycell"
|
243
|
+
version = "1.3.0"
|
244
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
245
|
+
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
246
|
+
|
247
|
+
[[package]]
|
248
|
+
name = "libc"
|
249
|
+
version = "0.2.145"
|
250
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
251
|
+
checksum = "fc86cde3ff845662b8f4ef6cb50ea0e20c524eb3d29ae048287e06a1b3fa6a81"
|
252
|
+
|
253
|
+
[[package]]
|
254
|
+
name = "libloading"
|
255
|
+
version = "0.7.4"
|
256
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
257
|
+
checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
|
258
|
+
dependencies = [
|
259
|
+
"cfg-if",
|
260
|
+
"winapi",
|
261
|
+
]
|
262
|
+
|
263
|
+
[[package]]
|
264
|
+
name = "log"
|
265
|
+
version = "0.4.18"
|
266
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
267
|
+
checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de"
|
268
|
+
|
269
|
+
[[package]]
|
270
|
+
name = "lol_html"
|
271
|
+
version = "1.0.0"
|
272
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
273
|
+
checksum = "ce59b33732efed2480f7d15722ed56905e81004b402196a738f7532ff44d9798"
|
274
|
+
dependencies = [
|
275
|
+
"bitflags 2.3.1",
|
276
|
+
"cfg-if",
|
277
|
+
"cssparser",
|
278
|
+
"encoding_rs",
|
279
|
+
"hashbrown",
|
280
|
+
"lazy_static",
|
281
|
+
"lazycell",
|
282
|
+
"memchr",
|
283
|
+
"mime",
|
284
|
+
"safemem",
|
285
|
+
"selectors",
|
286
|
+
"thiserror",
|
287
|
+
]
|
288
|
+
|
289
|
+
[[package]]
|
290
|
+
name = "magnus"
|
291
|
+
version = "0.5.3"
|
292
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
293
|
+
checksum = "c8dc14463c2552e753ef562961f486ca76f17a857c121db40e9f3ade3f35ab81"
|
294
|
+
dependencies = [
|
295
|
+
"magnus-macros",
|
296
|
+
"rb-sys",
|
297
|
+
"rb-sys-env",
|
298
|
+
]
|
299
|
+
|
300
|
+
[[package]]
|
301
|
+
name = "magnus-macros"
|
302
|
+
version = "0.4.1"
|
303
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
304
|
+
checksum = "6cc17af1d45442c011aa579d727ec6cff8a69aea8a6bbad26736e7112d749bfb"
|
305
|
+
dependencies = [
|
306
|
+
"proc-macro2",
|
307
|
+
"quote",
|
308
|
+
"syn 1.0.109",
|
309
|
+
]
|
310
|
+
|
311
|
+
[[package]]
|
312
|
+
name = "matches"
|
313
|
+
version = "0.1.10"
|
314
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
315
|
+
checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
|
316
|
+
|
317
|
+
[[package]]
|
318
|
+
name = "memchr"
|
319
|
+
version = "2.5.0"
|
320
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
321
|
+
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
|
322
|
+
|
323
|
+
[[package]]
|
324
|
+
name = "mime"
|
325
|
+
version = "0.3.17"
|
326
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
327
|
+
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
|
328
|
+
|
329
|
+
[[package]]
|
330
|
+
name = "minimal-lexical"
|
331
|
+
version = "0.2.1"
|
332
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
333
|
+
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
334
|
+
|
335
|
+
[[package]]
|
336
|
+
name = "nodrop"
|
337
|
+
version = "0.1.14"
|
338
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
339
|
+
checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
|
340
|
+
|
341
|
+
[[package]]
|
342
|
+
name = "nom"
|
343
|
+
version = "7.1.3"
|
344
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
345
|
+
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
|
346
|
+
dependencies = [
|
347
|
+
"memchr",
|
348
|
+
"minimal-lexical",
|
349
|
+
]
|
350
|
+
|
351
|
+
[[package]]
|
352
|
+
name = "once_cell"
|
353
|
+
version = "1.18.0"
|
354
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
355
|
+
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
|
356
|
+
|
357
|
+
[[package]]
|
358
|
+
name = "peeking_take_while"
|
359
|
+
version = "0.1.2"
|
360
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
361
|
+
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
|
362
|
+
|
363
|
+
[[package]]
|
364
|
+
name = "phf"
|
365
|
+
version = "0.8.0"
|
366
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
367
|
+
checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
|
368
|
+
dependencies = [
|
369
|
+
"phf_macros",
|
370
|
+
"phf_shared",
|
371
|
+
"proc-macro-hack",
|
372
|
+
]
|
373
|
+
|
374
|
+
[[package]]
|
375
|
+
name = "phf_codegen"
|
376
|
+
version = "0.8.0"
|
377
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
378
|
+
checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
|
379
|
+
dependencies = [
|
380
|
+
"phf_generator",
|
381
|
+
"phf_shared",
|
382
|
+
]
|
383
|
+
|
384
|
+
[[package]]
|
385
|
+
name = "phf_generator"
|
386
|
+
version = "0.8.0"
|
387
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
388
|
+
checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
|
389
|
+
dependencies = [
|
390
|
+
"phf_shared",
|
391
|
+
"rand",
|
392
|
+
]
|
393
|
+
|
394
|
+
[[package]]
|
395
|
+
name = "phf_macros"
|
396
|
+
version = "0.8.0"
|
397
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
398
|
+
checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
|
399
|
+
dependencies = [
|
400
|
+
"phf_generator",
|
401
|
+
"phf_shared",
|
402
|
+
"proc-macro-hack",
|
403
|
+
"proc-macro2",
|
404
|
+
"quote",
|
405
|
+
"syn 1.0.109",
|
406
|
+
]
|
407
|
+
|
408
|
+
[[package]]
|
409
|
+
name = "phf_shared"
|
410
|
+
version = "0.8.0"
|
411
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
412
|
+
checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
|
413
|
+
dependencies = [
|
414
|
+
"siphasher",
|
415
|
+
]
|
416
|
+
|
417
|
+
[[package]]
|
418
|
+
name = "ppv-lite86"
|
419
|
+
version = "0.2.17"
|
420
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
421
|
+
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
422
|
+
|
423
|
+
[[package]]
|
424
|
+
name = "precomputed-hash"
|
425
|
+
version = "0.1.1"
|
426
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
427
|
+
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
|
428
|
+
|
429
|
+
[[package]]
|
430
|
+
name = "proc-macro-hack"
|
431
|
+
version = "0.5.20+deprecated"
|
432
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
433
|
+
checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
|
434
|
+
|
435
|
+
[[package]]
|
436
|
+
name = "proc-macro2"
|
437
|
+
version = "1.0.59"
|
438
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
439
|
+
checksum = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b"
|
440
|
+
dependencies = [
|
441
|
+
"unicode-ident",
|
442
|
+
]
|
443
|
+
|
444
|
+
[[package]]
|
445
|
+
name = "quote"
|
446
|
+
version = "1.0.28"
|
447
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
448
|
+
checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
|
449
|
+
dependencies = [
|
450
|
+
"proc-macro2",
|
451
|
+
]
|
452
|
+
|
453
|
+
[[package]]
|
454
|
+
name = "rand"
|
455
|
+
version = "0.7.3"
|
456
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
457
|
+
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
|
458
|
+
dependencies = [
|
459
|
+
"getrandom",
|
460
|
+
"libc",
|
461
|
+
"rand_chacha",
|
462
|
+
"rand_core",
|
463
|
+
"rand_hc",
|
464
|
+
"rand_pcg",
|
465
|
+
]
|
466
|
+
|
467
|
+
[[package]]
|
468
|
+
name = "rand_chacha"
|
469
|
+
version = "0.2.2"
|
470
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
471
|
+
checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
|
472
|
+
dependencies = [
|
473
|
+
"ppv-lite86",
|
474
|
+
"rand_core",
|
475
|
+
]
|
476
|
+
|
477
|
+
[[package]]
|
478
|
+
name = "rand_core"
|
479
|
+
version = "0.5.1"
|
480
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
481
|
+
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
|
482
|
+
dependencies = [
|
483
|
+
"getrandom",
|
484
|
+
]
|
485
|
+
|
486
|
+
[[package]]
|
487
|
+
name = "rand_hc"
|
488
|
+
version = "0.2.0"
|
489
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
490
|
+
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
|
491
|
+
dependencies = [
|
492
|
+
"rand_core",
|
493
|
+
]
|
494
|
+
|
495
|
+
[[package]]
|
496
|
+
name = "rand_pcg"
|
497
|
+
version = "0.2.1"
|
498
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
499
|
+
checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
|
500
|
+
dependencies = [
|
501
|
+
"rand_core",
|
502
|
+
]
|
503
|
+
|
504
|
+
[[package]]
|
505
|
+
name = "rb-sys"
|
506
|
+
version = "0.9.78"
|
507
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
508
|
+
checksum = "91447d8cbb45afb5c915bad4dd44bd4b4e9be37648122409ceca75302cb81683"
|
509
|
+
dependencies = [
|
510
|
+
"rb-sys-build",
|
511
|
+
]
|
512
|
+
|
513
|
+
[[package]]
|
514
|
+
name = "rb-sys-build"
|
515
|
+
version = "0.9.78"
|
516
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
517
|
+
checksum = "20673c1cfbd57b2db6c066b796352f07d241c45b210fd15b269dec54fa240380"
|
518
|
+
dependencies = [
|
519
|
+
"bindgen",
|
520
|
+
"lazy_static",
|
521
|
+
"proc-macro2",
|
522
|
+
"quote",
|
523
|
+
"regex",
|
524
|
+
"shell-words",
|
525
|
+
"syn 1.0.109",
|
526
|
+
]
|
527
|
+
|
528
|
+
[[package]]
|
529
|
+
name = "rb-sys-env"
|
530
|
+
version = "0.1.2"
|
531
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
532
|
+
checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
|
533
|
+
|
534
|
+
[[package]]
|
535
|
+
name = "regex"
|
536
|
+
version = "1.8.3"
|
537
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
538
|
+
checksum = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390"
|
539
|
+
dependencies = [
|
540
|
+
"aho-corasick",
|
541
|
+
"memchr",
|
542
|
+
"regex-syntax",
|
543
|
+
]
|
544
|
+
|
545
|
+
[[package]]
|
546
|
+
name = "regex-syntax"
|
547
|
+
version = "0.7.2"
|
548
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
549
|
+
checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
|
550
|
+
|
551
|
+
[[package]]
|
552
|
+
name = "rustc-hash"
|
553
|
+
version = "1.1.0"
|
554
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
555
|
+
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
556
|
+
|
557
|
+
[[package]]
|
558
|
+
name = "rustc_version"
|
559
|
+
version = "0.4.0"
|
560
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
561
|
+
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
|
562
|
+
dependencies = [
|
563
|
+
"semver",
|
564
|
+
]
|
565
|
+
|
566
|
+
[[package]]
|
567
|
+
name = "safemem"
|
568
|
+
version = "0.3.3"
|
569
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
570
|
+
checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
|
571
|
+
|
572
|
+
[[package]]
|
573
|
+
name = "selectors"
|
574
|
+
version = "0.22.0"
|
575
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
576
|
+
checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
|
577
|
+
dependencies = [
|
578
|
+
"bitflags 1.3.2",
|
579
|
+
"cssparser",
|
580
|
+
"derive_more",
|
581
|
+
"fxhash",
|
582
|
+
"log",
|
583
|
+
"matches",
|
584
|
+
"phf",
|
585
|
+
"phf_codegen",
|
586
|
+
"precomputed-hash",
|
587
|
+
"servo_arc",
|
588
|
+
"smallvec",
|
589
|
+
"thin-slice",
|
590
|
+
]
|
591
|
+
|
592
|
+
[[package]]
|
593
|
+
name = "selma"
|
594
|
+
version = "1.0.0"
|
595
|
+
dependencies = [
|
596
|
+
"enum-iterator",
|
597
|
+
"escapist",
|
598
|
+
"lol_html",
|
599
|
+
"magnus",
|
600
|
+
]
|
601
|
+
|
602
|
+
[[package]]
|
603
|
+
name = "semver"
|
604
|
+
version = "1.0.17"
|
605
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
606
|
+
checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
|
607
|
+
|
608
|
+
[[package]]
|
609
|
+
name = "servo_arc"
|
610
|
+
version = "0.1.1"
|
611
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
612
|
+
checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
|
613
|
+
dependencies = [
|
614
|
+
"nodrop",
|
615
|
+
"stable_deref_trait",
|
616
|
+
]
|
617
|
+
|
618
|
+
[[package]]
|
619
|
+
name = "shell-words"
|
620
|
+
version = "1.1.0"
|
621
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
622
|
+
checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
|
623
|
+
|
624
|
+
[[package]]
|
625
|
+
name = "shlex"
|
626
|
+
version = "1.1.0"
|
627
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
628
|
+
checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
|
629
|
+
|
630
|
+
[[package]]
|
631
|
+
name = "siphasher"
|
632
|
+
version = "0.3.10"
|
633
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
634
|
+
checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
|
635
|
+
|
636
|
+
[[package]]
|
637
|
+
name = "smallvec"
|
638
|
+
version = "1.10.0"
|
639
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
640
|
+
checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
|
641
|
+
|
642
|
+
[[package]]
|
643
|
+
name = "stable_deref_trait"
|
644
|
+
version = "1.2.0"
|
645
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
646
|
+
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
647
|
+
|
648
|
+
[[package]]
|
649
|
+
name = "syn"
|
650
|
+
version = "1.0.109"
|
651
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
652
|
+
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
653
|
+
dependencies = [
|
654
|
+
"proc-macro2",
|
655
|
+
"quote",
|
656
|
+
"unicode-ident",
|
657
|
+
]
|
658
|
+
|
659
|
+
[[package]]
|
660
|
+
name = "syn"
|
661
|
+
version = "2.0.18"
|
662
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
663
|
+
checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
|
664
|
+
dependencies = [
|
665
|
+
"proc-macro2",
|
666
|
+
"quote",
|
667
|
+
"unicode-ident",
|
668
|
+
]
|
669
|
+
|
670
|
+
[[package]]
|
671
|
+
name = "thin-slice"
|
672
|
+
version = "0.1.1"
|
673
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
674
|
+
checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
|
675
|
+
|
676
|
+
[[package]]
|
677
|
+
name = "thiserror"
|
678
|
+
version = "1.0.40"
|
679
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
680
|
+
checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
|
681
|
+
dependencies = [
|
682
|
+
"thiserror-impl",
|
683
|
+
]
|
684
|
+
|
685
|
+
[[package]]
|
686
|
+
name = "thiserror-impl"
|
687
|
+
version = "1.0.40"
|
688
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
689
|
+
checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
|
690
|
+
dependencies = [
|
691
|
+
"proc-macro2",
|
692
|
+
"quote",
|
693
|
+
"syn 2.0.18",
|
694
|
+
]
|
695
|
+
|
696
|
+
[[package]]
|
697
|
+
name = "unicode-ident"
|
698
|
+
version = "1.0.9"
|
699
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
700
|
+
checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
|
701
|
+
|
702
|
+
[[package]]
|
703
|
+
name = "version_check"
|
704
|
+
version = "0.9.4"
|
705
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
706
|
+
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
707
|
+
|
708
|
+
[[package]]
|
709
|
+
name = "wasi"
|
710
|
+
version = "0.9.0+wasi-snapshot-preview1"
|
711
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
712
|
+
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
|
713
|
+
|
714
|
+
[[package]]
|
715
|
+
name = "winapi"
|
716
|
+
version = "0.3.9"
|
717
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
718
|
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
719
|
+
dependencies = [
|
720
|
+
"winapi-i686-pc-windows-gnu",
|
721
|
+
"winapi-x86_64-pc-windows-gnu",
|
722
|
+
]
|
723
|
+
|
724
|
+
[[package]]
|
725
|
+
name = "winapi-i686-pc-windows-gnu"
|
726
|
+
version = "0.4.0"
|
727
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
728
|
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
729
|
+
|
730
|
+
[[package]]
|
731
|
+
name = "winapi-x86_64-pc-windows-gnu"
|
732
|
+
version = "0.4.0"
|
733
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
734
|
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
data/Cargo.toml
ADDED
data/README.md
CHANGED
@@ -29,7 +29,7 @@ Selma can perform two different actions, either independently or together:
|
|
29
29
|
- Sanitize HTML, through a [Sanitize](https://github.com/rgrove/sanitize)-like allowlist syntax; and
|
30
30
|
- Select HTML using CSS rules, and manipulate elements and text nodes along the way.
|
31
31
|
|
32
|
-
It does this through two
|
32
|
+
It does this through two kwargs: `sanitizer` and `handlers`. The basic API for Selma looks like this:
|
33
33
|
|
34
34
|
```ruby
|
35
35
|
sanitizer_config = {
|
data/ext/selma/Cargo.toml
CHANGED
@@ -4,10 +4,10 @@ version = "1.0.0"
|
|
4
4
|
edition = "2021"
|
5
5
|
|
6
6
|
[dependencies]
|
7
|
-
enum-iterator = "1.
|
7
|
+
enum-iterator = "1.4"
|
8
8
|
escapist = "0.0.2"
|
9
|
-
magnus =
|
10
|
-
lol_html = "0
|
9
|
+
magnus = "0.5"
|
10
|
+
lol_html = "1.0"
|
11
11
|
|
12
12
|
[lib]
|
13
13
|
name = "selma"
|
data/ext/selma/extconf.rb
CHANGED
@@ -39,12 +39,12 @@ impl SelmaHTMLTextChunk {
|
|
39
39
|
|
40
40
|
if let Ok(tc) = binding.text_chunk.get() {
|
41
41
|
match tc.text_type() {
|
42
|
-
TextType::Data => Ok(Symbol::
|
43
|
-
TextType::PlainText => Ok(Symbol::
|
44
|
-
TextType::RawText => Ok(Symbol::
|
45
|
-
TextType::ScriptData => Ok(Symbol::
|
46
|
-
TextType::RCData => Ok(Symbol::
|
47
|
-
TextType::CDataSection => Ok(Symbol::
|
42
|
+
TextType::Data => Ok(Symbol::new("data")),
|
43
|
+
TextType::PlainText => Ok(Symbol::new("plain_text")),
|
44
|
+
TextType::RawText => Ok(Symbol::new("raw_text")),
|
45
|
+
TextType::ScriptData => Ok(Symbol::new("script")),
|
46
|
+
TextType::RCData => Ok(Symbol::new("rc_data")),
|
47
|
+
TextType::CDataSection => Ok(Symbol::new("cdata_section")),
|
48
48
|
}
|
49
49
|
} else {
|
50
50
|
Err(Error::new(
|
data/ext/selma/src/rewriter.rs
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
use lol_html::{
|
2
2
|
doc_comments, doctype, element,
|
3
|
-
html_content::{Element,
|
3
|
+
html_content::{Element, TextChunk},
|
4
4
|
text, DocumentContentHandlers, ElementContentHandlers, HtmlRewriter, Selector, Settings,
|
5
5
|
};
|
6
6
|
use magnus::{exception, function, method, scan_args, Module, Object, RArray, RModule, Value};
|
@@ -37,9 +37,6 @@ pub struct Rewriter {
|
|
37
37
|
#[magnus::wrap(class = "Selma::Rewriter")]
|
38
38
|
pub struct SelmaRewriter(std::cell::RefCell<Rewriter>);
|
39
39
|
|
40
|
-
/// SAFETY: This is safe because we only access this data when the GVL is held.
|
41
|
-
unsafe impl Send for SelmaRewriter {}
|
42
|
-
|
43
40
|
impl SelmaRewriter {
|
44
41
|
const SELMA_ON_END_TAG: &str = "on_end_tag";
|
45
42
|
const SELMA_HANDLE_ELEMENT: &str = "handle_element";
|
@@ -334,11 +331,15 @@ impl SelmaRewriter {
|
|
334
331
|
element_stack.as_ref().borrow_mut().push(tag_name);
|
335
332
|
|
336
333
|
let closure_element_stack = element_stack.clone();
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
334
|
+
|
335
|
+
el.end_tag_handlers()
|
336
|
+
.unwrap()
|
337
|
+
.push(Box::new(move |_end_tag| {
|
338
|
+
let mut stack = closure_element_stack.as_ref().borrow_mut();
|
339
|
+
stack.pop();
|
340
|
+
Ok(())
|
341
|
+
}));
|
342
|
+
|
342
343
|
Ok(())
|
343
344
|
}));
|
344
345
|
});
|
@@ -373,14 +374,17 @@ impl SelmaRewriter {
|
|
373
374
|
// if `on_end_tag` function is defined, call it
|
374
375
|
if rb_handler.respond_to(Self::SELMA_ON_END_TAG, true).unwrap() {
|
375
376
|
// TODO: error here is an "EndTagError"
|
376
|
-
element
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
377
|
+
element
|
378
|
+
.end_tag_handlers()
|
379
|
+
.unwrap()
|
380
|
+
.push(Box::new(move |end_tag| {
|
381
|
+
let rb_end_tag = SelmaHTMLEndTag::new(end_tag);
|
382
|
+
|
383
|
+
match rb_handler.funcall::<_, _, Value>(Self::SELMA_ON_END_TAG, (rb_end_tag,)) {
|
384
|
+
Ok(_) => Ok(()),
|
385
|
+
Err(err) => Err(err.to_string().into()),
|
386
|
+
}
|
387
|
+
}));
|
384
388
|
}
|
385
389
|
|
386
390
|
let rb_element = SelmaHTMLElement::new(element, ancestors);
|
data/ext/selma/src/sanitizer.rs
CHANGED
@@ -530,11 +530,12 @@ impl SelmaSanitizer {
|
|
530
530
|
fn check_if_end_tag_needs_removal(element: &mut Element) {
|
531
531
|
if element.removed() && !crate::tags::Tag::tag_from_element(element).self_closing {
|
532
532
|
element
|
533
|
-
.
|
533
|
+
.end_tag_handlers()
|
534
|
+
.unwrap()
|
535
|
+
.push(Box::new(move |end| {
|
534
536
|
Self::remove_end_tag(end);
|
535
537
|
Ok(())
|
536
|
-
})
|
537
|
-
.unwrap();
|
538
|
+
}));
|
538
539
|
}
|
539
540
|
}
|
540
541
|
|
data/lib/selma/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen J. Torikian
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rb_sys
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.2'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake-compiler-dock
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.2'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '1.2'
|
69
55
|
description:
|
70
56
|
email:
|
71
57
|
- gjtorikian@gmail.com
|
@@ -74,10 +60,11 @@ extensions:
|
|
74
60
|
- ext/selma/extconf.rb
|
75
61
|
extra_rdoc_files: []
|
76
62
|
files:
|
63
|
+
- Cargo.lock
|
64
|
+
- Cargo.toml
|
77
65
|
- LICENSE.txt
|
78
66
|
- README.md
|
79
67
|
- ext/selma/Cargo.toml
|
80
|
-
- ext/selma/_util.rb
|
81
68
|
- ext/selma/extconf.rb
|
82
69
|
- ext/selma/src/html.rs
|
83
70
|
- ext/selma/src/html/element.rs
|
@@ -102,7 +89,6 @@ files:
|
|
102
89
|
- lib/selma/sanitizer/config/restricted.rb
|
103
90
|
- lib/selma/selector.rb
|
104
91
|
- lib/selma/version.rb
|
105
|
-
- selma.gemspec
|
106
92
|
homepage:
|
107
93
|
licenses:
|
108
94
|
- MIT
|
@@ -126,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
112
|
- !ruby/object:Gem::Version
|
127
113
|
version: 3.3.22
|
128
114
|
requirements: []
|
129
|
-
rubygems_version: 3.4.
|
115
|
+
rubygems_version: 3.4.13
|
130
116
|
signing_key:
|
131
117
|
specification_version: 4
|
132
118
|
summary: Selma selects and matches HTML nodes using CSS rules. Backed by Rust's lol_html
|
data/ext/selma/_util.rb
DELETED
@@ -1,102 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RUBY_MAJOR, RUBY_MINOR = RUBY_VERSION.split(".").collect(&:to_i)
|
4
|
-
|
5
|
-
PACKAGE_ROOT_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", ".."))
|
6
|
-
PACKAGE_EXT_DIR = File.join(PACKAGE_ROOT_DIR, "ext", "selma")
|
7
|
-
|
8
|
-
OS = case os = RbConfig::CONFIG["host_os"].downcase
|
9
|
-
when /linux/
|
10
|
-
# The official ruby-alpine Docker containers pre-build Ruby. As a result,
|
11
|
-
# Ruby doesn't know that it's on a musl-based platform. `ldd` is the
|
12
|
-
# a more reliable way to detect musl.
|
13
|
-
# See https://github.com/skylightio/skylight-ruby/issues/92
|
14
|
-
if ENV["SKYLIGHT_MUSL"] || %x(ldd --version 2>&1).include?("musl")
|
15
|
-
"linux-musl"
|
16
|
-
else
|
17
|
-
"linux"
|
18
|
-
end
|
19
|
-
when /darwin/
|
20
|
-
"darwin"
|
21
|
-
when /freebsd/
|
22
|
-
"freebsd"
|
23
|
-
when /netbsd/
|
24
|
-
"netbsd"
|
25
|
-
when /openbsd/
|
26
|
-
"openbsd"
|
27
|
-
when /sunos|solaris/
|
28
|
-
"solaris"
|
29
|
-
when /mingw|mswin/
|
30
|
-
"windows"
|
31
|
-
else
|
32
|
-
os
|
33
|
-
end
|
34
|
-
|
35
|
-
# Normalize the platform CPU
|
36
|
-
ARCH = case cpu = RbConfig::CONFIG["host_cpu"].downcase
|
37
|
-
when /amd64|x86_64|x64/
|
38
|
-
"x86_64"
|
39
|
-
when /i?86|x86|i86pc/
|
40
|
-
"x86"
|
41
|
-
when /ppc|powerpc/
|
42
|
-
"powerpc"
|
43
|
-
when /^aarch/
|
44
|
-
"aarch"
|
45
|
-
when /^arm/
|
46
|
-
"arm"
|
47
|
-
else
|
48
|
-
cpu
|
49
|
-
end
|
50
|
-
|
51
|
-
def windows?
|
52
|
-
OS == "windows"
|
53
|
-
end
|
54
|
-
|
55
|
-
def solaris?
|
56
|
-
OS == solaries
|
57
|
-
end
|
58
|
-
|
59
|
-
def darwin?
|
60
|
-
OS == "darwin"
|
61
|
-
end
|
62
|
-
|
63
|
-
def macos?
|
64
|
-
darwin? || OS == "macos"
|
65
|
-
end
|
66
|
-
|
67
|
-
def openbsd?
|
68
|
-
OS == "openbsd"
|
69
|
-
end
|
70
|
-
|
71
|
-
def aix?
|
72
|
-
OS == "aix"
|
73
|
-
end
|
74
|
-
|
75
|
-
def nix?
|
76
|
-
!(windows? || solaris? || darwin?)
|
77
|
-
end
|
78
|
-
|
79
|
-
def x86_64?
|
80
|
-
ARCH == "x86_64"
|
81
|
-
end
|
82
|
-
|
83
|
-
def x86?
|
84
|
-
ARCH == "x86"
|
85
|
-
end
|
86
|
-
|
87
|
-
def abs_path(path)
|
88
|
-
File.join(PACKAGE_EXT_DIR, path)
|
89
|
-
end
|
90
|
-
|
91
|
-
def find_header_or_abort(header, *paths)
|
92
|
-
find_header(header, *paths) || abort("#{header} was expected in `#{paths.join(", ")}`, but it is missing.")
|
93
|
-
end
|
94
|
-
|
95
|
-
def find_library_or_abort(lib, func, *paths)
|
96
|
-
find_library(lib, func, *paths) || abort("#{lib} was expected in `#{paths.join(", ")}`, but it is missing.")
|
97
|
-
end
|
98
|
-
|
99
|
-
def concat_flags(*args)
|
100
|
-
args.compact.join(" ")
|
101
|
-
end
|
102
|
-
|
data/selma.gemspec
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
lib = File.expand_path("lib", __dir__)
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require "selma/version"
|
6
|
-
|
7
|
-
Gem::Specification.new do |spec|
|
8
|
-
spec.name = "selma"
|
9
|
-
spec.version = Selma::VERSION
|
10
|
-
spec.authors = ["Garen J. Torikian"]
|
11
|
-
spec.email = ["gjtorikian@gmail.com"]
|
12
|
-
|
13
|
-
spec.summary = "Selma selects and matches HTML nodes using CSS rules. Backed by Rust's lol_html parser."
|
14
|
-
spec.license = "MIT"
|
15
|
-
|
16
|
-
spec.required_ruby_version = "~> 3.1"
|
17
|
-
# https://github.com/rubygems/rubygems/pull/5852#issuecomment-1231118509
|
18
|
-
spec.required_rubygems_version = ">= 3.3.22"
|
19
|
-
|
20
|
-
spec.files = ["LICENSE.txt", "README.md", "selma.gemspec"]
|
21
|
-
spec.files += Dir.glob("lib/**/*.rb")
|
22
|
-
spec.files += Dir.glob("ext/**/*.{rs,toml,lock,rb}")
|
23
|
-
spec.bindir = "exe"
|
24
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
25
|
-
|
26
|
-
spec.require_paths = ["lib"]
|
27
|
-
spec.extensions = ["ext/selma/extconf.rb"]
|
28
|
-
|
29
|
-
spec.metadata = {
|
30
|
-
"allowed_push_host" => "https://rubygems.org",
|
31
|
-
"funding_uri" => "https://github.com/sponsors/gjtorikian/",
|
32
|
-
"source_code_uri" => "https://github.com/gjtorikian/selma",
|
33
|
-
"rubygems_mfa_required" => "true",
|
34
|
-
}
|
35
|
-
|
36
|
-
spec.add_dependency("rb_sys", "~> 0.9")
|
37
|
-
|
38
|
-
spec.add_development_dependency("rake", "~> 13.0")
|
39
|
-
spec.add_development_dependency("rake-compiler", "~> 1.2")
|
40
|
-
spec.add_development_dependency("rake-compiler-dock", "~> 1.2")
|
41
|
-
end
|