Class: REXML::DTD::EntityDecl
- Defined in:
 - lib/rexml/dtd/entitydecl.rb
 
Constant Summary collapse
- START =
 "<!ENTITY"- START_RE =
 /^\s*#{START}/um- PUBLIC =
 /^\s*#{START}\s+(?:%\s+)?(\w+)\s+PUBLIC\s+((["']).*?\3)\s+((["']).*?\5)\s*>/um- SYSTEM =
 /^\s*#{START}\s+(?:%\s+)?(\w+)\s+SYSTEM\s+((["']).*?\3)(?:\s+NDATA\s+\w+)?\s*>/um- PLAIN =
 /^\s*#{START}\s+(\w+)\s+((["']).*?\3)\s*>/um- PERCENT =
 /^\s*#{START}\s+%\s+(\w+)\s+((["']).*?\3)\s*>/um
Instance Attribute Summary
Attributes inherited from Child
Class Method Summary collapse
Instance Method Summary collapse
- 
  
    
      #initialize(src)  ⇒ EntityDecl 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
<!ENTITY name SYSTEM “…”> <!ENTITY name “…”>.
 - #to_s ⇒ Object
 - #write(output, indent) ⇒ Object
 
Methods inherited from Child
#bytes, #document, #next_sibling=, #previous_sibling=, #remove, #replace_with
Methods included from Node
#each_recursive, #find_first_recursive, #indent, #index_in_parent, #next_sibling_node, #parent?, #previous_sibling_node
Constructor Details
#initialize(src) ⇒ EntityDecl
<!ENTITY name SYSTEM “…”> <!ENTITY name “…”>
      13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35  | 
    
      # File 'lib/rexml/dtd/entitydecl.rb', line 13 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  | 
  
Class Method Details
.parse_source(source, listener) ⇒ Object
      49 50 51 52 53  | 
    
      # File 'lib/rexml/dtd/entitydecl.rb', line 49 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  | 
  
Instance Method Details
#to_s ⇒ Object
      37 38 39 40 41 42  | 
    
      # File 'lib/rexml/dtd/entitydecl.rb', line 37 def to_s rv = "<!ENTITY #@name " rv << "#@middle " if @middle.size > 0 rv << @content rv end  | 
  
#write(output, indent) ⇒ Object
      44 45 46 47  | 
    
      # File 'lib/rexml/dtd/entitydecl.rb', line 44 def write( output, indent ) indent( output, indent ) output << to_s end  |