123456789_123456789_123456789_123456789_123456789_

Class: REXML::Parsers::UltraLightParser

Relationships & Source Files
Inherits: Object
Defined in: lib/rexml/parsers/ultralightparser.rb

Class Method Summary

Instance Method Summary

Constructor Details

.new(stream) ⇒ UltraLightParser

[ GitHub ]

  
# File 'lib/rexml/parsers/ultralightparser.rb', line 8

def initialize stream
  @stream = stream
  @parser = REXML::Parsers::BaseParser.new( stream )
end

Instance Method Details

#add_listener(listener)

[ GitHub ]

  
# File 'lib/rexml/parsers/ultralightparser.rb', line 13

def add_listener( listener )
  @parser.add_listener( listener )
end

#parse

[ GitHub ]

  
# File 'lib/rexml/parsers/ultralightparser.rb', line 22

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

[ GitHub ]

  
# File 'lib/rexml/parsers/ultralightparser.rb', line 17

def rewind
  @stream.rewind
  @parser.stream = @stream
end