Class: REXML::Parsers::PullEvent

Inherits:
Object
  • Object
show all
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

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 ]

Returns:

  • (Boolean)


164
165
166
# File 'lib/rexml/parsers/pullparser.rb', line 164

def attlistdecl?
  @contents[0] == :attlistdecl
end

#cdata?Boolean

Content: [ String text ]

Returns:

  • (Boolean)


195
196
197
# File 'lib/rexml/parsers/pullparser.rb', line 195

def cdata?
  @contents[0] == :cdata
end

#comment?Boolean

Content: [ String text ]

Returns:

  • (Boolean)


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 ]

Returns:

  • (Boolean)


159
160
161
# File 'lib/rexml/parsers/pullparser.rb', line 159

def doctype?
  @contents[0] == :start_doctype
end

#elementdecl?Boolean

Content: [ String text ]

Returns:

  • (Boolean)


169
170
171
# File 'lib/rexml/parsers/pullparser.rb', line 169

def elementdecl?
  @contents[0] == :elementdecl
end

#end_element?Boolean

Content: [ String tag_name ]

Returns:

  • (Boolean)


139
140
141
# File 'lib/rexml/parsers/pullparser.rb', line 139

def end_element?
  @contents[0] == :end_element
end

#entity?Boolean

Content: [ String text ]

Returns:

  • (Boolean)


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 ]

Returns:

  • (Boolean)


180
181
182
# File 'lib/rexml/parsers/pullparser.rb', line 180

def entitydecl?
  @contents[0] == :entitydecl
end

#error?Boolean

Returns:

  • (Boolean)


204
205
206
# File 'lib/rexml/parsers/pullparser.rb', line 204

def error?
  @contents[0] == :error
end

#event_typeObject



129
130
131
# File 'lib/rexml/parsers/pullparser.rb', line 129

def event_type
  @contents[0]
end

#inspectObject



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 ]

Returns:

  • (Boolean)


149
150
151
# File 'lib/rexml/parsers/pullparser.rb', line 149

def instruction?
  @contents[0] == :processing_instruction
end

#notationdecl?Boolean

Content: [ String text ]

Returns:

  • (Boolean)


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 ]

Returns:

  • (Boolean)


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 ]

Returns:

  • (Boolean)


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 ]

Returns:

  • (Boolean)


200
201
202
# File 'lib/rexml/parsers/pullparser.rb', line 200

def xmldecl?
  @contents[0] == :xmldecl
end