Class: Gem::Commands::RdocCommand
- Inherits:
-
Gem::Command
- Object
- Gem::Command
- Gem::Commands::RdocCommand
- Includes:
- VersionOption
- Defined in:
- lib/rubygems/commands/rdoc_command.rb
Instance Attribute Summary
Attributes inherited from Gem::Command
#command, #defaults, #options, #program_name, #summary
Instance Method Summary collapse
-
#arguments ⇒ Object
:nodoc:.
-
#defaults_str ⇒ Object
:nodoc:.
-
#description ⇒ Object
:nodoc:.
- #execute ⇒ Object
-
#initialize ⇒ RdocCommand
constructor
A new instance of RdocCommand.
-
#usage ⇒ Object
:nodoc:.
Methods included from VersionOption
#add_platform_option, #add_prerelease_option, #add_version_option, #get_platform_from_requirements
Methods inherited from Gem::Command
add_common_option, #add_extra_args, #add_option, add_specific_extra_args, #begins?, build_args, build_args=, #check_deprecated_options, common_options, #deprecate_option, #deprecated?, extra_args, extra_args=, #get_all_gem_names, #get_all_gem_names_and_versions, #get_one_gem_name, #get_one_optional_argument, #handle_options, #handles?, #invoke, #invoke_with_build_args, #merge_options, #remove_option, #show_help, #show_lookup_failure, specific_extra_args, specific_extra_args_hash, specific_extra_args_hash=, #when_invoked
Methods included from UserInteraction
#alert, #alert_error, #alert_warning, #ask, #ask_for_password, #ask_yes_no, #choose_from_list, #say, #terminate_interaction, #verbose
Methods included from DefaultUserInteraction
ui, #ui, ui=, #ui=, use_ui, #use_ui
Methods included from Text
#clean_text, #format_text, #levenshtein_distance, #min3, #truncate_text
Constructor Details
#initialize ⇒ RdocCommand
Returns a new instance of RdocCommand.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rubygems/commands/rdoc_command.rb', line 10 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, | [:all] = value end add_option('--[no-]rdoc', 'Generate RDoc HTML') do |value, | [:include_rdoc] = value end add_option('--[no-]ri', 'Generate RI data') do |value, | [:include_ri] = value end add_option('--[no-]overwrite', 'Overwrite installed documents') do |value, | [:overwrite] = value end add_version_option end |
Instance Method Details
#arguments ⇒ Object
:nodoc:
39 40 41 |
# File 'lib/rubygems/commands/rdoc_command.rb', line 39 def arguments # :nodoc: "GEMNAME gem to generate documentation for (unless --all)" end |
#defaults_str ⇒ Object
:nodoc:
43 44 45 |
# File 'lib/rubygems/commands/rdoc_command.rb', line 43 def defaults_str # :nodoc: "--version '#{Gem::Requirement.default}' --ri --no-overwrite" end |
#description ⇒ Object
:nodoc:
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/rubygems/commands/rdoc_command.rb', line 47 def description # :nodoc: <<-DESC The rdoc command builds documentation for installed gems. By default only documentation is built using rdoc, but additional types of documentation may be built through rubygems plugins and the Gem.post_installs hook. Use --overwrite to force rebuilding of documentation. DESC end |
#execute ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/rubygems/commands/rdoc_command.rb', line 62 def execute specs = if [:all] Gem::Specification.to_a else get_all_gem_names.map do |name| Gem::Specification.find_by_name name, [:version] end.flatten.uniq end if specs.empty? alert_error 'No matching gems found' terminate_interaction 1 end specs.each do |spec| doc = Gem::RDoc.new spec, [:include_rdoc], [:include_ri] doc.force = [:overwrite] if [:overwrite] 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. =~ / - / alert_error "Unable to document #{spec.full_name}, #{$'} is missing, skipping" terminate_interaction 1 if specs.length == 1 end end end |
#usage ⇒ Object
:nodoc:
58 59 60 |
# File 'lib/rubygems/commands/rdoc_command.rb', line 58 def usage # :nodoc: "#{program_name} [args]" end |