Class: REXML::Parsers::PullEvent
- Inherits:
-
Object
- Object
- REXML::Parsers::PullEvent
- 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 StreamListener+s for each event.
Instance Method Summary collapse
- #[](start, endd = nil) ⇒ Object
-
#attlistdecl? ⇒ Boolean
Content: [ String text ].
-
#cdata? ⇒ Boolean
Content: [ String text ].
-
#comment? ⇒ Boolean
Content: [ String text ].
-
#doctype? ⇒ Boolean
Content: [ String name, String pub_sys, String long_name, String uri ].
-
#elementdecl? ⇒ Boolean
Content: [ String text ].
-
#end_element? ⇒ Boolean
Content: [ String tag_name ].
-
#entity? ⇒ Boolean
Content: [ String text ].
-
#entitydecl? ⇒ Boolean
Due to the wonders of DTDs, an entity declaration can be just about anything.
- #error? ⇒ Boolean
- #event_type ⇒ Object
-
#initialize(arg) ⇒ PullEvent
constructor
The type of this event.
- #inspect ⇒ Object
-
#instruction? ⇒ Boolean
Content: [ String text ].
-
#notationdecl? ⇒ Boolean
Content: [ String text ].
-
#start_element? ⇒ Boolean
Content: [ String tag_name, Hash attributes ].
-
#text? ⇒ Boolean
Content: [ String raw_text, String unnormalized_text ].
-
#xmldecl? ⇒ Boolean
Content: [ String version, String encoding, String standalone ].
Constructor Details
#initialize(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.
111 112 113 |
# File 'lib/rexml/parsers/pullparser.rb', line 111 def initialize(arg) @contents = arg end |
Instance Method Details
#[](start, endd = nil) ⇒ Object
115 116 117 118 119 120 121 122 123 124 125 126 127 |
# 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 |
#attlistdecl? ⇒ Boolean
Content: [ String text ]
164 165 166 |
# File 'lib/rexml/parsers/pullparser.rb', line 164 def attlistdecl? @contents[0] == :attlistdecl end |
#cdata? ⇒ Boolean
Content: [ String text ]
195 196 197 |
# File 'lib/rexml/parsers/pullparser.rb', line 195 def cdata? @contents[0] == :cdata end |
#comment? ⇒ Boolean
Content: [ String text ]
154 155 156 |
# File 'lib/rexml/parsers/pullparser.rb', line 154 def comment? @contents[0] == :comment end |
#doctype? ⇒ Boolean
Content: [ String name, String pub_sys, String long_name, String uri ]
159 160 161 |
# File 'lib/rexml/parsers/pullparser.rb', line 159 def doctype? @contents[0] == :start_doctype end |
#elementdecl? ⇒ Boolean
Content: [ String text ]
169 170 171 |
# File 'lib/rexml/parsers/pullparser.rb', line 169 def elementdecl? @contents[0] == :elementdecl end |
#end_element? ⇒ Boolean
Content: [ String tag_name ]
139 140 141 |
# File 'lib/rexml/parsers/pullparser.rb', line 139 def end_element? @contents[0] == :end_element end |
#entity? ⇒ Boolean
Content: [ String text ]
190 191 192 |
# File 'lib/rexml/parsers/pullparser.rb', line 190 def entity? @contents[0] == :entity end |
#entitydecl? ⇒ Boolean
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 ]
180 181 182 |
# File 'lib/rexml/parsers/pullparser.rb', line 180 def entitydecl? @contents[0] == :entitydecl end |
#error? ⇒ Boolean
204 205 206 |
# File 'lib/rexml/parsers/pullparser.rb', line 204 def error? @contents[0] == :error end |
#event_type ⇒ Object
129 130 131 |
# File 'lib/rexml/parsers/pullparser.rb', line 129 def event_type @contents[0] end |
#inspect ⇒ Object
208 209 210 |
# File 'lib/rexml/parsers/pullparser.rb', line 208 def inspect @contents[0].to_s + ": " + @contents[1..-1].inspect end |
#instruction? ⇒ Boolean
Content: [ String text ]
149 150 151 |
# File 'lib/rexml/parsers/pullparser.rb', line 149 def instruction? @contents[0] == :processing_instruction end |
#notationdecl? ⇒ Boolean
Content: [ String text ]
185 186 187 |
# File 'lib/rexml/parsers/pullparser.rb', line 185 def notationdecl? @contents[0] == :notationdecl end |
#start_element? ⇒ Boolean
Content: [ String tag_name, Hash attributes ]
134 135 136 |
# File 'lib/rexml/parsers/pullparser.rb', line 134 def start_element? @contents[0] == :start_element end |
#text? ⇒ Boolean
Content: [ String raw_text, String unnormalized_text ]
144 145 146 |
# File 'lib/rexml/parsers/pullparser.rb', line 144 def text? @contents[0] == :text end |
#xmldecl? ⇒ Boolean
Content: [ String version, String encoding, String standalone ]
200 201 202 |
# File 'lib/rexml/parsers/pullparser.rb', line 200 def xmldecl? @contents[0] == :xmldecl end |