class RDoc::Gauntlet

def initialize # :nodoc:

:nodoc:
def initialize # :nodoc:
  super
  @args = nil
  @type = nil
end

def run name

def run name
  return if self.data.key? name
  dir = File.expand_path "~/.gauntlet/data/#{@type}/#{name}"
  FileUtils.rm_rf dir if File.exist? dir
  yaml = File.read 'gemspec'
  begin
    spec = Gem::Specification.from_yaml yaml
  rescue Psych::SyntaxError
    puts "bad spec #{name}"
    self.data[name] = false
    return
  end
  args = @args.dup
  args << '--op' << dir
  args.concat spec.rdoc_options
  args << spec.require_paths
  args << spec.extra_rdoc_files
  args = args.flatten.map { |a| a.to_s }
  args.delete '--quiet'
  puts "#{name} - rdoc #{args.join ' '}"
  self.dirty = true
  r = RDoc::RDoc.new
  begin
    r.document args
    self.data[name] = true
    puts 'passed'
    FileUtils.rm_rf dir
  rescue Interrupt, StandardError, RDoc::Error, SystemStackError => e
    puts "failed - (#{e.class}) #{e.message}"
    self.data[name] = false
  end
rescue Gem::Exception
  puts "bad gem #{name}"
ensure
  puts
end

def run_the_gauntlet type = 'rdoc', filter = nil

def run_the_gauntlet type = 'rdoc', filter = nil
  @type = type || 'rdoc'
  @args = type == 'rdoc' ? [] : %w[--ri]
  @data_file = "#{DATADIR}/#{@type}-data.yml"
  super filter
end