Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more

In Files

  • rexml/parsers/lightparser.rb

Class/Module Index [+]

Quicksearch

REXML::Parsers::LightParser

Public Class Methods

new(stream) click to toggle source
 
               # File rexml/parsers/lightparser.rb, line 8
def initialize stream
        @stream = stream
        @parser = REXML::Parsers::BaseParser.new( stream )
end
            

Public Instance Methods

add_listener( listener ) click to toggle source
 
               # File rexml/parsers/lightparser.rb, line 13
def add_listener( listener )
  @parser.add_listener( listener )
end
            
parse() click to toggle source
 
               # File rexml/parsers/lightparser.rb, line 22
def parse
        root = context = [ :document ]
        while true
                event = @parser.pull
                case event[0]
                when :end_document
                        break
                when :end_doctype
                        context = context[1]
                when :start_element, :start_doctype
                        new_node = event
                        context << new_node
                        new_node[1,0] = [context]
                        context = new_node
                when :end_element, :end_doctype
                        context = context[1]
                else
                        new_node = event
                        context << new_node
                        new_node[1,0] = [context]
                end
        end
        root
end
            
rewind() click to toggle source
 
               # File rexml/parsers/lightparser.rb, line 17
def rewind
  @stream.rewind
  @parser.stream = @stream
end