Method: HTML::SGMLParser#finish_endtag

Defined in:
lib/html/sgml-parser.rb

#finish_endtag(tag) ⇒ Object



279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
# File 'lib/html/sgml-parser.rb', line 279

def finish_endtag(tag)
  if tag == ''
    found = @stack.length - 1
    if found < 0
      unknown_endtag(tag)
      return
    end
  else
    unless @stack.include? tag
      method = 'end_' + tag
      unless self.respond_to?(method)
        unknown_endtag(tag)
      end
      return
    end
    found = @stack.index(tag) #or @stack.length
  end
  while @stack.length > found
    tag = @stack[-1]
    method = 'end_' + tag
    if respond_to?(method)
      handle_endtag(tag, method)
    else
      unknown_endtag(tag)
    end
    @stack.pop
  end
end