Class: REXML::Parsers::UltraLightParser

Inherits:
Object
  • Object
show all
Defined in:
lib/rexml/parsers/ultralightparser.rb

Instance Method Summary collapse

Constructor Details

#initialize(stream) ⇒ UltraLightParser

Returns a new instance of UltraLightParser.



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

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

Instance Method Details

#add_listener(listener) ⇒ Object



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

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

#parseObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 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, :doctype
			context << event
			event[1,0] = [context]
			context = event
		when :end_element
			context = context[1]
		else
			context << event
		end
	end
	root
end

#rewindObject



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

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