Class: REXML::Child
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
self,
Node
|
|
Inherits: | Object |
Defined in: | lib/rexml/child.rb |
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.
Class Method Summary
-
.new(parent = nil) ⇒ Child
constructor
Constructor.
Instance Attribute Summary
-
#next_sibling
rw
Alias for Node#next_sibling_node.
-
#next_sibling=(other)
rw
Sets the next sibling of this child.
-
#parent
rw
The Parent of this object.
-
#parent=(other)
rw
Sets the parent of this child to the supplied argument.
-
#previous_sibling
rw
Alias for Node#previous_sibling_node.
-
#previous_sibling=(other)
rw
Sets the previous sibling of this child.
Node - Included
Instance Method Summary
-
#bytes
This doesn't yet handle encodings.
-
#document
- Returns
the document this child belongs to, or nil if this child belongs to no document.
-
#remove
Removes this child from the parent.
-
#replace_with(child)
Replaces this object with another object.
Node - Included
#each_recursive | Visit all subnodes of |
#find_first_recursive | Find (and return) first subnode (recursively) for which the block evaluates to true. |
#indent, | |
#index_in_parent | Returns the position that |
#next_sibling_node, #previous_sibling_node, | |
#to_s |
|
Constructor Details
.new(parent = nil) ⇒ Child
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
Instance Attribute Details
#next_sibling (rw)
Alias for Node#next_sibling_node.
# File 'lib/rexml/child.rb', line 57
alias :next_sibling :next_sibling_node
#next_sibling=(other) (rw)
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>
# File 'lib/rexml/child.rb', line 67
def next_sibling=( other ) parent.insert_after self, other end
#parent (rw)
The Parent of this object
# File 'lib/rexml/child.rb', line 10
attr_reader :parent # The Parent of this object
#parent=(other) (rw)
Sets the parent of this child to the supplied argument.
- other
-
Must be a Parent object. If this object is the same object as the existing parent of this child, no action is taken. Otherwise, this child is removed from the current parent (if one exists), and is added to the new parent.
- Returns
-
The parent added
# File 'lib/rexml/child.rb', line 51
def parent=( other ) return @parent if @parent == other @parent.delete self if defined? @parent and @parent @parent = other end
#previous_sibling (rw)
Alias for Node#previous_sibling_node.
# File 'lib/rexml/child.rb', line 58
alias :previous_sibling :previous_sibling_node
#previous_sibling=(other) (rw)
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>
# File 'lib/rexml/child.rb', line 78
def previous_sibling=(other) parent.insert_before self, other end
Instance Method Details
#bytes
This doesn't yet handle encodings
# File 'lib/rexml/child.rb', line 90
def bytes document.encoding to_s end
#document
- Returns
-
the document this child belongs to, or nil if this child
belongs to no document
#remove
Removes this child from the parent.
- Returns
-
self
# File 'lib/rexml/child.rb', line 36
def remove unless @parent.nil? @parent.delete self end self end
#replace_with(child)
Replaces this object with another object. Basically, calls Parent#replace_child
- Returns
-
self
# File 'lib/rexml/child.rb', line 28
def replace_with( child ) @parent.replace_child( self, child ) self end