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::StreamListener
s for each event.
Class Method Summary
-
.new(arg) ⇒ PullEvent
constructor
The type of this event.
Instance Attribute Summary
-
#attlistdecl? ⇒ Boolean
readonly
Content: [ String text ].
-
#cdata? ⇒ Boolean
readonly
Content: [ String text ].
-
#comment? ⇒ Boolean
readonly
Content: [ String text ].
-
#doctype? ⇒ Boolean
readonly
Content: [ String name, String pub_sys, String long_name, String uri ].
-
#elementdecl? ⇒ Boolean
readonly
Content: [ String text ].
-
#end_element? ⇒ Boolean
readonly
Content: [ String tag_name ].
-
#entity? ⇒ Boolean
readonly
Content: [ String text ].
-
#entitydecl? ⇒ Boolean
readonly
Due to the wonders of DTDs, an entity declaration can be just about anything.
- #error? ⇒ Boolean readonly
-
#instruction? ⇒ Boolean
readonly
Content: [ String text ].
-
#notationdecl? ⇒ Boolean
readonly
Content: [ String text ].
-
#start_element? ⇒ Boolean
readonly
Content: [ String tag_name, Hash attributes ].
-
#text? ⇒ Boolean
readonly
Content: [ String raw_text, String unnormalized_text ].
-
#xmldecl? ⇒ Boolean
readonly
Content: [ String version, String encoding, String standalone ].
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
.
# File 'lib/rexml/parsers/pullparser.rb', line 111
def initialize(arg) @contents = arg end
Instance Attribute Details
#attlistdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 164
def attlistdecl? @contents[0] == :attlistdecl end
#cdata? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 195
def cdata? @contents[0] == :cdata end
#comment? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 154
def comment? @contents[0] == :comment end
#doctype? ⇒ Boolean
(readonly)
Content: [ String name, String pub_sys, String long_name, String uri ]
# File 'lib/rexml/parsers/pullparser.rb', line 159
def doctype? @contents[0] == :start_doctype end
#elementdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 169
def elementdecl? @contents[0] == :elementdecl end
#end_element? ⇒ Boolean
(readonly)
Content: [ String tag_name ]
# File 'lib/rexml/parsers/pullparser.rb', line 139
def end_element? @contents[0] == :end_element end
#entity? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 190
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 ]
# File 'lib/rexml/parsers/pullparser.rb', line 180
def entitydecl? @contents[0] == :entitydecl end
#error? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/rexml/parsers/pullparser.rb', line 204
def error? @contents[0] == :error end
#instruction? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 149
def instruction? @contents[0] == :processing_instruction end
#notationdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 185
def notationdecl? @contents[0] == :notationdecl end
#start_element? ⇒ Boolean
(readonly)
Content: [ String tag_name, Hash attributes ]
# File 'lib/rexml/parsers/pullparser.rb', line 134
def start_element? @contents[0] == :start_element end
#text? ⇒ Boolean
(readonly)
Content: [ String raw_text, String unnormalized_text ]
# File 'lib/rexml/parsers/pullparser.rb', line 144
def text? @contents[0] == :text end
#xmldecl? ⇒ Boolean
(readonly)
Content: [ String version, String encoding, String standalone ]
# File 'lib/rexml/parsers/pullparser.rb', line 200
def xmldecl? @contents[0] == :xmldecl end
Instance Method Details
#[](start, endd = nil)
[ GitHub ]# File 'lib/rexml/parsers/pullparser.rb', line 115
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 129
def event_type @contents[0] end
#inspect
[ GitHub ]# File 'lib/rexml/parsers/pullparser.rb', line 208
def inspect @contents[0].to_s + ": " + @contents[1..-1].inspect end