Class: RTF::ContainerNode
- Includes:
- Enumerable
- Defined in:
- lib/rtf/node.rb
Overview
This class represents a Node that can contain other Node objects. Its a base class for more specific Node types.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#children ⇒ Object
Children elements of the node.
Attributes inherited from Node
Instance Method Summary collapse
-
#[](index) ⇒ Object
This method overloads the array dereference operator to allow for access to the child elements of a ContainerNode object.
-
#each ⇒ Object
This method provides for iteration over the contents of a ContainerNode object.
-
#first ⇒ Object
This method fetches the first node child for a ContainerNode object.
-
#initialize(parent) ⇒ ContainerNode
constructor
This is the constructor for the ContainerNode class.
-
#last ⇒ Object
This method fetches the last node child for a ContainerNode object.
-
#size ⇒ Object
This method returns a count of the number of children a ContainerNode object contains.
-
#store(node) ⇒ Object
This method adds a new node element to the end of the list of nodes maintained by a ContainerNode object.
-
#to_rtf ⇒ Object
This method generates the RTF text for a ContainerNode object.
Methods inherited from Node
#is_root?, #next_node, #previous_node, #root
Constructor Details
#initialize(parent) ⇒ ContainerNode
This is the constructor for the ContainerNode class.
Parameters
- parent
-
A reference to the parent node that owners the new ContainerNode object.
150 151 152 153 154 |
# File 'lib/rtf/node.rb', line 150 def initialize(parent) super(parent) @children = [] @children.concat(yield) if block_given? end |
Instance Attribute Details
#children ⇒ Object
Children elements of the node
143 144 145 |
# File 'lib/rtf/node.rb', line 143 def children @children end |
Instance Method Details
#[](index) ⇒ Object
This method overloads the array dereference operator to allow for access to the child elements of a ContainerNode object.
Parameters
- index
-
The offset from the first child of the child object to be returned. Negative index values work from the back of the list of children. An invalid index will cause a nil value to be returned.
201 202 203 |
# File 'lib/rtf/node.rb', line 201 def [](index) @children[index] end |
#each ⇒ Object
This method provides for iteration over the contents of a ContainerNode object.
183 184 185 |
# File 'lib/rtf/node.rb', line 183 def each @children.each {|child| yield child} end |
#first ⇒ Object
This method fetches the first node child for a ContainerNode object. If a container contains no children this method returns nil.
171 172 173 |
# File 'lib/rtf/node.rb', line 171 def first @children[0] end |
#last ⇒ Object
This method fetches the last node child for a ContainerNode object. If a container contains no children this method returns nil.
177 178 179 |
# File 'lib/rtf/node.rb', line 177 def last @children.last end |
#size ⇒ Object
This method returns a count of the number of children a ContainerNode object contains.
189 190 191 |
# File 'lib/rtf/node.rb', line 189 def size @children.size end |
#store(node) ⇒ Object
This method adds a new node element to the end of the list of nodes maintained by a ContainerNode object. Nil objects are ignored.
Parameters
- node
-
A reference to the Node object to be added.
161 162 163 164 165 166 167 |
# File 'lib/rtf/node.rb', line 161 def store(node) if node != nil @children.push(node) if @children.include?(Node) == false node.parent = self if node.parent != self end node end |