Class: 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.
95 96 97 |
# File 'lib/rexml/parsers/pullparser.rb', line 95 def initialize(arg) @contents = arg end |
Instance Method Details
#[](start, endd = nil) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 |
# 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 |
#attlistdecl? ⇒ Boolean
Content: [ String text ]
148 149 150 |
# File 'lib/rexml/parsers/pullparser.rb', line 148 def attlistdecl? @contents[0] == :attlistdecl end |
#cdata? ⇒ Boolean
Content: [ String text ]
179 180 181 |
# File 'lib/rexml/parsers/pullparser.rb', line 179 def cdata? @contents[0] == :cdata end |
#comment? ⇒ Boolean
Content: [ String text ]
138 139 140 |
# File 'lib/rexml/parsers/pullparser.rb', line 138 def comment? @contents[0] == :comment end |
#doctype? ⇒ Boolean
Content: [ String name, String pub_sys, String long_name, String uri ]
143 144 145 |
# File 'lib/rexml/parsers/pullparser.rb', line 143 def doctype? @contents[0] == :start_doctype end |
#elementdecl? ⇒ Boolean
Content: [ String text ]
153 154 155 |
# File 'lib/rexml/parsers/pullparser.rb', line 153 def elementdecl? @contents[0] == :elementdecl end |
#end_element? ⇒ Boolean
Content: [ String tag_name ]
123 124 125 |
# File 'lib/rexml/parsers/pullparser.rb', line 123 def end_element? @contents[0] == :end_element end |
#entity? ⇒ Boolean
Content: [ String text ]
174 175 176 |
# File 'lib/rexml/parsers/pullparser.rb', line 174 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 ]
164 165 166 |
# File 'lib/rexml/parsers/pullparser.rb', line 164 def entitydecl? @contents[0] == :entitydecl end |
#error? ⇒ Boolean
188 189 190 |
# File 'lib/rexml/parsers/pullparser.rb', line 188 def error? @contents[0] == :error end |
#event_type ⇒ Object
113 114 115 |
# File 'lib/rexml/parsers/pullparser.rb', line 113 def event_type @contents[0] end |
#inspect ⇒ Object
192 193 194 |
# File 'lib/rexml/parsers/pullparser.rb', line 192 def inspect @contents[0].to_s + ": " + @contents[1..-1].inspect end |
#instruction? ⇒ Boolean
Content: [ String text ]
133 134 135 |
# File 'lib/rexml/parsers/pullparser.rb', line 133 def instruction? @contents[0] == :processing_instruction end |
#notationdecl? ⇒ Boolean
Content: [ String text ]
169 170 171 |
# File 'lib/rexml/parsers/pullparser.rb', line 169 def notationdecl? @contents[0] == :notationdecl end |
#start_element? ⇒ Boolean
Content: [ String tag_name, Hash attributes ]
118 119 120 |
# File 'lib/rexml/parsers/pullparser.rb', line 118 def start_element? @contents[0] == :start_element end |
#text? ⇒ Boolean
Content: [ String raw_text, String unnormalized_text ]
128 129 130 |
# File 'lib/rexml/parsers/pullparser.rb', line 128 def text? @contents[0] == :text end |
#xmldecl? ⇒ Boolean
Content: [ String version, String encoding, String standalone ]
184 185 186 |
# File 'lib/rexml/parsers/pullparser.rb', line 184 def xmldecl? @contents[0] == :xmldecl end |