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
-
.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 94
def initialize(arg) @contents = arg end
Instance Attribute Details
#attlistdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 147
def attlistdecl? @contents[0] == :attlistdecl end
#cdata? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 178
def cdata? @contents[0] == :cdata end
#comment? ⇒ Boolean
(readonly)
Content: [ String text ]
# 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 ]
# File 'lib/rexml/parsers/pullparser.rb', line 142
def doctype? @contents[0] == :start_doctype end
#elementdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 152
def elementdecl? @contents[0] == :elementdecl end
#end_element? ⇒ Boolean
(readonly)
Content: [ String tag_name ]
# File 'lib/rexml/parsers/pullparser.rb', line 122
def end_element? @contents[0] == :end_element end
#entity? ⇒ Boolean
(readonly)
Content: [ String text ]
# 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 ]
# 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 ]
# File 'lib/rexml/parsers/pullparser.rb', line 132
def instruction? @contents[0] == :processing_instruction end
#notationdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 168
def notationdecl? @contents[0] == :notationdecl end
#start_element? ⇒ Boolean
(readonly)
Content: [ String tag_name, Hash attributes ]
# 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 ]
# File 'lib/rexml/parsers/pullparser.rb', line 127
def text? @contents[0] == :text end
#xmldecl? ⇒ Boolean
(readonly)
Content: [ String version, String encoding, String standalone ]
# 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