Class: Rote::DocTask

Inherits:
Rake::TaskLib
  • Object
show all
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

Instance Method Summary collapse

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.

Yields:

  • (_self)

Yield Parameters:

  • _self (Rote::DocTask)

    the object that the method was called on



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_dirObject 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_mappingsObject (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_dirObject

Base directories used by the task.



130
131
132
# File 'lib/rote/rotetasks.rb', line 130

def layout_dir
  @layout_dir
end

#monitor_intervalObject

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

#nameObject (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

#pagesObject (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

#resObject (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_tasksObject 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