class RDoc::Task
RDoc::Task
创建以下 rake 任务来生成和清理 RDoc
输出
- rdoc
-
此
RDoc
任务的主要任务。 - clobber_rdoc
-
删除所有 rdoc 文件。此目标会自动添加到主 clobber 目标。
- rerdoc
-
从头开始重建 rdoc 文件,即使它们不是过时的。
- rdoc:coverage
-
打印所有 rdoc 文件的
RDoc
覆盖率报告。
简单示例
require 'rdoc/task' RDoc::Task.new do |rdoc| rdoc.main = "README.rdoc" rdoc.rdoc_files.include("README.rdoc", "lib/**/*.rb") end
传递给块的 rdoc
对象是一个 RDoc::Task
对象。有关可用的自定义选项,请参见 RDoc::Task
类的属性列表。
指定不同的任务名称¶ ↑
您可能希望为该任务指定不同的名称,例如,如果要生成两组文档。例如,如果您想拥有一个包含私有方法的开发文档集
require 'rdoc/task' RDoc::Task.new :rdoc_dev do |rdoc| rdoc.main = "README.rdoc" rdoc.rdoc_files.include("README.rdoc", "lib/**/*.rb") rdoc.options << "--all" end
那么这些任务的名称将为:rdoc_dev、:clobber_rdoc_dev 和 :rerdoc_dev。
如果您希望拥有完全不同的任务名称,请将 Hash 作为第一个参数传递。使用 :rdoc
、:clobber_rdoc
和 :rerdoc
选项,您可以根据自己的喜好自定义任务名称。
例如
require 'rdoc/task' RDoc::Task.new(:rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force")
这将创建任务 :rdoc
、:rdoc:clean
、:rdoc:force
和 :rdoc:coverage
。
属性
是否将 rdoc 进程作为外部 shell 运行(默认为 false)
rdoc 使用的格式生成器(--format
)的名称。(默认为 rdoc 的默认值)
用作 RDoc
的主要顶层文件的文件名。(默认为无)
标记格式;以下之一:rdoc
(默认)、markdown
、rd
、tomdoc
。请参阅 标记格式。
主要顶层任务的名称。(默认为:rdoc)
要传递给 rdoc 的其他选项列表。(默认为 [])
接收 html 输出文件的目录名称。(默认为 “html”)
要包含在 rdoc 生成中的文件列表。(默认为 [])
rdoc 使用的模板名称。(默认为 rdoc 的默认值)
RDoc
文档的标题。(默认为 rdoc 的默认值)
公共类方法
使用给定的名称创建一个 RDoc
任务。有关文档,请参阅 RDoc::Task
类概述。
# File rdoc/task.rb, line 157 def initialize name = :rdoc # :yield: self defaults check_names name @name = name yield self if block_given? define end
公共实例方法
此方法传递的块将在运行 RDoc
生成器之前调用。允许在块内修改 RDoc::Task
属性。
# File rdoc/task.rb, line 287 def before_running_rdoc(&block) @before_running_rdoc = block end
确保 names
仅包含 :rdoc、:clobber_rdoc 和 :rerdoc 的名称。如果给出了其他名称,则会引发 ArgumentError。
# File rdoc/task.rb, line 173 def check_names names return unless Hash === names invalid_options = names.keys.map { |k| k.to_sym } - [:rdoc, :clobber_rdoc, :rerdoc] unless invalid_options.empty? then raise ArgumentError, "invalid options: #{invalid_options.join ', '}" end end
clobber rdoc 任务或其重命名等效项的 Task
描述
# File rdoc/task.rb, line 187 def clobber_task_description "Remove RDoc HTML files" end
覆盖率任务或其重命名描述的 Task
描述
# File rdoc/task.rb, line 308 def coverage_task_description "Print RDoc coverage report" end
设置默认任务值
# File rdoc/task.rb, line 194 def defaults @name = :rdoc @rdoc_files = Rake::FileList.new @rdoc_dir = 'html' @main = nil @title = nil @template = nil @generator = nil @options = [] end
创建此任务库定义的任务。
# File rdoc/task.rb, line 223 def define desc rdoc_task_description task rdoc_task_name desc rerdoc_task_description task rerdoc_task_name => [clobber_task_name, rdoc_task_name] desc clobber_task_description task clobber_task_name do rm_r @rdoc_dir rescue nil end task :clobber => [clobber_task_name] directory @rdoc_dir rdoc_target_deps = [ @rdoc_files, Rake.application.rakefile ].flatten.compact task rdoc_task_name => [rdoc_target] file rdoc_target => rdoc_target_deps do @before_running_rdoc.call if @before_running_rdoc args = option_list + @rdoc_files $stderr.puts "rdoc #{args.join ' '}" if Rake.application.options.trace RDoc::RDoc.new.document args end namespace rdoc_task_name do desc coverage_task_description task coverage_task_name do @before_running_rdoc.call if @before_running_rdoc opts = option_list << "-C" args = opts + @rdoc_files $stderr.puts "rdoc #{args.join ' '}" if Rake.application.options.trace RDoc::RDoc.new.document args end end self end
将提供给 RDoc
的选项列表
# File rdoc/task.rb, line 271 def option_list result = @options.dup result << "-o" << @rdoc_dir result << "--main" << main if main result << "--markup" << markup if markup result << "--title" << title if title result << "-T" << template if template result << '-f' << generator if generator result end
rdoc 任务或其重命名等效项的 Task
描述
# File rdoc/task.rb, line 294 def rdoc_task_description 'Build RDoc HTML files' end
rerdoc 任务或其重命名描述的 Task
描述
# File rdoc/task.rb, line 301 def rerdoc_task_description "Rebuild RDoc HTML files" end
私有实例方法
# File rdoc/task.rb, line 325 def clobber_task_name case name when Hash then (name[:clobber_rdoc] || "clobber_rdoc").to_s else "clobber_#{name}" end end
# File rdoc/task.rb, line 339 def coverage_task_name "coverage" end
# File rdoc/task.rb, line 314 def rdoc_target "#{rdoc_dir}/created.rid" end
# File rdoc/task.rb, line 318 def rdoc_task_name case name when Hash then (name[:rdoc] || "rdoc").to_s else name.to_s end end
# File rdoc/task.rb, line 332 def rerdoc_task_name case name when Hash then (name[:rerdoc] || "rerdoc").to_s else "re#{name}" end end