123456789_123456789_123456789_123456789_123456789_

Class: REXML::Parsers::PullEvent

Relationships & Source Files
Inherits: Object
Defined in: lib/rexml/parsers/pullparser.rb

Overview

A parsing event. The contents of the event are accessed as an +Array?, and the type is given either by the …? methods, or by accessing the type accessor. The contents of this object vary from event to event, but are identical to the arguments passed to ::REXML::StreamListeners for each event.

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(arg) ⇒ PullEvent

The type of this event. Will be one of :tag_start, :tag_end, :text, :processing_instruction, :comment, :doctype, :attlistdecl, :entitydecl, :notationdecl, :entity, :cdata, :xmldecl, or :error.

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 94

def initialize(arg)
  @contents = arg
end

Instance Attribute Details

#attlistdecl?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 147

def attlistdecl?
  @contents[0] == :attlistdecl
end

#cdata?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 178

def cdata?
  @contents[0] == :cdata
end

#comment?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 137

def comment?
  @contents[0] == :comment
end

#doctype?Boolean (readonly)

Content: [ String name, String pub_sys, String long_name, String uri ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 142

def doctype?
  @contents[0] == :start_doctype
end

#elementdecl?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 152

def elementdecl?
  @contents[0] == :elementdecl
end

#end_element?Boolean (readonly)

Content: [ String tag_name ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 122

def end_element?
  @contents[0] == :end_element
end

#entity?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 173

def entity?
  @contents[0] == :entity
end

#entitydecl?Boolean (readonly)

Due to the wonders of DTDs, an entity declaration can be just about anything. There's no way to normalize it; you'll have to interpret the content yourself. However, the following is true:

  • If the entity declaration is an internal entity:

    String name, String value

Content: [ String text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 163

def entitydecl?
  @contents[0] == :entitydecl
end

#error?Boolean (readonly)

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 187

def error?
  @contents[0] == :error
end

#instruction?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 132

def instruction?
  @contents[0] == :processing_instruction
end

#notationdecl?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 168

def notationdecl?
  @contents[0] == :notationdecl
end

#start_element?Boolean (readonly)

Content: [ String tag_name, Hash attributes ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 117

def start_element?
  @contents[0] == :start_element
end

#text?Boolean (readonly)

Content: [ String raw_text, String unnormalized_text ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 127

def text?
  @contents[0] == :text
end

#xmldecl?Boolean (readonly)

Content: [ String version, String encoding, String standalone ]

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 183

def xmldecl?
  @contents[0] == :xmldecl
end

Instance Method Details

#[](start, endd = nil)

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 98

def []( start, endd=nil)
  if start.kind_of? Range
    @contents.slice( start.begin+1 .. start.end )
  elsif start.kind_of? Numeric
    if endd.nil?
      @contents.slice( start+1 )
    else
      @contents.slice( start+1, endd )
    end
  else
    raise "Illegal argument #{start.inspect} (#{start.class})"
  end
end

#event_type

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 112

def event_type
  @contents[0]
end

#inspect

[ GitHub ]

  
# File 'lib/rexml/parsers/pullparser.rb', line 191

def inspect
  @contents[0].to_s + ": " + @contents[1..-1].inspect
end