class RDoc::RI::Driver

def ancestors_of(klass)

def ancestors_of(klass)
  ancestors = []
  unexamined = [klass]
  seen = []
  loop do
    break if unexamined.empty?
    current = unexamined.shift
    seen << current
    stores = classes[current]
    next unless stores and not stores.empty?
    klasses = stores.flat_map do |store|
      store.ancestors[current] || []
    end.uniq
    klasses = klasses - seen
    ancestors.concat klasses
    unexamined.concat klasses
  end
  ancestors.reverse
end