diff options
Diffstat (limited to 'lib/rubygems/commands/rdoc_command.rb')
-rw-r--r-- | lib/rubygems/commands/rdoc_command.rb | 33 |
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 |