document(argv)
public
Format up one or more files according to the given arguments. For
simplicity, argv is an array of strings, equivalent to the strings
that would be passed on the command line. (This isn’t a coincidence,
as we do pass in ARGV when running interactively). For a list of
options, see rdoc/rdoc.rb. By default, output will be stored in a directory
called doc below the current directory, so make sure you’re
somewhere writable before invoking.
Throws: RDocError on error
Show source
def document(argv)
TopLevel::reset
@stats = Stats.new
options = Options.instance
options.parse(argv, GENERATORS)
@last_created = nil
unless options.all_one_file
@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 = Generators.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