class RDoc::Gauntlet
Allows for testing of RDoc against every gem
Public Instance Methods
run(name)
click to toggle source
Runs an RDoc generator for gem name
# File lib/gauntlet_rdoc.rb, line 22 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
run_the_gauntlet(type = 'rdoc', filter = nil)
click to toggle source
Runs the gauntlet with the given type
(rdoc or ri) and
filter
for which gems to run
Calls superclass method
# File lib/gauntlet_rdoc.rb, line 69 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