class REXML::Parsers::UltraLightParser - RDoc Documentation

# class REXML::Parsers::UltraLightParser

### Public Class Methods

new(stream) click to toggle source

    # File lib/rexml/parsers/ultralightparser.rb, line 7
    def initialize stream
      @stream = stream
      @parser = REXML::Parsers::BaseParser.new( stream )
    end

### Public Instance Methods

add_listener( listener ) click to toggle source

    # File lib/rexml/parsers/ultralightparser.rb, line 12
    def add_listener( listener )
      @parser.add_listener( listener )
    end

parse() click to toggle source

    # File lib/rexml/parsers/ultralightparser.rb, line 21
    def parse
      root = context = []
      while true
        event = @parser.pull
        case event[0]
        when :end_document
          break
        when :end_doctype
          context = context[1]
        when :start_element, :start_doctype
          context << event
          event[1,0] = [context]
          context = event
        when :end_element
          context = context[1]
        else
          context << event
        end
      end
      root
    end

rewind() click to toggle source

    # File lib/rexml/parsers/ultralightparser.rb, line 16
    def rewind
      @stream.rewind
      @parser.stream = @stream
    end