class RDoc::Gauntlet
def initialize # :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