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 95
def initialize(arg) @contents = arg end
Instance Attribute Details
#attlistdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 148
def attlistdecl? @contents[0] == :attlistdecl end
#cdata? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 179
def cdata? @contents[0] == :cdata end
#comment? ⇒ Boolean
(readonly)
Content: [ String text ]
# 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 ]
# File 'lib/rexml/parsers/pullparser.rb', line 143
def doctype? @contents[0] == :start_doctype end
#elementdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 153
def elementdecl? @contents[0] == :elementdecl end
#end_element? ⇒ Boolean
(readonly)
Content: [ String tag_name ]
# File 'lib/rexml/parsers/pullparser.rb', line 123
def end_element? @contents[0] == :end_element end
#entity? ⇒ Boolean
(readonly)
Content: [ String text ]
# 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 ]
# 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 ]
# File 'lib/rexml/parsers/pullparser.rb', line 133
def instruction? @contents[0] == :processing_instruction end
#notationdecl? ⇒ Boolean
(readonly)
Content: [ String text ]
# File 'lib/rexml/parsers/pullparser.rb', line 169
def notationdecl? @contents[0] == :notationdecl end
#start_element? ⇒ Boolean
(readonly)
Content: [ String tag_name, Hash attributes ]
# 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 ]
# File 'lib/rexml/parsers/pullparser.rb', line 128
def text? @contents[0] == :text end
#xmldecl? ⇒ Boolean
(readonly)
Content: [ String version, String encoding, String standalone ]
# 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