"DTD/xhtml1-strict.dtd">
Class Amrita::Listener
In: lib/amrita/xml.rb
Parent: Object
Methods
doctype    new    pop    push    result    tag_end    tag_start    text    top    xmldecl   
Included modules
Amrita REXML::StreamListener
Public Class methods
new()
# File lib/amrita/xml.rb, line 38
    def initialize
      @stack = [ Null ]
    end
Public Instance methods
push(element)
# File lib/amrita/xml.rb, line 42
    def push(element)      
      @stack.unshift element
    end
pop()
# File lib/amrita/xml.rb, line 46
    def pop
      @stack.shift
    end
top()
# File lib/amrita/xml.rb, line 50
    def top
     @stack.first
    end
result()
# File lib/amrita/xml.rb, line 54
    def result
      raise "can't happen @stack.size=#{@stack.size}" unless @stack.size == 1
      top
    end
tag_start(name, attrs)
# File lib/amrita/xml.rb, line 59
    def tag_start(name, attrs)
      a = attrs.collect do |key, val|
        Attr.new(key, convert(val))
      end
      push e(name, *a)
      push Null
    end
tag_end(name)
# File lib/amrita/xml.rb, line 67
    def tag_end(name)
      body = pop
      element = pop
      element.init_body { body }
      push(pop + element)
    end
text(text)
# File lib/amrita/xml.rb, line 74
    def text(text)
      push(pop + TextElement.new(convert(text)))
    end
xmldecl(version, encoding, standalone)
# File lib/amrita/xml.rb, line 78
    def xmldecl(version, encoding, standalone)
      text = ]xml version="#{version}"]
      text += ] encoding="#{encoding}"] if encoding
      s = SpecialElement.new('?', text)
      push(pop + s)
    end
doctype(name, pub_sys, long_name, uri)
# File lib/amrita/xml.rb, line 85
    def doctype(name, pub_sys, long_name, uri)
      s = SpecialElement.new('!',
                             ]DOCTYPE #{name} #{pub_sys} #{long_name} #{uri}])
      push(pop + s)
    end