# File rubygems/commands/rdoc_command.rb, line 9
def initialize
super 'rdoc', 'Generates RDoc for pre-installed gems',
:version => Gem::Requirement.default,
:include_rdoc => false, :include_ri => true, :overwrite => false
add_option('--all',
'Generate RDoc/RI documentation for all',
'installed gems') do |value, options|
options[:all] = value
end
add_option('--[no-]rdoc',
'Generate RDoc HTML') do |value, options|
options[:include_rdoc] = value
end
add_option('--[no-]ri',
'Generate RI data') do |value, options|
options[:include_ri] = value
end
add_option('--[no-]overwrite',
'Overwrite installed documents') do |value, options|
options[:overwrite] = value
end
add_version_option
end
# File rubygems/commands/rdoc_command.rb, line 57
def execute
specs = if options[:all] then
Gem::Specification.to_a
else
get_all_gem_names.map do |name|
Gem::Specification.find_by_name name, options[:version]
end.flatten.uniq
end
if specs.empty? then
alert_error 'No matching gems found'
terminate_interaction 1
end
specs.each do |spec|
doc = Gem::RDoc.new spec, options[:include_rdoc], options[:include_ri]
doc.force = options[:overwrite]
if options[:overwrite] then
FileUtils.rm_rf File.join(spec.doc_dir, 'ri')
FileUtils.rm_rf File.join(spec.doc_dir, 'rdoc')
end
begin
doc.generate
rescue Errno::ENOENT => e
e.message =~ / - /
alert_error "Unable to document #{spec.full_name}, #{$'} is missing, skipping"
terminate_interaction 1 if specs.length == 1
end
end
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.