summaryrefslogtreecommitdiff
path: root/lib/rubygems/commands/rdoc_command.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/commands/rdoc_command.rb')
-rw-r--r--lib/rubygems/commands/rdoc_command.rb33
1 files changed, 24 insertions, 9 deletions
diff --git a/lib/rubygems/commands/rdoc_command.rb b/lib/rubygems/commands/rdoc_command.rb
index 92f215705a..ea0f3ad592 100644
--- a/lib/rubygems/commands/rdoc_command.rb
+++ b/lib/rubygems/commands/rdoc_command.rb
@@ -8,7 +8,7 @@ class Gem::Commands::RdocCommand < Gem::Command
def initialize
super 'rdoc', 'Generates RDoc for pre-installed gems',
:version => Gem::Requirement.default,
- :include_rdoc => true, :include_ri => true
+ :include_rdoc => true, :include_ri => true, :overwrite => false
add_option('--all',
'Generate RDoc/RI documentation for all',
@@ -17,15 +17,20 @@ class Gem::Commands::RdocCommand < Gem::Command
end
add_option('--[no-]rdoc',
- 'Include RDoc generated documents') do |value, options|
+ 'Generate RDoc HTML') do |value, options|
options[:include_rdoc] = value
end
add_option('--[no-]ri',
- 'Include RI generated documents') do |value, options|
+ '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
@@ -34,7 +39,14 @@ class Gem::Commands::RdocCommand < Gem::Command
end
def defaults_str # :nodoc:
- "--version '#{Gem::Requirement.default}' --rdoc --ri"
+ "--version '#{Gem::Requirement.default}' --rdoc --ri --no-overwrite"
+ end
+
+ def description # :nodoc:
+ <<-DESC
+The rdoc command builds RDoc and RI documentation for installed gems. Use
+--overwrite to force rebuilding of documentation.
+ DESC
end
def usage # :nodoc:
@@ -53,24 +65,27 @@ class Gem::Commands::RdocCommand < Gem::Command
end
if specs.empty?
- fail "Failed to find gem #{gem_name} to generate RDoc for #{options[:version]}"
+ raise "Failed to find gem #{gem_name} to generate RDoc for #{options[:version]}"
end
if options[:include_ri]
- specs.each do |spec|
- Gem::DocManager.new(spec).generate_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.each do |spec|
- Gem::DocManager.new(spec).generate_rdoc
+ specs.sort.each do |spec|
+ doc = Gem::DocManager.new(spec)
+ doc.generate_rdoc if options[:overwrite] || !doc.rdoc_installed?
end
end
true
end
+
end