leptris 1.9.37 → 1.9.38
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/CHANGELOG.md +23 -0
- data/Rakefile +1 -1
- data/lib/leptris/version.rb +1 -1
- data/lib/leptris/xml/sax/dom_dispatch.rb +18 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d6a20a13a634924317b339a27ecae165e6998c4d3de38854edd48d6ca68fa963
|
|
4
|
+
data.tar.gz: 87fdd1085af203af496cb625f02406073a000c1e5d6f1bcce046222fcc8d9a74
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c635bbd6bff75845204d2e34665003f9652b68dfe834f1484b5da84dd26e4db5992b14bb9b5d51e5cb03d9ee2b8e4ca64d6190aeb3fffa631011fbf9b1316625
|
|
7
|
+
data.tar.gz: fdef1ebde1f5770b0379242ae258ef8fcc1331353bc25f0ad283a6c13fea23d0df9508fb4623ffd0dffd798298b3b324efc7d92dae3131063436682fa6762d7c
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,29 @@ All notable changes to Leptris will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.9.38] - 2026-08-29
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **libleptris 1.9.13 lockstep**: pin bumped; audit 250/250, no
|
|
13
|
+
new C surface. Engine: document-level whitespace now chains as
|
|
14
|
+
TEXT children of the document node with libxml2's exact rule
|
|
15
|
+
(leading prolog ws dropped, ws after a prolog PI dropped, ws
|
|
16
|
+
after a comment or the root kept, trailing tail trimmed) — a
|
|
17
|
+
spec pins the rule through `Document#children`; XSLT suite
|
|
18
|
+
180 -> 181/205.
|
|
19
|
+
- **Element-only SAX handlers ride the element batch** in the
|
|
20
|
+
DOM-backed dispatcher (round XXIII's path): handlers overriding
|
|
21
|
+
only element events skip the per-child get_type walk entirely —
|
|
22
|
+
text/comments/PIs are never fetched. The document node keeps the
|
|
23
|
+
typed walk (it is not an element handle).
|
|
24
|
+
|
|
25
|
+
### Meta
|
|
26
|
+
|
|
27
|
+
- Nokogiri-compat audit against moxml's adapter surface: no gaps
|
|
28
|
+
(remove_attribute, add_namespace_definition, replace,
|
|
29
|
+
add_previous/next_sibling all present).
|
|
30
|
+
|
|
8
31
|
## [1.9.37] - 2026-08-29
|
|
9
32
|
|
|
10
33
|
### Added
|
data/Rakefile
CHANGED
|
@@ -8,7 +8,7 @@ RSpec::Core::RakeTask.new(:spec)
|
|
|
8
8
|
# Pin for `rake compile` and the platform-gem builds. Keep in lockstep
|
|
9
9
|
# with .github/workflows/build.yml (which calls `rake compile`) and the
|
|
10
10
|
# CHANGELOG when libleptris releases.
|
|
11
|
-
LIBLEPTRIS_VERSION = "1.9.
|
|
11
|
+
LIBLEPTRIS_VERSION = "1.9.13"
|
|
12
12
|
|
|
13
13
|
CMAKE_FLAGS = %w[
|
|
14
14
|
-DCMAKE_BUILD_TYPE=Release
|
data/lib/leptris/version.rb
CHANGED
|
@@ -29,7 +29,10 @@ module Leptris::XML::SAX::DomDispatch
|
|
|
29
29
|
def dispatch(handler, dispatched, doc)
|
|
30
30
|
handler.start_document if dispatched[:start_document]
|
|
31
31
|
doc_node = doc.node
|
|
32
|
-
|
|
32
|
+
if doc_node
|
|
33
|
+
visit_children(doc_node.c_ptr, doc, handler, dispatched,
|
|
34
|
+
element_parent: false)
|
|
35
|
+
end
|
|
33
36
|
handler.end_document if dispatched[:end_document]
|
|
34
37
|
self
|
|
35
38
|
end
|
|
@@ -41,10 +44,23 @@ module Leptris::XML::SAX::DomDispatch
|
|
|
41
44
|
CDATA = Leptris::XML::FFI::NODE_CDATA
|
|
42
45
|
PI = Leptris::XML::FFI::NODE_PI
|
|
43
46
|
|
|
44
|
-
def visit_children(c_ptr, doc, handler, dispatched)
|
|
47
|
+
def visit_children(c_ptr, doc, handler, dispatched, element_parent: true)
|
|
45
48
|
wants_text_kinds = dispatched[:characters] ||
|
|
46
49
|
dispatched[:comment] ||
|
|
47
50
|
dispatched[:cdata] || dispatched[:pi]
|
|
51
|
+
if element_parent && !wants_text_kinds
|
|
52
|
+
# Element-only handlers under an element: the element batch
|
|
53
|
+
# hands out element pointers with no per-child get_type
|
|
54
|
+
# (round XXIII's path) — text/comments/PIs are never fetched.
|
|
55
|
+
# (The document node is not an element handle — the typed
|
|
56
|
+
# walk serves it.)
|
|
57
|
+
Leptris::XML::FFI.fetch_element_children(c_ptr).each do |child_ptr|
|
|
58
|
+
visit_element(
|
|
59
|
+
Leptris::XML::Node.wrap(child_ptr, doc, node_type: ELEMENT),
|
|
60
|
+
handler, dispatched)
|
|
61
|
+
end
|
|
62
|
+
return
|
|
63
|
+
end
|
|
48
64
|
Leptris::XML::FFI.fetch_children(c_ptr).each do |child_ptr|
|
|
49
65
|
case Leptris::XML::FFI.leptris_node_get_type(child_ptr)
|
|
50
66
|
when ELEMENT
|