Class: Rote::DocTask
- Inherits:
-
Rake::TaskLib
- Object
- Rake::TaskLib
- Rote::DocTask
- Defined in:
- lib/rote/rotetasks.rb
Overview
Rake task library that provides a set of tasks to transform documentation using Rote. To use, create a new instance of this class in your Rakefile, performing appropriate configuration in a block supplied to new
. This will automatically register a set of tasks with names based on the name you supply. The tasks defined are:
#{name} - Transform all documentation, copy resources.
#{name}_pages - Transform all pages
#{name}_res - Copy resources
#{name}_monitor - Start watching for changes
#clobber_{name} - Remove output
Constant Summary collapse
- DEFAULT_SRC_EXCLUDES =
Default exclusion patterns for the page sources. These are applied along with the defaults from
FileList
. [ /\.rb$/, /\.rf$/ ]
Instance Attribute Summary collapse
-
#default_output_dir ⇒ Object
(also: #output_dir)
Base directories used by the task.
-
#ext_mappings ⇒ Object
readonly
Ordered
ExtHash
that supplies mappings between input and output file extensions. -
#layout_dir ⇒ Object
Base directories used by the task.
-
#monitor_interval ⇒ Object
The approximate number of seconds between update checks when running monitor mode (Default: 1).
-
#name ⇒ Object
readonly
The base-name for tasks created by this instance, supplied at instantiation.
-
#pages ⇒ Object
readonly
Globs for the
FileList
that supplies the pages to transform. -
#res ⇒ Object
readonly
Globs for the
FileList
that supplies the resources to copy. -
#show_file_tasks ⇒ Object
(also: #show_file_tasks?, #show_page_tasks?)
If
show_page_tasks
istrue
, then the file tasks created for each output file will be shown in the Rake task listing from the command line.
Instance Method Summary collapse
-
#ext_mapping(match, extension, output_dir = self.default_output_dir, &block) ⇒ Object
Define an extension mapping for the specified regex, which will be replaced with the specified extension.
-
#initialize(name = :doc) {|_self| ... } ⇒ DocTask
constructor
Create a new DocTask, using the supplied block for configuration, and define tasks with the specified base-name within Rake.
Constructor Details
#initialize(name = :doc) {|_self| ... } ⇒ DocTask
Create a new DocTask, using the supplied block for configuration, and define tasks with the specified base-name within Rake.
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
# File 'lib/rote/rotetasks.rb', line 188 def initialize(name = :doc) # :yield: self if block_given? @name = name @output_dir = '.' @pages = FilePatterns.new('.') @res = FilePatterns.new('.') @monitor_interval = 1 @ext_mappings = ExtHash.new @show_page_tasks = false DEFAULT_SRC_EXCLUDES.each { |excl| @pages.exclude(excl) } yield self if block_given? define end |
Instance Attribute Details
#default_output_dir ⇒ Object Also known as: output_dir
Base directories used by the task.
130 131 132 |
# File 'lib/rote/rotetasks.rb', line 130 def default_output_dir @default_output_dir end |
#ext_mappings ⇒ Object (readonly)
Ordered ExtHash
that supplies mappings between input and output file extensions. Keys are regexps that are matched in order against the search key.
The values are [extension, ({ |page| …}), out_dir] . If a mapping has a block, it is executed when pages with a matching extension are, instantiated (before common and page code). It can be used to apply filters, for example, on a per-extension basis.
159 160 161 |
# File 'lib/rote/rotetasks.rb', line 159 def ext_mappings @ext_mappings end |
#layout_dir ⇒ Object
Base directories used by the task.
130 131 132 |
# File 'lib/rote/rotetasks.rb', line 130 def layout_dir @layout_dir end |
#monitor_interval ⇒ Object
The approximate number of seconds between update checks when running monitor mode (Default: 1)
184 185 186 |
# File 'lib/rote/rotetasks.rb', line 184 def monitor_interval @monitor_interval end |
#name ⇒ Object (readonly)
The base-name for tasks created by this instance, supplied at instantiation.
127 128 129 |
# File 'lib/rote/rotetasks.rb', line 127 def name @name end |
#pages ⇒ Object (readonly)
Globs for the FileList
that supplies the pages to transform. You should configure the pages_dir
and include
at least one entry here. (you may add exclude
strings or regexps, too). Patterns added are made relative to the pages_dir
and added to a FileList once init is complete.
140 141 142 |
# File 'lib/rote/rotetasks.rb', line 140 def pages @pages end |
#res ⇒ Object (readonly)
Globs for the FileList
that supplies the resources to copy. You should configure the layout_dir
and include
at least one entry here (you may add exclude
strings or regexps, too).
This is not a FileList
- the patterns supplied to this are used with the base-directory specified to construct an appropriate FileList
.
149 150 151 |
# File 'lib/rote/rotetasks.rb', line 149 def res @res end |
#show_file_tasks ⇒ Object Also known as: show_file_tasks?, show_page_tasks?
If show_page_tasks
is true
, then the file tasks created for each output file will be shown in the Rake task listing from the command line.
174 175 176 |
# File 'lib/rote/rotetasks.rb', line 174 def show_file_tasks @show_file_tasks end |
Instance Method Details
#ext_mapping(match, extension, output_dir = self.default_output_dir, &block) ⇒ Object
Define an extension mapping for the specified regex, which will be replaced with the specified extension. If a block is supplied it will be called with each matching Page
as it’s created.
Extension mappings also allow the output directory to be specified on a per-extension basis. If no output directory is specified, the default output directory is used.
168 169 170 |
# File 'lib/rote/rotetasks.rb', line 168 def ext_mapping(match, extension, output_dir = self.default_output_dir, &block) @ext_mappings[match] = [extension,block,output_dir] end |