Class: REXML::DTD::Parser

Inherits:
Object show all
Defined in:
lib/rexml/dtd/dtd.rb

Class Method Summary collapse

Class Method Details

.parse(input) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/rexml/dtd/dtd.rb', line 12

def Parser.parse( input )
  case input
  when String
    parse_helper input
  when File
    parse_helper input.read
  end
end

.parse_helper(input) ⇒ Object

Takes a String and parses it out



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/rexml/dtd/dtd.rb', line 22

def Parser.parse_helper( input )
  contents = Parent.new
  while input.size > 0
    case input
    when ElementDecl.PATTERN_RE
      match = $&
      contents << ElementDecl.new( match )
    when AttlistDecl.PATTERN_RE
      matchdata = $~
      contents << AttlistDecl.new( matchdata )
    when EntityDecl.PATTERN_RE
      matchdata = $~
      contents << EntityDecl.new( matchdata )
    when Comment.PATTERN_RE
      matchdata = $~
      contents << Comment.new( matchdata )
    when NotationDecl.PATTERN_RE
      matchdata = $~
      contents << NotationDecl.new( matchdata )
    end
  end
  contents
end