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 StreamListeners 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.


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 ]

Returns:

  • (Boolean)

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

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

#cdata?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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

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

#comment?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

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

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

#elementdecl?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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

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

#end_element?Boolean

Content: [ String tag_name ]

Returns:

  • (Boolean)

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

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

#entity?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

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

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

#error?Boolean

Returns:

  • (Boolean)

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

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

#event_typeObject


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

def event_type
  @contents[0]
end

#inspectObject


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 ]

Returns:

  • (Boolean)

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

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

#notationdecl?Boolean

Content: [ String text ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

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 ]

Returns:

  • (Boolean)

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

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