Class: Gem::Commands::RdocCommand

Inherits:
Gem::Command show all
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

Methods included from VersionOption

#add_platform_option, #add_prerelease_option, #add_version_option

Methods inherited from Gem::Command

add_common_option, #add_extra_args, #add_option, add_specific_extra_args, #begins?, build_args, build_args=, common_options, extra_args, extra_args=, #get_all_gem_names, #get_one_gem_name, #get_one_optional_argument, #handle_options, #handles?, #invoke, #merge_options, #remove_option, #show_help, #show_lookup_failure, specific_extra_args, 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

Methods included from DefaultUserInteraction

ui, #ui, ui=, #ui=, use_ui, #use_ui

Constructor Details

#initializeRdocCommand

Returns a new instance of RdocCommand.



8
9
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
# File 'lib/rubygems/commands/rdoc_command.rb', line 8

def initialize
  super 'rdoc', 'Generates RDoc for pre-installed gems',
        :version => Gem::Requirement.default,
        :include_rdoc => true, :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

Instance Method Details

#argumentsObject

:nodoc:



37
38
39
# File 'lib/rubygems/commands/rdoc_command.rb', line 37

def arguments # :nodoc:
  "GEMNAME       gem to generate documentation for (unless --all)"
end

#defaults_strObject

:nodoc:



41
42
43
# File 'lib/rubygems/commands/rdoc_command.rb', line 41

def defaults_str # :nodoc:
  "--version '#{Gem::Requirement.default}' --rdoc --ri --no-overwrite"
end

#descriptionObject

:nodoc:



45
46
47
48
49
50
# File 'lib/rubygems/commands/rdoc_command.rb', line 45

def description # :nodoc:
  <<-DESC
The rdoc command builds RDoc and RI documentation for installed gems.  Use
--overwrite to force rebuilding of documentation.
  DESC
end

#executeObject



56
57
58
59
60
61
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
# File 'lib/rubygems/commands/rdoc_command.rb', line 56

def execute
  if options[:all] then
    specs = Gem::SourceIndex.from_installed_gems.collect { |name, spec|
      spec
    }
  else
    gem_name = get_one_gem_name
    dep = Gem::Dependency.new gem_name, options[:version]
    specs = Gem::SourceIndex.from_installed_gems.search dep
  end

  if specs.empty?
    raise "Failed to find gem #{gem_name} to generate RDoc for #{options[:version]}"
  end

  if options[:include_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.sort.each do |spec|
      doc = Gem::DocManager.new(spec)
      doc.generate_rdoc if options[:overwrite] || !doc.rdoc_installed?
    end
  end

  true
end

#usageObject

:nodoc:



52
53
54
# File 'lib/rubygems/commands/rdoc_command.rb', line 52

def usage # :nodoc:
  "#{program_name} [args]"
end