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 95

def initialize(arg)
  @contents = arg
end

Instance Attribute Details

#attlistdecl?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

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

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

#cdata?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

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

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

#comment?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

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

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 143

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

#elementdecl?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

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

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

#end_element?Boolean (readonly)

Content: [ String tag_name ]

[ GitHub ]

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

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

#entity?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

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

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 164

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

#error?Boolean (readonly)

[ GitHub ]

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

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

#instruction?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

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

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

#notationdecl?Boolean (readonly)

Content: [ String text ]

[ GitHub ]

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

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

#start_element?Boolean (readonly)

Content: [ String tag_name, Hash attributes ]

[ GitHub ]

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

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 128

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

#xmldecl?Boolean (readonly)

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

[ GitHub ]

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

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

Instance Method Details

#[](start, endd = nil)

[ GitHub ]

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

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 113

def event_type
  @contents[0]
end

#inspect

[ GitHub ]

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

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