Class: Gem::Commands::AtodeYomuCommand

Inherits:
Gem::Command
  • Object
show all
Includes:
VersionOption
Defined in:
lib/rubygems/commands/atode_yomu_command.rb

Instance Method Summary collapse

Constructor Details

#initializeAtodeYomuCommand

Returns a new instance of AtodeYomuCommand.



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rubygems/commands/atode_yomu_command.rb', line 18

def initialize
  super 'atode_yomu', 'Cleverly installs rdoc and ri for the latest versions of already installed gems',
      :generate_rdoc     => true,
      :generate_ri       => true

  add_option('--all',
             'Generate RDoc/RI documentation for',
             'the latest versions of installed gems') do |value, options|
    options[:all] = value
  end

#     add_version_option
end

Instance Method Details

#argumentsObject

:nodoc:



32
33
34
# File 'lib/rubygems/commands/atode_yomu_command.rb', line 32

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

#executeObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/rubygems/commands/atode_yomu_command.rb', line 40

def execute
  if options[:all] then
    specs = Gem::SourceIndex.from_installed_gems.latest_specs
  else
    gem_name = get_one_gem_name
    dep = Gem::Dependency.new gem_name
    specs = Gem::SourceIndex.from_installed_gems.latest_specs.search dep
  end

  if specs.empty?
    fail "Failed to find gem #{gem_name} to generate RDoc"
  end

  specs.each do |spec|
    doc_manager = Gem::DocManager.new spec
    if options[:generate_ri]
      if !doc_manager.ri_installed? && File.exist?(File.join(spec.full_gem_path, 'lib'))
        doc_manager.generate_ri
      else
        say "skip installing ri for #{spec.name} #{spec.version}..."
      end
    end

    if options[:generate_rdoc]
      if !doc_manager.rdoc_installed? && File.exist?(File.join(spec.full_gem_path, 'lib'))
        doc_manager.generate_rdoc
      else
        say "skip installing rdoc for #{spec.name} #{spec.version}..."
      end
    end
  end if options[:generate_ri] || options[:generate_rdoc]
  Gem::DocManager.update_ri_cache if options[:generate_ri]

  true
end

#usageObject

:nodoc:



36
37
38
# File 'lib/rubygems/commands/atode_yomu_command.rb', line 36

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