Class: Gem::DocManager

Inherits:
Object
  • Object
show all
Defined in:
lib/rubygems_plugin.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.load_yardocObject



28
29
30
# File 'lib/rubygems_plugin.rb', line 28

def self.load_yardoc
  require File.dirname(__FILE__) + '/yard'
end

Instance Method Details

#install_rdoc_yardObject Also known as: install_rdoc



90
91
92
93
94
95
96
# File 'lib/rubygems_plugin.rb', line 90

def install_rdoc_yard
  if @spec.has_rdoc?
    install_rdoc_yard_orig
  elsif @spec.has_yardoc?
    install_yardoc
  end
end

#install_ri_yardObject Also known as: install_ri



78
79
80
81
82
83
84
85
86
# File 'lib/rubygems_plugin.rb', line 78

def install_ri_yard
  install_ri_yard_orig if @spec.has_rdoc?
  return if @spec.has_rdoc? == false
  return if @spec.has_yardoc?
  
  self.class.load_yardoc
  say "Building YARD (yri) index for #{@spec.full_name}..."
  run_yardoc '-c', '-n'
end

#install_yardocObject



69
70
71
72
73
74
75
76
# File 'lib/rubygems_plugin.rb', line 69

def install_yardoc
  rdoc_dir = File.join(@doc_dir, 'rdoc')

  FileUtils.rm_rf rdoc_dir

  say "Installing YARD documentation for #{@spec.full_name}..."
  run_yardoc '-o', rdoc_dir
end

#run_yardoc(*args) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rubygems_plugin.rb', line 32

def run_yardoc(*args)
  args << '--quiet'
  args << @spec.require_paths
  if @spec.extra_rdoc_files.size > 0
    args << '-'
    args += @spec.extra_rdoc_files
  end
  args = args.flatten.map {|arg| arg.to_s }

  old_pwd = Dir.pwd
  Dir.chdir(@spec.full_gem_path)
  YARD::CLI::Yardoc.run(*args)
rescue Errno::EACCES => e
  dirname = File.dirname e.message.split("-")[1].strip
  raise Gem::FilePermissionError.new(dirname)
rescue => ex
  alert_error "While generating documentation for #{@spec.full_name}"
  ui.errs.puts "... MESSAGE:   #{ex}"
  ui.errs.puts "... YARDDOC args: #{args.join(' ')}"
  ui.errs.puts "\t#{ex.backtrace.join("\n\t")}" if Gem.configuration.backtrace
  ui.errs.puts "(continuing with the rest of the installation)"
ensure
  Dir.chdir(old_pwd)
end

#setup_rdocObject



58
59
60
61
62
63
64
65
66
67
# File 'lib/rubygems_plugin.rb', line 58

def setup_rdoc
  if File.exist?(@doc_dir) && !File.writable?(@doc_dir) then
    raise Gem::FilePermissionError.new(@doc_dir)
  end

  FileUtils.mkdir_p @doc_dir unless File.exist?(@doc_dir)

  self.class.load_rdoc if @spec.has_rdoc?
  self.class.load_yardoc if @spec.has_yardoc?
end