Class REXML::Parsers::UltraLightParser
In: lib/rexml/parsers/ultralightparser.rb
Parent: Object

Methods

add_listener   new   parse   rewind  

Public Class methods

[Source]

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

Public Instance methods

[Source]

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

[Source]

    # File lib/rexml/parsers/ultralightparser.rb, line 21
21:                         def parse
22:                                 root = context = []
23:                                 while true
24:                                         event = @parser.pull
25:                                         case event[0]
26:                                         when :end_document
27:                                                 break
28:                                         when :end_doctype
29:                                                 context = context[1]
30:                                         when :start_element, :doctype
31:                                                 context << event
32:                                                 event[1,0] = [context]
33:                                                 context = event
34:                                         when :end_element
35:                                                 context = context[1]
36:                                         else
37:                                                 context << event
38:                                         end
39:                                 end
40:                                 root
41:                         end

[Source]

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

[Validate]