Class: REXML::Child
Overview
A Child object is something contained by a parent, and this class contains methods to support that. Most user code will not use this class directly.
Instance Attribute Summary (collapse)
-
- (Object) parent
The Parent of this object.
Instance Method Summary (collapse)
-
- (Object) bytes
This doesn't yet handle encodings.
-
- (Object) document
Returns
the document this child belongs to, or nil if this child
belongs to no document.
-
- (Child) initialize(parent = nil)
constructor
Constructor.
-
- (Object) next_sibling=(other)
Sets the next sibling of this child.
-
- (Object) previous_sibling=(other)
Sets the previous sibling of this child.
-
- (Object) remove
Removes this child from the parent.
-
- (Object) replace_with(child)
Replaces this object with another object.
Methods included from Node
#each_recursive, #find_first_recursive, #indent, #index_in_parent, #next_sibling_node, #parent?, #previous_sibling_node, #to_s
Constructor Details
- (Child) initialize(parent = nil)
Constructor. Any inheritors of this class should call super to make sure this method is called.
parent |
if supplied, the parent of this child will be set to the supplied value, and self will be added to the parent |
17 18 19 20 21 22 |
# File 'lib/rexml/child.rb', line 17 def initialize( parent = nil ) @parent = nil # Declare @parent, but don't define it. The next line sets the # parent. parent.add( self ) if parent end |
Instance Attribute Details
- (Object) parent
The Parent of this object
10 11 12 |
# File 'lib/rexml/child.rb', line 10 def parent @parent end |
Instance Method Details
- (Object) bytes
This doesn't yet handle encodings
90 91 92 93 94 |
# File 'lib/rexml/child.rb', line 90 def bytes encoding = document.encoding to_s end |
- (Object) document
Returns |
the document this child belongs to, or nil if this child |
belongs to no document
84 85 86 87 |
# File 'lib/rexml/child.rb', line 84 def document return parent.document unless parent.nil? nil end |
- (Object) next_sibling=(other)
Sets the next sibling of this child. This can be used to insert a child after some other child.
a = Element.new("a")
b = a.add_element("b")
c = Element.new("c")
b.next_sibling = c
# => <a><b/><c/></a>
67 68 69 |
# File 'lib/rexml/child.rb', line 67 def next_sibling=( other ) parent.insert_after self, other end |
- (Object) previous_sibling=(other)
Sets the previous sibling of this child. This can be used to insert a child before some other child.
a = Element.new("a")
b = a.add_element("b")
c = Element.new("c")
b.previous_sibling = c
# => <a><b/><c/></a>
78 79 80 |
# File 'lib/rexml/child.rb', line 78 def previous_sibling=(other) parent.insert_before self, other end |
- (Object) remove
Removes this child from the parent.
Returns |
self |
36 37 38 39 40 41 |
# File 'lib/rexml/child.rb', line 36 def remove unless @parent.nil? @parent.delete self end self end |
- (Object) replace_with(child)
Replaces this object with another object. Basically, calls Parent.replace_child
Returns |
self |
28 29 30 31 |
# File 'lib/rexml/child.rb', line 28 def replace_with( child ) @parent.replace_child( self, child ) self end |