Sha256: d6f49a1020758079363a82c83b8149dc6ffd7fef825af0e9f0b47cb47de1867e

Contents?: true

Size: 1.68 KB

Versions: 101

Compression:

Stored size: 1.68 KB

Contents

require 'rubygems'
Gem.load_yaml
require 'rdoc'
require 'gauntlet'
require 'fileutils'

##
# Allows for testing of RDoc against every gem

class RDoc::Gauntlet < Gauntlet

  def initialize # :nodoc:
    super

    @args = nil
    @type = nil
  end

  ##
  # Runs an RDoc generator for gem +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.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

  ##
  # Runs the gauntlet with the given +type+ (rdoc or ri) and +filter+ for
  # which gems to run

  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

end

type = ARGV.shift
filter = ARGV.shift
filter = /#{filter}/ if filter

RDoc::Gauntlet.new.run_the_gauntlet type, filter

Version data entries

101 entries across 79 versions & 22 rubygems

Version Path
active_mailer-0.0.10 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.1/lib/gauntlet_rdoc.rb
judge-2.0.5 vendor/bundle/ruby/2.1.0/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
swipe-rails-0.0.5 vendor/bundle/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
active_mailer-0.0.9 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.1/lib/gauntlet_rdoc.rb
active_mailer-0.0.8 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.1/lib/gauntlet_rdoc.rb
active_mailer-0.0.7 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.1/lib/gauntlet_rdoc.rb
active_mailer-0.0.6 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.1/lib/gauntlet_rdoc.rb
font-awesome-rails-3.1.1.2 vendor/ruby/2.0.0/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
font-awesome-rails-3.1.1.2 vendor/ruby/1.9.1/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
font-awesome-rails-3.1.1.1 vendor/ruby/1.9.1/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
font-awesome-rails-3.1.1.1 vendor/ruby/2.0.0/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
challah-1.0.0.beta3 vendor/bundle/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
fc-webicons-0.0.4 vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
challah-1.0.0.beta2 vendor/bundle/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
challah-1.0.0.beta vendor/bundle/gems/rdoc-3.12/lib/gauntlet_rdoc.rb
challah-1.0.0.beta vendor/bundle/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
fc-webicons-0.0.3 vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
fc-webicons-0.0.2 vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
fc-webicons-0.0.1 vendor/bundle/ruby/1.9.1/gems/rdoc-3.12.2/lib/gauntlet_rdoc.rb
rdoc-3.12.2 lib/gauntlet_rdoc.rb