Module: REXML::Node
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
| Included In: | |
| Defined in: | lib/rexml/node.rb | 
Overview
Represents a node in the tree. Nodes are never encountered except as superclasses of other objects. Nodes have siblings.
Instance Attribute Summary
- #parent? ⇒ Boolean readonly
Instance Method Summary
- 
    
      #each_recursive(&block)  
    
    Visit all subnodes of selfrecursively.
- 
    
      #find_first_recursive(&block)  
    
    Find (and return) first subnode (recursively) for which the block evaluates to true. 
- #indent(to, ind)
- 
    
      #index_in_parent  
    
    Returns the position that selfholds in its parent’s array, indexed from 1.
- #next_sibling_node ⇒ Object (also: #next_sibling)
- #previous_sibling_node ⇒ Object (also: #previous_sibling)
- 
    
      #to_s(indent = nil)  
    
    - indent
 
Instance Attribute Details
    #parent?  ⇒ Boolean  (readonly)
  
  [ GitHub ]
# File 'lib/rexml/node.rb', line 48
def parent? false; end
Instance Method Details
#each_recursive(&block)
Visit all subnodes of self recursively
# File 'lib/rexml/node.rb', line 54
def each_recursive(&block) # :yields: node stack = [] each { |child| stack.unshift child if child.node_type == :element } until stack.empty? child = stack.pop yield child n = stack.size child.each { |grandchild| stack.insert n, grandchild if grandchild.node_type == :element } end end
#find_first_recursive(&block)
Find (and return) first subnode (recursively) for which the block evaluates to true. Returns nil if none was found.
# File 'lib/rexml/node.rb', line 67
def find_first_recursive(&block) # :yields: node each_recursive {|node| return node if block.call(node) } return nil end
#indent(to, ind)
[ GitHub ]# File 'lib/rexml/node.rb', line 39
def indent to, ind if @parent and @parent.context and not @parent.context[:indentstyle].nil? then indentstyle = @parent.context[:indentstyle] else indentstyle = ' ' end to << indentstyle*ind unless ind<1 end
#index_in_parent
Returns the position that self holds in its parent’s array, indexed from 1.
# File 'lib/rexml/node.rb', line 76
def index_in_parent parent.index(self)+1 end
    #next_sibling_node  ⇒ Object 
    Also known as: #next_sibling
  
# File 'lib/rexml/node.rb', line 11
def next_sibling_node return nil if @parent.nil? @parent[ @parent.index(self) + 1 ] end
    #previous_sibling_node  ⇒ Object 
    Also known as: #previous_sibling
  
# File 'lib/rexml/node.rb', line 17
def previous_sibling_node return nil if @parent.nil? ind = @parent.index(self) return nil if ind == 0 @parent[ ind - 1 ] end
#to_s(indent = nil)
- indent
- 
DEPRECATED This parameter is now ignored. See the formatters in the REXML::Formatters package for changing the output style. 
# File 'lib/rexml/node.rb', line 27
def to_s indent=nil unless indent.nil? Kernel.warn( "#{self.class.name}.to_s(indent) parameter is deprecated", uplevel: 1) f = REXML::Formatters::Pretty.new( indent ) f.write( self, rv = "" ) else f = REXML::Formatters::Default.new f.write( self, rv = "" ) end return rv end