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.
94 95 96 |
# File 'lib/rexml/parsers/pullparser.rb', line 94 def initialize(arg) @contents = arg end |
Instance Method Details
#[](start, endd = nil) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 109 110 |
# 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 |
#attlistdecl? ⇒ Boolean
Content: [ String text ]
147 148 149 |
# File 'lib/rexml/parsers/pullparser.rb', line 147 def attlistdecl? @contents[0] == :attlistdecl end |
#cdata? ⇒ Boolean
Content: [ String text ]
178 179 180 |
# File 'lib/rexml/parsers/pullparser.rb', line 178 def cdata? @contents[0] == :cdata end |
#comment? ⇒ Boolean
Content: [ String text ]
137 138 139 |
# File 'lib/rexml/parsers/pullparser.rb', line 137 def comment? @contents[0] == :comment end |
#doctype? ⇒ Boolean
Content: [ String name, String pub_sys, String long_name, String uri ]
142 143 144 |
# File 'lib/rexml/parsers/pullparser.rb', line 142 def doctype? @contents[0] == :start_doctype end |
#elementdecl? ⇒ Boolean
Content: [ String text ]
152 153 154 |
# File 'lib/rexml/parsers/pullparser.rb', line 152 def elementdecl? @contents[0] == :elementdecl end |
#end_element? ⇒ Boolean
Content: [ String tag_name ]
122 123 124 |
# File 'lib/rexml/parsers/pullparser.rb', line 122 def end_element? @contents[0] == :end_element end |
#entity? ⇒ Boolean
Content: [ String text ]
173 174 175 |
# File 'lib/rexml/parsers/pullparser.rb', line 173 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 ]
163 164 165 |
# File 'lib/rexml/parsers/pullparser.rb', line 163 def entitydecl? @contents[0] == :entitydecl end |
#error? ⇒ Boolean
187 188 189 |
# File 'lib/rexml/parsers/pullparser.rb', line 187 def error? @contents[0] == :error end |
#event_type ⇒ Object
112 113 114 |
# File 'lib/rexml/parsers/pullparser.rb', line 112 def event_type @contents[0] end |
#inspect ⇒ Object
191 192 193 |
# File 'lib/rexml/parsers/pullparser.rb', line 191 def inspect @contents[0].to_s + ": " + @contents[1..-1].inspect end |
#instruction? ⇒ Boolean
Content: [ String text ]
132 133 134 |
# File 'lib/rexml/parsers/pullparser.rb', line 132 def instruction? @contents[0] == :processing_instruction end |
#notationdecl? ⇒ Boolean
Content: [ String text ]
168 169 170 |
# File 'lib/rexml/parsers/pullparser.rb', line 168 def notationdecl? @contents[0] == :notationdecl end |
#start_element? ⇒ Boolean
Content: [ String tag_name, Hash attributes ]
117 118 119 |
# File 'lib/rexml/parsers/pullparser.rb', line 117 def start_element? @contents[0] == :start_element end |
#text? ⇒ Boolean
Content: [ String raw_text, String unnormalized_text ]
127 128 129 |
# File 'lib/rexml/parsers/pullparser.rb', line 127 def text? @contents[0] == :text end |
#xmldecl? ⇒ Boolean
Content: [ String version, String encoding, String standalone ]
183 184 185 |
# File 'lib/rexml/parsers/pullparser.rb', line 183 def xmldecl? @contents[0] == :xmldecl end |