class REXML::DTD::EntityDecl - rexml: Ruby Standard Library Documentation

# class REXML::DTD::EntityDecl

### Constants

PERCENT
PLAIN
PUBLIC
START
START_RE
SYSTEM

### Public Class Methods

new(src) click to toggle source

<!ENTITY name `SYSTEM` “…”> <!ENTITY name “…”>

Calls superclass method `REXML::Child::new`

    # File rexml-3.4.0/lib/rexml/dtd/entitydecl.rb, line 14
    def initialize src
      super()
      md = nil
      if src.match( PUBLIC )
        md = src.match( PUBLIC, true )
        @middle = "PUBLIC"
        @content = "#{md[2]} #{md[4]}"
      elsif src.match( SYSTEM )
        md = src.match( SYSTEM, true )
        @middle = "SYSTEM"
        @content = md[2]
      elsif src.match( PLAIN )
        md = src.match( PLAIN, true )
        @middle = ""
        @content = md[2]
      elsif src.match( PERCENT )
        md = src.match( PERCENT, true )
        @middle = ""
        @content = md[2]
      end
      raise ParseException.new("failed Entity match", src) if md.nil?
      @name = md[1]
    end

parse_source(source, listener) click to toggle source

    # File rexml-3.4.0/lib/rexml/dtd/entitydecl.rb, line 50
    def EntityDecl.parse_source source, listener
      md = source.match( PATTERN_RE, true )
      thing = md[0].squeeze(" \t\n\r")
      listener.send inspect.downcase, thing
    end

### Public Instance Methods

to_s() click to toggle source

    # File rexml-3.4.0/lib/rexml/dtd/entitydecl.rb, line 38
    def to_s
      rv = "<!ENTITY #@name "
      rv << "#@middle " if @middle.size > 0
      rv << @content
      rv
    end

write( output, indent ) click to toggle source

    # File rexml-3.4.0/lib/rexml/dtd/entitydecl.rb, line 45
    def write( output, indent )
      indent( output, indent )
      output << to_s
    end