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.


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 ]

Returns:

  • (Boolean)

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

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

#cdata?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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

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

#comment?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

143
144
145
# File 'lib/rexml/parsers/pullparser.rb', line 143

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

#elementdecl?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

153
154
155
# File 'lib/rexml/parsers/pullparser.rb', line 153

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

#end_element?Boolean

Content: [ String tag_name ]

Returns:

  • (Boolean)

123
124
125
# File 'lib/rexml/parsers/pullparser.rb', line 123

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

#entity?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

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

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

#error?Boolean

Returns:

  • (Boolean)

188
189
190
# File 'lib/rexml/parsers/pullparser.rb', line 188

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

#event_typeObject


113
114
115
# File 'lib/rexml/parsers/pullparser.rb', line 113

def event_type
  @contents[0]
end

#inspectObject


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 ]

Returns:

  • (Boolean)

133
134
135
# File 'lib/rexml/parsers/pullparser.rb', line 133

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

#notationdecl?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

184
185
186
# File 'lib/rexml/parsers/pullparser.rb', line 184

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