selma 0.4.9 → 0.4.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9470897ee5c29d09763cfbbe3fb70486b0efc76594abdbeae188a4b6d1db3917
4
- data.tar.gz: 7df5c4a23af18df2cb483165a0e6631447da9ca5ea7f0c76270c2830e15bf8d9
3
+ metadata.gz: ae851f7bc424c7fc5e023632b3faa7b277877c6cadf87cc7f62522395d840c31
4
+ data.tar.gz: 7ddf1ec6fcba33124266e8a42bf2e15377e8daabd15854e6d5b16279b25f77c0
5
5
  SHA512:
6
- metadata.gz: a7639b57eccda8352ff85a502aa56e3e3c0e7bfeb0381648562aae290f65f4a31a4e794797e3dc522ed3e445449463e922b79fcc89f71e769dc5f7e53933f7b8
7
- data.tar.gz: 7db5811dbf01678d5033ac045001702c3195eba10d23183598f60bf40686f8be6e28f5e76517f7da3984972d6b530ee3e9d498f4f8a3f0f111d06806dde34c61
6
+ metadata.gz: 026d9ca139227477365dabd422caf691926fdf09d8b7bf35a80274669de344b3d7d0e98872e4b099ccd9bf28da3343f67a2aed3a0c0a3ae8582585d489820829
7
+ data.tar.gz: 2b993bc1be6cf561ad54bd77d1c327e57e2e77ba41865fe3fca479849a6c375868c3c82eb10733964a0347d36715715095763ebda94fae416f4d66efe31f92e9
data/Cargo.lock CHANGED
@@ -2,18 +2,6 @@
2
2
  # It is not intended for manual editing.
3
3
  version = 3
4
4
 
5
- [[package]]
6
- name = "ahash"
7
- version = "0.8.11"
8
- source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
10
- dependencies = [
11
- "cfg-if",
12
- "once_cell",
13
- "version_check",
14
- "zerocopy",
15
- ]
16
-
17
5
  [[package]]
18
6
  name = "aho-corasick"
19
7
  version = "1.1.3"
@@ -23,11 +11,17 @@ dependencies = [
23
11
  "memchr",
24
12
  ]
25
13
 
14
+ [[package]]
15
+ name = "allocator-api2"
16
+ version = "0.2.21"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
19
+
26
20
  [[package]]
27
21
  name = "bindgen"
28
- version = "0.69.4"
22
+ version = "0.69.5"
29
23
  source = "registry+https://github.com/rust-lang/crates.io-index"
30
- checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
24
+ checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088"
31
25
  dependencies = [
32
26
  "bitflags 2.6.0",
33
27
  "cexpr",
@@ -40,7 +34,7 @@ dependencies = [
40
34
  "regex",
41
35
  "rustc-hash",
42
36
  "shlex",
43
- "syn 2.0.72",
37
+ "syn 2.0.93",
44
38
  ]
45
39
 
46
40
  [[package]]
@@ -117,7 +111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
117
111
  checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
118
112
  dependencies = [
119
113
  "quote",
120
- "syn 2.0.72",
114
+ "syn 2.0.93",
121
115
  ]
122
116
 
123
117
  [[package]]
@@ -130,7 +124,7 @@ dependencies = [
130
124
  "proc-macro2",
131
125
  "quote",
132
126
  "rustc_version",
133
- "syn 2.0.72",
127
+ "syn 2.0.93",
134
128
  ]
135
129
 
136
130
  [[package]]
@@ -156,9 +150,9 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
156
150
 
157
151
  [[package]]
158
152
  name = "encoding_rs"
159
- version = "0.8.34"
153
+ version = "0.8.35"
160
154
  source = "registry+https://github.com/rust-lang/crates.io-index"
161
- checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
155
+ checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
162
156
  dependencies = [
163
157
  "cfg-if",
164
158
  ]
@@ -186,9 +180,15 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b"
186
180
  dependencies = [
187
181
  "proc-macro2",
188
182
  "quote",
189
- "syn 2.0.72",
183
+ "syn 2.0.93",
190
184
  ]
191
185
 
186
+ [[package]]
187
+ name = "equivalent"
188
+ version = "1.0.1"
189
+ source = "registry+https://github.com/rust-lang/crates.io-index"
190
+ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
191
+
192
192
  [[package]]
193
193
  name = "escapist"
194
194
  version = "0.0.2"
@@ -198,6 +198,12 @@ dependencies = [
198
198
  "entities",
199
199
  ]
200
200
 
201
+ [[package]]
202
+ name = "foldhash"
203
+ version = "0.1.4"
204
+ source = "registry+https://github.com/rust-lang/crates.io-index"
205
+ checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f"
206
+
201
207
  [[package]]
202
208
  name = "fxhash"
203
209
  version = "0.2.1"
@@ -220,17 +226,19 @@ dependencies = [
220
226
 
221
227
  [[package]]
222
228
  name = "glob"
223
- version = "0.3.1"
229
+ version = "0.3.2"
224
230
  source = "registry+https://github.com/rust-lang/crates.io-index"
225
- checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
231
+ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
226
232
 
227
233
  [[package]]
228
234
  name = "hashbrown"
229
- version = "0.13.2"
235
+ version = "0.15.2"
230
236
  source = "registry+https://github.com/rust-lang/crates.io-index"
231
- checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
237
+ checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
232
238
  dependencies = [
233
- "ahash",
239
+ "allocator-api2",
240
+ "equivalent",
241
+ "foldhash",
234
242
  ]
235
243
 
236
244
  [[package]]
@@ -262,15 +270,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
262
270
 
263
271
  [[package]]
264
272
  name = "libc"
265
- version = "0.2.155"
273
+ version = "0.2.169"
266
274
  source = "registry+https://github.com/rust-lang/crates.io-index"
267
- checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
275
+ checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"
268
276
 
269
277
  [[package]]
270
278
  name = "libloading"
271
- version = "0.8.5"
279
+ version = "0.8.6"
272
280
  source = "registry+https://github.com/rust-lang/crates.io-index"
273
- checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
281
+ checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
274
282
  dependencies = [
275
283
  "cfg-if",
276
284
  "windows-targets",
@@ -284,9 +292,9 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
284
292
 
285
293
  [[package]]
286
294
  name = "lol_html"
287
- version = "2.0.0"
295
+ version = "2.1.0"
288
296
  source = "registry+https://github.com/rust-lang/crates.io-index"
289
- checksum = "964b47c14635e111f7efddcd8f1f8794195f66225fef19822fa942b217a859cf"
297
+ checksum = "2872b88213f3cd4b04f719ec8f2e0b37c98882a7c4aa6fc13ba2f19f5eba1bd2"
290
298
  dependencies = [
291
299
  "bitflags 2.6.0",
292
300
  "cfg-if",
@@ -321,7 +329,7 @@ checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
321
329
  dependencies = [
322
330
  "proc-macro2",
323
331
  "quote",
324
- "syn 2.0.72",
332
+ "syn 2.0.93",
325
333
  ]
326
334
 
327
335
  [[package]]
@@ -364,12 +372,6 @@ dependencies = [
364
372
  "minimal-lexical",
365
373
  ]
366
374
 
367
- [[package]]
368
- name = "once_cell"
369
- version = "1.19.0"
370
- source = "registry+https://github.com/rust-lang/crates.io-index"
371
- checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
372
-
373
375
  [[package]]
374
376
  name = "phf"
375
377
  version = "0.8.0"
@@ -447,18 +449,18 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
447
449
 
448
450
  [[package]]
449
451
  name = "proc-macro2"
450
- version = "1.0.86"
452
+ version = "1.0.92"
451
453
  source = "registry+https://github.com/rust-lang/crates.io-index"
452
- checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
454
+ checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
453
455
  dependencies = [
454
456
  "unicode-ident",
455
457
  ]
456
458
 
457
459
  [[package]]
458
460
  name = "quote"
459
- version = "1.0.36"
461
+ version = "1.0.38"
460
462
  source = "registry+https://github.com/rust-lang/crates.io-index"
461
- checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
463
+ checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
462
464
  dependencies = [
463
465
  "proc-macro2",
464
466
  ]
@@ -516,18 +518,18 @@ dependencies = [
516
518
 
517
519
  [[package]]
518
520
  name = "rb-sys"
519
- version = "0.9.102"
521
+ version = "0.9.105"
520
522
  source = "registry+https://github.com/rust-lang/crates.io-index"
521
- checksum = "df4dec4b1d304c3b308a2cd86b1216ea45dd4361f4e9fa056f108332d0a450c1"
523
+ checksum = "4b3a1f3ce8e7c36d777d52fe7a99039fe4fea7c8ec355a4c4f3a17f92a14029f"
522
524
  dependencies = [
523
525
  "rb-sys-build",
524
526
  ]
525
527
 
526
528
  [[package]]
527
529
  name = "rb-sys-build"
528
- version = "0.9.102"
530
+ version = "0.9.105"
529
531
  source = "registry+https://github.com/rust-lang/crates.io-index"
530
- checksum = "1d71de3e29d174b8fb17b5d4470f27d7aa2605f8a9d05fda0d3aeff30e05a570"
532
+ checksum = "3e6b246c29c0809e1cbe60a1ba9e093da72a4676d02adc68469297d1e589bbf0"
531
533
  dependencies = [
532
534
  "bindgen",
533
535
  "lazy_static",
@@ -535,7 +537,7 @@ dependencies = [
535
537
  "quote",
536
538
  "regex",
537
539
  "shell-words",
538
- "syn 2.0.72",
540
+ "syn 2.0.93",
539
541
  ]
540
542
 
541
543
  [[package]]
@@ -546,9 +548,9 @@ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
546
548
 
547
549
  [[package]]
548
550
  name = "regex"
549
- version = "1.10.6"
551
+ version = "1.11.1"
550
552
  source = "registry+https://github.com/rust-lang/crates.io-index"
551
- checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
553
+ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
552
554
  dependencies = [
553
555
  "aho-corasick",
554
556
  "memchr",
@@ -558,9 +560,9 @@ dependencies = [
558
560
 
559
561
  [[package]]
560
562
  name = "regex-automata"
561
- version = "0.4.7"
563
+ version = "0.4.9"
562
564
  source = "registry+https://github.com/rust-lang/crates.io-index"
563
- checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
565
+ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
564
566
  dependencies = [
565
567
  "aho-corasick",
566
568
  "memchr",
@@ -569,9 +571,9 @@ dependencies = [
569
571
 
570
572
  [[package]]
571
573
  name = "regex-syntax"
572
- version = "0.8.4"
574
+ version = "0.8.5"
573
575
  source = "registry+https://github.com/rust-lang/crates.io-index"
574
- checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
576
+ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
575
577
 
576
578
  [[package]]
577
579
  name = "rustc-hash"
@@ -581,9 +583,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
581
583
 
582
584
  [[package]]
583
585
  name = "rustc_version"
584
- version = "0.4.0"
586
+ version = "0.4.1"
585
587
  source = "registry+https://github.com/rust-lang/crates.io-index"
586
- checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
588
+ checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
587
589
  dependencies = [
588
590
  "semver",
589
591
  ]
@@ -621,9 +623,9 @@ dependencies = [
621
623
 
622
624
  [[package]]
623
625
  name = "semver"
624
- version = "1.0.23"
626
+ version = "1.0.24"
625
627
  source = "registry+https://github.com/rust-lang/crates.io-index"
626
- checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
628
+ checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba"
627
629
 
628
630
  [[package]]
629
631
  name = "seq-macro"
@@ -684,9 +686,9 @@ dependencies = [
684
686
 
685
687
  [[package]]
686
688
  name = "syn"
687
- version = "2.0.72"
689
+ version = "2.0.93"
688
690
  source = "registry+https://github.com/rust-lang/crates.io-index"
689
- checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
691
+ checksum = "9c786062daee0d6db1132800e623df74274a0a87322d8e183338e01b3d98d058"
690
692
  dependencies = [
691
693
  "proc-macro2",
692
694
  "quote",
@@ -701,35 +703,29 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
701
703
 
702
704
  [[package]]
703
705
  name = "thiserror"
704
- version = "1.0.63"
706
+ version = "1.0.69"
705
707
  source = "registry+https://github.com/rust-lang/crates.io-index"
706
- checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
708
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
707
709
  dependencies = [
708
710
  "thiserror-impl",
709
711
  ]
710
712
 
711
713
  [[package]]
712
714
  name = "thiserror-impl"
713
- version = "1.0.63"
715
+ version = "1.0.69"
714
716
  source = "registry+https://github.com/rust-lang/crates.io-index"
715
- checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
717
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
716
718
  dependencies = [
717
719
  "proc-macro2",
718
720
  "quote",
719
- "syn 2.0.72",
721
+ "syn 2.0.93",
720
722
  ]
721
723
 
722
724
  [[package]]
723
725
  name = "unicode-ident"
724
- version = "1.0.12"
725
- source = "registry+https://github.com/rust-lang/crates.io-index"
726
- checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
727
-
728
- [[package]]
729
- name = "version_check"
730
- version = "0.9.5"
726
+ version = "1.0.14"
731
727
  source = "registry+https://github.com/rust-lang/crates.io-index"
732
- checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
728
+ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
733
729
 
734
730
  [[package]]
735
731
  name = "wasi"
@@ -819,5 +815,5 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
819
815
  dependencies = [
820
816
  "proc-macro2",
821
817
  "quote",
822
- "syn 2.0.72",
818
+ "syn 2.0.93",
823
819
  ]
data/README.md CHANGED
@@ -134,7 +134,6 @@ The `Selma::Selector` object has three possible kwargs:
134
134
  Here's an example for `handle_text_chunk` which changes strings in various elements which are _not_ `pre` or `code`:
135
135
 
136
136
  ```ruby
137
-
138
137
  class MatchText
139
138
  SELECTOR = Selma::Selector.new(match_text_within: "*", ignore_text_within: ["pre", "code"])
140
139
 
@@ -189,6 +188,7 @@ Selma::Rewriter.new(options: { memory: { max_allowed_memory_usage: 1_000_000 } }
189
188
  ```
190
189
 
191
190
  The structure of the `memory` options looks like this:
191
+
192
192
  ```ruby
193
193
  {
194
194
  memory: {
@@ -215,43 +215,44 @@ input size = 25309 bytes, 0.03 MB
215
215
 
216
216
  ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
217
217
  Warming up --------------------------------------
218
- sanitize-sm 15.000 i/100ms
219
- selma-sm 127.000 i/100ms
218
+ sanitize-sm 15.000 i/100ms
219
+ selma-sm 127.000 i/100ms
220
220
  Calculating -------------------------------------
221
- sanitize-sm 157.643 (± 1.9%) i/s - 4.740k in 30.077172s
222
- selma-sm 1.278k (± 1.5%) i/s - 38.354k in 30.019722s
221
+ sanitize-sm 157.643 (± 1.9%) i/s - 4.740k in 30.077172s
222
+ selma-sm 1.278k (± 1.5%) i/s - 38.354k in 30.019722s
223
223
 
224
224
  Comparison:
225
- selma-sm: 1277.9 i/s
226
- sanitize-sm: 157.6 i/s - 8.11x slower
225
+ selma-sm: 1277.9 i/s
226
+ sanitize-sm: 157.6 i/s - 8.11x slower
227
227
 
228
228
  input size = 86686 bytes, 0.09 MB
229
229
 
230
230
  ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
231
231
  Warming up --------------------------------------
232
- sanitize-md 4.000 i/100ms
233
- selma-md 33.000 i/100ms
232
+ sanitize-md 4.000 i/100ms
233
+ selma-md 33.000 i/100ms
234
234
  Calculating -------------------------------------
235
- sanitize-md 40.034 (± 5.0%) i/s - 1.200k in 30.043322s
236
- selma-md 332.959 (± 2.1%) i/s - 9.999k in 30.045733s
235
+ sanitize-md 40.034 (± 5.0%) i/s - 1.200k in 30.043322s
236
+ selma-md 332.959 (± 2.1%) i/s - 9.999k in 30.045733s
237
237
 
238
238
  Comparison:
239
- selma-md: 333.0 i/s
240
- sanitize-md: 40.0 i/s - 8.32x slower
239
+ selma-md: 333.0 i/s
240
+ sanitize-md: 40.0 i/s - 8.32x slower
241
241
 
242
242
  input size = 7172510 bytes, 7.17 MB
243
243
 
244
244
  ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
245
245
  Warming up --------------------------------------
246
- sanitize-lg 1.000 i/100ms
247
- selma-lg 1.000 i/100ms
246
+ sanitize-lg 1.000 i/100ms
247
+ selma-lg 1.000 i/100ms
248
248
  Calculating -------------------------------------
249
- sanitize-lg 0.141 (± 0.0%) i/s - 5.000 in 35.426127s
250
- selma-lg 3.963 (± 0.0%) i/s - 119.000 in 30.037386s
249
+ sanitize-lg 0.141 (± 0.0%) i/s - 5.000 in 35.426127s
250
+ selma-lg 3.963 (± 0.0%) i/s - 119.000 in 30.037386s
251
251
 
252
252
  Comparison:
253
- selma-lg: 4.0 i/s
254
- sanitize-lg: 0.1 i/s - 28.03x slower
253
+ selma-lg: 4.0 i/s
254
+ sanitize-lg: 0.1 i/s - 28.03x slower
255
+
255
256
  </pre>
256
257
  </details>
257
258
  <!-- prettier-ignore-end -->
@@ -267,52 +268,53 @@ input size = 25309 bytes, 0.03 MB
267
268
 
268
269
  ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
269
270
  Warming up --------------------------------------
270
- nokogiri-sm 79.000 i/100ms
271
- nokolexbor-sm 295.000 i/100ms
272
- selma-sm 237.000 i/100ms
271
+ nokogiri-sm 79.000 i/100ms
272
+ nokolexbor-sm 295.000 i/100ms
273
+ selma-sm 237.000 i/100ms
273
274
  Calculating -------------------------------------
274
- nokogiri-sm 800.531 (± 2.2%) i/s - 24.016k in 30.016056s
275
- nokolexbor-sm 3.033k (± 3.6%) i/s - 91.155k in 30.094884s
276
- selma-sm 2.386k (± 1.6%) i/s - 71.574k in 30.001701s
275
+ nokogiri-sm 800.531 (± 2.2%) i/s - 24.016k in 30.016056s
276
+ nokolexbor-sm 3.033k (± 3.6%) i/s - 91.155k in 30.094884s
277
+ selma-sm 2.386k (± 1.6%) i/s - 71.574k in 30.001701s
277
278
 
278
279
  Comparison:
279
- nokolexbor-sm: 3033.1 i/s
280
- selma-sm: 2386.3 i/s - 1.27x slower
281
- nokogiri-sm: 800.5 i/s - 3.79x slower
280
+ nokolexbor-sm: 3033.1 i/s
281
+ selma-sm: 2386.3 i/s - 1.27x slower
282
+ nokogiri-sm: 800.5 i/s - 3.79x slower
282
283
 
283
284
  input size = 86686 bytes, 0.09 MB
284
285
 
285
286
  ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
286
287
  Warming up --------------------------------------
287
- nokogiri-md 8.000 i/100ms
288
- nokolexbor-md 43.000 i/100ms
289
- selma-md 38.000 i/100ms
288
+ nokogiri-md 8.000 i/100ms
289
+ nokolexbor-md 43.000 i/100ms
290
+ selma-md 38.000 i/100ms
290
291
  Calculating -------------------------------------
291
- nokogiri-md 85.013 (± 8.2%) i/s - 2.024k in 52.257472s
292
- nokolexbor-md 416.074 (±11.1%) i/s - 12.341k in 30.111613s
293
- selma-md 361.471 (± 4.7%) i/s - 10.830k in 30.033997s
292
+ nokogiri-md 85.013 (± 8.2%) i/s - 2.024k in 52.257472s
293
+ nokolexbor-md 416.074 (±11.1%) i/s - 12.341k in 30.111613s
294
+ selma-md 361.471 (± 4.7%) i/s - 10.830k in 30.033997s
294
295
 
295
296
  Comparison:
296
- nokolexbor-md: 416.1 i/s
297
- selma-md: 361.5 i/s - same-ish: difference falls within error
298
- nokogiri-md: 85.0 i/s - 4.89x slower
297
+ nokolexbor-md: 416.1 i/s
298
+ selma-md: 361.5 i/s - same-ish: difference falls within error
299
+ nokogiri-md: 85.0 i/s - 4.89x slower
299
300
 
300
301
  input size = 7172510 bytes, 7.17 MB
301
302
 
302
303
  ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
303
304
  Warming up --------------------------------------
304
- nokogiri-lg 1.000 i/100ms
305
- nokolexbor-lg 1.000 i/100ms
306
- selma-lg 1.000 i/100ms
305
+ nokogiri-lg 1.000 i/100ms
306
+ nokolexbor-lg 1.000 i/100ms
307
+ selma-lg 1.000 i/100ms
307
308
  Calculating -------------------------------------
308
- nokogiri-lg 0.805 (± 0.0%) i/s - 25.000 in 31.148730s
309
- nokolexbor-lg 2.194 (± 0.0%) i/s - 66.000 in 30.278108s
310
- selma-lg 5.541 (± 0.0%) i/s - 166.000 in 30.037197s
309
+ nokogiri-lg 0.805 (± 0.0%) i/s - 25.000 in 31.148730s
310
+ nokolexbor-lg 2.194 (± 0.0%) i/s - 66.000 in 30.278108s
311
+ selma-lg 5.541 (± 0.0%) i/s - 166.000 in 30.037197s
311
312
 
312
313
  Comparison:
313
- selma-lg: 5.5 i/s
314
- nokolexbor-lg: 2.2 i/s - 2.53x slower
315
- nokogiri-lg: 0.8 i/s - 6.88x slower
314
+ selma-lg: 5.5 i/s
315
+ nokolexbor-lg: 2.2 i/s - 2.53x slower
316
+ nokogiri-lg: 0.8 i/s - 6.88x slower
317
+
316
318
  </pre>
317
319
  </details>
318
320
  <!-- prettier-ignore-end -->
data/ext/selma/Cargo.toml CHANGED
@@ -12,7 +12,7 @@ magnus = { version = "0.7", features = ["rb-sys"] }
12
12
  rb-sys = { version = "*", default-features = false, features = [
13
13
  "stable-api-compiled-fallback",
14
14
  ] }
15
- lol_html = "2.0"
15
+ lol_html = "2.1"
16
16
 
17
17
  [lib]
18
18
  name = "selma"
@@ -397,13 +397,13 @@ impl SelmaRewriter {
397
397
  move |text| {
398
398
  let element_stack = closure_element_stack.as_ref().borrow();
399
399
  if selector.ignore_text_within().is_some() {
400
- // check if current tag is a tag we should be ignoring text within
401
- let head_tag_name = element_stack.last().unwrap().to_string();
400
+ // check if current tag is a tag we should be ignoring text within;
401
+ // also checks if tag is within an ancestery of ignored tags
402
402
  if selector
403
403
  .ignore_text_within()
404
404
  .unwrap()
405
405
  .iter()
406
- .any(|f| f == &head_tag_name)
406
+ .any(|t| element_stack.contains(t))
407
407
  {
408
408
  return Ok(());
409
409
  }
data/lib/selma/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Selma
4
- VERSION = "0.4.9"
4
+ VERSION = "0.4.11"
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen J. Torikian
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-10-09 00:00:00.000000000 Z
10
+ date: 2024-12-29 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rb_sys
@@ -52,7 +51,6 @@ dependencies:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
53
  version: '1.2'
55
- description:
56
54
  email:
57
55
  - gjtorikian@gmail.com
58
56
  executables: []
@@ -90,7 +88,6 @@ files:
90
88
  - lib/selma/sanitizer/config/restricted.rb
91
89
  - lib/selma/selector.rb
92
90
  - lib/selma/version.rb
93
- homepage:
94
91
  licenses:
95
92
  - MIT
96
93
  metadata:
@@ -98,7 +95,6 @@ metadata:
98
95
  funding_uri: https://github.com/sponsors/gjtorikian/
99
96
  source_code_uri: https://github.com/gjtorikian/selma
100
97
  rubygems_mfa_required: 'true'
101
- post_install_message:
102
98
  rdoc_options: []
103
99
  require_paths:
104
100
  - lib
@@ -109,12 +105,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
105
  version: '3.1'
110
106
  required_rubygems_version: !ruby/object:Gem::Requirement
111
107
  requirements:
112
- - - ">="
108
+ - - "~>"
113
109
  - !ruby/object:Gem::Version
114
- version: 3.3.22
110
+ version: '3.4'
115
111
  requirements: []
116
- rubygems_version: 3.5.3
117
- signing_key:
112
+ rubygems_version: 3.6.2
118
113
  specification_version: 4
119
114
  summary: Selma selects and matches HTML nodes using CSS rules. Backed by Rust's lol_html
120
115
  parser.