# File lib/rdoc/rdoc.rb, line 228
    def document(argv)
      TopLevel::reset

      @options = Options.new GENERATORS
      @options.parse argv

      @last_created = nil

      unless @options.all_one_file then
        @last_created = setup_output_dir @options.op_dir, @options.force_update
      end

      start_time = Time.now

      file_info = parse_files @options

      if file_info.empty?
        $stderr.puts "\nNo newer files." unless @options.quiet
      else
        gen = @options.generator

        $stderr.puts "\nGenerating #{gen.key.upcase}..." unless @options.quiet

        require gen.file_name

        gen_class = ::RDoc::Generator.const_get gen.class_name
        gen = gen_class.for @options

        pwd = Dir.pwd

        Dir.chdir @options.op_dir unless @options.all_one_file

        begin
          Diagram.new(file_info, @options).draw if @options.diagram
          gen.generate(file_info)
          update_output_dir(".", start_time)
        ensure
          Dir.chdir(pwd)
        end
      end

      unless @options.quiet
        puts
        @stats.print
      end
    end