Project

General

Profile

Backport #5835 ยป backport_5835.patch

ayumin (Ayumu AIZAWA), 01/04/2012 01:28 AM

View differences:

lib/rexml/parsers/baseparser.rb
def initialize( source )
self.stream = source
@listeners = []
end
def add_listener( listener )
if !defined?(@listeners) or !@listeners
@listeners = []
instance_eval <<-EOL
alias :_old_pull :pull
def pull
event = _old_pull
@listeners.each do |listener|
listener.receive event
end
event
end
EOL
end
@listeners << listener
end
......
# Returns the next event. This is a +PullEvent+ object.
def pull
pull_event.tap do |event|
@listeners.each do |listener|
listener.receive event
end
end
end
def pull_event
if @closed
x, @closed = @closed, nil
return [ :end_element, x ]
......
end
return [ :dummy ]
end
private :pull_event
def entity( reference, entities )
value = nil
    (1-1/1)