# 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.push(*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

    # 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