# File lib/rubygems/commands/rdoc_command.rb, line 57
  def execute
    if options[:all] then
      specs = Gem::SourceIndex.from_installed_gems.collect { |name, spec|
        spec
      }
    else
      gem_name = get_one_gem_name
      dep = Gem::Dependency.new gem_name, options[:version]
      specs = Gem::SourceIndex.from_installed_gems.search dep
    end

    if specs.empty?
      raise "Failed to find gem #{gem_name} to generate RDoc for #{options[:version]}"
    end

    if options[:include_ri]
      specs.sort.each do |spec|
        doc = Gem::DocManager.new(spec)
        doc.generate_ri if options[:overwrite] || !doc.ri_installed?
      end

      Gem::DocManager.update_ri_cache
    end

    if options[:include_rdoc]
      specs.sort.each do |spec|
        doc = Gem::DocManager.new(spec)
        doc.generate_rdoc if options[:overwrite] || !doc.rdoc_installed?
      end
    end

    true
  end