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 107
def initialize(arg) @contents = arg end
Instance Attribute Details
#attlistdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 160
def attlistdecl? @contents[0] == :attlistdecl end
#cdata? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 191
def cdata? @contents[0] == :cdata end
#comment? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 150
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 155
def doctype? @contents[0] == :start_doctype end
#elementdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 165
def elementdecl? @contents[0] == :elementdecl end
#end_element? ⇒ Boolean
(readonly)
Content: [ String tag_name ]
# File 'lib/rexml/parsers/pullparser.rb', line 135
def end_element? @contents[0] == :end_element end
#entity? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 186
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 176
def entitydecl? @contents[0] == :entitydecl end
#error? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/rexml/parsers/pullparser.rb', line 200
def error? @contents[0] == :error end
#instruction? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 145
def instruction? @contents[0] == :processing_instruction end
#notationdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 181
def notationdecl? @contents[0] == :notationdecl end
#start_element? ⇒ Boolean
(readonly)
Content: [ String tag_name, Hash attributes ]
# File 'lib/rexml/parsers/pullparser.rb', line 130
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 140
def text? @contents[0] == :text end
#xmldecl? ⇒ Boolean
(readonly)
Content: [ String version, String encoding, String standalone ]
# File 'lib/rexml/parsers/pullparser.rb', line 196
def xmldecl? @contents[0] == :xmldecl end
Instance Method Details
#[](start, endd = nil)
[ GitHub ]# File 'lib/rexml/parsers/pullparser.rb', line 111
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 125
def event_type @contents[0] end
#inspect
[ GitHub ]# File 'lib/rexml/parsers/pullparser.rb', line 204
def inspect @contents[0].to_s + ": " + @contents[1..-1].inspect end