Create a documentation task that will generate the RDoc files for a project.
The RDocTask will create the following targets:
- rdoc
- Main task for this RDOC task.
- :clobber_rdoc
- Delete all the rdoc files. This target is automatically added to the main clobber target.
- :rerdoc
- Rebuild the rdoc files from scratch, even if they are not out of date.
Simple Example:
Rake::RDocTask.new do |rd| rd.main = "README.rdoc" rd.rdoc_files.include("README.rdoc", "lib/**/*.rb") end
You may wish to give the task a different name, such as if you are generating two sets of documentation. For instance, if you want to have a development set of documentation including private methods:
Rake::RDocTask.new(:rdoc_dev) do |rd| rd.main = "README.doc" rd.rdoc_files.include("README.rdoc", "lib/**/*.rb") rd.options << "--all" end
The tasks would then be named :rdoc_dev, :clobber_rdoc_dev, and :rerdoc_dev.
Methods
Attributes
[RW] | external | Run the rdoc process as an external shell (default is false) |
[RW] | main | Name of file to be used as the main, top level file of the RDoc. (default is none) |
[RW] | name | Name of the main, top level task. (default is :rdoc) |
[RW] | options | List of options to be passed rdoc. (default is []) |
[RW] | rdoc_dir | Name of directory to receive the html output files. (default is "html") |
[RW] | rdoc_files | List of files to be included in the rdoc generation. (default is []) |
[RW] | template | Name of template to be used by rdoc. (default is ‘html’) |
[RW] | title | Title of RDoc documentation. (default is none) |
Public Class methods
Create an RDoc task named rdoc. Default task name is rdoc.
[ show source ]
# File lib/rake/rdoctask.rb, line 71 71: def initialize(name=:rdoc) # :yield: self 72: @name = name 73: @rdoc_files = Rake::FileList.new 74: @rdoc_dir = 'html' 75: @main = nil 76: @title = nil 77: @template = 'html' 78: @external = false 79: @options = [] 80: yield self if block_given? 81: define 82: end
Public Instance methods
Create the tasks defined by this task lib.
[ show source ]
# File lib/rake/rdoctask.rb, line 85 85: def define 86: if name.to_s != "rdoc" 87: desc "Build the RDOC HTML Files" 88: end 89: 90: desc "Build the #{name} HTML Files" 91: task name 92: 93: desc "Force a rebuild of the RDOC files" 94: task paste("re", name) => [paste("clobber_", name), name] 95: 96: desc "Remove rdoc products" 97: task paste("clobber_", name) do 98: rm_r rdoc_dir rescue nil 99: end 100: 101: task :clobber => [paste("clobber_", name)] 102: 103: directory @rdoc_dir 104: task name => [rdoc_target] 105: file rdoc_target => @rdoc_files + [$rakefile] do 106: rm_r @rdoc_dir rescue nil 107: args = option_list + @rdoc_files 108: if @external 109: argstring = args.join(' ') 110: sh %{ruby -Ivendor vender/rd #{argstring}} 111: else 112: require 'rdoc/rdoc' 113: RDoc::RDoc.new.document(args) 114: end 115: end 116: self 117: end
[ show source ]
# File lib/rake/rdoctask.rb, line 119 119: def option_list 120: result = @options.dup 121: result << "-o" << @rdoc_dir 122: result << "--main" << quote(main) if main 123: result << "--title" << quote(title) if title 124: result << "-T" << quote(template) if template 125: result 126: end
[ show source ]
# File lib/rake/rdoctask.rb, line 136 136: def option_string 137: option_list.join(' ') 138: end
[ show source ]
# File lib/rake/rdoctask.rb, line 128 128: def quote(str) 129: if @external 130: "'#{str}'" 131: else 132: str 133: end 134: end