Gem::RDoc provides methods to generate RDoc and ri data for installed gems upon gem installation.
This file is automatically required by RubyGems 1.9 and newer.
Loaded version of RDoc. Set by ::load_rdoc
Force installation of documentation?
Generate rdoc?
Generate ri data?
Post installs hook that generates documentation for each specification in
specs
# File lib/rdoc/rubygems_hook.rb, line 47
def self.generation_hook installer, specs
  types     = installer.document
  generate_rdoc = types.include? 'rdoc'
  generate_ri   = types.include? 'ri'
  specs.each do |spec|
    new(spec, generate_rdoc, generate_ri).generate
  end
end
						Loads the RDoc generator
# File lib/rdoc/rubygems_hook.rb, line 61
def self.load_rdoc
  return if @rdoc_version
  require 'rdoc/rdoc'
  @rdoc_version = Gem::Version.new ::RDoc::VERSION
end
						Creates a new documentation generator for spec.  RDoc and ri data generation can be disabled through
generate_rdoc and generate_ri respectively.
# File lib/rdoc/rubygems_hook.rb, line 74
def initialize spec, generate_rdoc = true, generate_ri = true
  @doc_dir   = spec.doc_dir
  @file_info = nil
  @force     = false
  @rdoc      = nil
  @spec      = spec
  @generate_rdoc = generate_rdoc
  @generate_ri   = generate_ri
  @rdoc_dir = spec.doc_dir 'rdoc'
  @ri_dir   = spec.doc_dir 'ri'
end
						Removes legacy rdoc arguments from args
# File lib/rdoc/rubygems_hook.rb, line 93
def delete_legacy_args args
  args.delete '--inline-source'
  args.delete '--promiscuous'
  args.delete '-p'
  args.delete '--one-file'
end
						Generates documentation using the named generator (“darkfish”
or “ri”) and following the given options.
Documentation will be generated into destination
# File lib/rdoc/rubygems_hook.rb, line 106
def document generator, options, destination
  options = options.dup
  options.exclude ||= [] # TODO maybe move to RDoc::Options#finish
  options.setup_generator generator
  options.op_dir = destination
  options.finish
  @rdoc.options = options
  @rdoc.generator = options.generator.new options
  say "Installing #{generator} documentation for #{@spec.full_name}"
  FileUtils.mkdir_p options.op_dir
  Dir.chdir options.op_dir do
    begin
      @rdoc.class.current = @rdoc
      @rdoc.generator.generate @file_info
    ensure
      @rdoc.class.current = nil
    end
  end
end
						Generates RDoc and ri data
# File lib/rdoc/rubygems_hook.rb, line 133
def generate
  return unless @generate_ri or @generate_rdoc
  setup
  ::RDoc::RDoc.reset
  options = ::RDoc::Options.new
  options.default_title = "#{@spec.full_name} Documentation"
  options.files = []
  options.files.concat @spec.require_paths
  options.files.concat @spec.extra_rdoc_files
  args = @spec.rdoc_options
  case config_args = Gem.configuration[:rdoc]
  when String then
    args = args.concat config_args.split
  when Array then
    args = args.concat config_args
  end
  delete_legacy_args args
  options.parse args
  options.quiet = !Gem.configuration.really_verbose
  @rdoc = new_rdoc
  @rdoc.options = options
  Dir.chdir @spec.full_gem_path do
    @file_info = @rdoc.parse_files options.files
  end
  document 'ri',       options, @ri_dir if
    @generate_ri   and (@force or not File.exist? @ri_dir)
  document 'darkfish', options, @rdoc_dir if
    @generate_rdoc and (@force or not File.exist? @rdoc_dir)
end
						Is rdoc documentation installed?
# File lib/rdoc/rubygems_hook.rb, line 184
def rdoc_installed?
  File.exist? @rdoc_dir
end
						Removes generated RDoc and ri data
# File lib/rdoc/rubygems_hook.rb, line 191
def remove
  base_dir = @spec.base_dir
  raise Gem::FilePermissionError, base_dir unless File.writable? base_dir
  FileUtils.rm_rf @rdoc_dir
  FileUtils.rm_rf @ri_dir
end
						Is ri data installed?
# File lib/rdoc/rubygems_hook.rb, line 203
def ri_installed?
  File.exist? @ri_dir
end
						Prepares the spec for documentation generation
# File lib/rdoc/rubygems_hook.rb, line 210
def setup
  self.class.load_rdoc
  raise Gem::FilePermissionError, @doc_dir if
    File.exist?(@doc_dir) and not File.writable?(@doc_dir)
  FileUtils.mkdir_p @doc_dir unless File.exist? @doc_dir
end
						| / | Search | 
|---|---|
| ? | Show this help |