Skip to content

Commit a4ed7d2

Browse files
committed
XML: undocument constructors and drop XML::Node.new(node)
1 parent 5a9edf9 commit a4ed7d2

File tree

7 files changed

+15
-21
lines changed

7 files changed

+15
-21
lines changed

src/xml/attributes.cr

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ require "./node"
33
class XML::Attributes
44
include Enumerable(Node)
55

6+
# :nodoc:
67
def initialize(@node : Node)
78
end
89

910
def empty? : Bool
1011
return true unless @node.element?
1112

12-
props = self.props
1313
props.null?
1414
end
1515

@@ -54,8 +54,8 @@ class XML::Attributes
5454

5555
props = self.props
5656
until props.null?
57-
yield Node.new(props, @node.document)
58-
props = props.value.next
57+
yield Node.new(props.as(LibXML::Node*), @node.document)
58+
props = props.value.next.as(LibXML::Attr*)
5959
end
6060
end
6161

@@ -73,7 +73,7 @@ class XML::Attributes
7373
pp.list("[", self, "]")
7474
end
7575

76-
protected def props
76+
protected def props : LibXML::Attr*
7777
@node.to_unsafe.value.properties
7878
end
7979
end

src/xml/builder.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class XML::Builder
2828
@writer = LibXML.xmlNewTextWriter(buffer)
2929
end
3030

31+
# :nodoc:
3132
def finalize
3233
LibXML.xmlFreeTextWriter(@writer)
3334
end

src/xml/namespace.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
class XML::Namespace
22
getter document : Node
33

4+
# :nodoc:
45
def initialize(@document : Node, @ns : LibXML::NS*)
56
end
67

src/xml/node.cr

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,18 @@ class XML::Node
1111
# and thus need to keep it alive.
1212
@unlinked = false
1313

14-
# Creates a new node.
15-
def initialize(node : LibXML::Attr*, @document : Node)
16-
@node = node.as(LibXML::Node*)
17-
end
18-
19-
# :ditto:
14+
# :nodoc:
2015
def initialize(node : LibXML::Doc*, @errors : Array(XML::Error)? = nil)
2116
@node = node.as(LibXML::Node*)
2217
@document = uninitialized Node
2318
@document = self
2419
end
2520

26-
# :ditto:
27-
@[Deprecated("Use the XML::Node.new(doc, errors) or XML::Node.new(node, doc) constructors")]
28-
def initialize(@node : LibXML::Node*)
29-
unless @node.value.type.in?(Type::DOCUMENT_NODE, Type::HTML_DOCUMENT_NODE)
30-
raise ArgumentError.new("XML::Node must be a document node")
31-
end
32-
@document = uninitialized Node
33-
@document = self
34-
end
35-
36-
# :ditto:
21+
# :nodoc:
3722
def initialize(@node : LibXML::Node*, @document : Node)
3823
end
3924

25+
# :nodoc:
4026
def finalize
4127
if document?
4228
# free the document, which will recursively free the DOM tree, NS, ...

src/xml/node_set.cr

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
class XML::NodeSet
22
include Enumerable(Node)
33

4+
# :nodoc:
45
def initialize(@doc : Node, @xpath_object : LibXML::XPathObject*)
56
@set = @xpath_object.value.nodesetval
67
end
78

9+
# :nodoc:
810
def initialize(@doc : Node, @set : LibXML::NodeSet*)
911
@xpath_object = Pointer(LibXML::XPathObject).null
1012
end
1113

14+
# :nodoc:
1215
def initialize(@doc : Node)
1316
@xpath_object = Pointer(LibXML::XPathObject).null
1417
@set = LibXML.xmlXPathNodeSetCreate(nil)
1518
end
1619

20+
# :nodoc:
1721
def finalize
1822
if @xpath_object.null?
1923
LibXML.xmlXPathFreeNodeSet(@set)

src/xml/reader.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class XML::Reader
4949
LibXML.xmlTextReaderSetStructuredErrorHandler(@reader, ->Error.structured_callback, Box.box(@errors))
5050
end
5151

52+
# :nodoc:
5253
def finalize
5354
LibXML.xmlFreeTextReader(@reader)
5455
end

src/xml/xpath_context.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class XML::XPathContext
1111
{% end %}
1212
end
1313

14+
# :nodoc:
1415
def finalize
1516
LibXML.xmlXPathFreeContext(@ctx)
1617
end

0 commit comments

Comments
 (0)