Class: Webgen::WebgenTask

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/webgen/webgentask.rb

Overview

Task library to manage a webgen website.

It is assumed that you have already used the ‘webgen’ command to create the website directory for the site.

Basics

require 'webgen/webgentask'

Webgen::WebgenTask.new

Attributes

The attributes available in the new block are:

directory

the root directory of the webgen site (default Dir.pwd)

config

the config block for setting additional configuration options

clobber_outdir

remove webgens output directory on clobber (default false)

Tasks Provided

The tasks provided are :

webgen

render the webgen website

clobber_webgen

remove all the files created during generation

Integrate webgen in other project

To integrate webgen tasks in another project you can use rake namespaces. For example assuming webgen’s site directory is webgen under the main project directory use the following code fragment in project Rakefile:

require 'webgen/webgentask'

namespace :dev do
  Webgen::WebgenTask.new do |site|
    site.directory = File.join(Dir.pwd, "webgen")
    site.clobber_outdir = true
    site.config_block = lambda |config|
      config['website.lang'] = 'de'
    end
  end
end

task :clobber => ['dev:clobber_webgen']

This will create the following tasks:

  • dev:webgen

  • dev:clobber_webgen

and add dev:clobber_webgen to the main clobber task.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = 'webgen') {|_self| ... } ⇒ WebgenTask

Create webgen tasks. You can override the task name with the parameter name.

Yields:

  • (_self)

Yield Parameters:



114
115
116
117
118
119
120
121
122
123
# File 'lib/webgen/webgentask.rb', line 114

def initialize(name = 'webgen')
  @name           = name
  @directory      = Dir.pwd
  @clobber_outdir = false
  @config_block   = nil

  yield self if block_given?

  define
end

Instance Attribute Details

#clobber_outdirObject

During the clobber, should webgen’s output directory be clobbered. The default is false.



111
112
113
# File 'lib/webgen/webgentask.rb', line 111

def clobber_outdir
  @clobber_outdir
end

#config_blockObject

The configuration block that is invoked when the Webgen::Website object is initialized. This can be used to set configuration parameters and to avoid having a config.yaml file lying around.



108
109
110
# File 'lib/webgen/webgentask.rb', line 108

def config_block
  @config_block
end

#directoryObject

The directory of the webgen website. This would be the directory of your config.yaml file. Or the parent directory of the src/ directory for webgen.

The default for this is assumed to be Dir.pwd



103
104
105
# File 'lib/webgen/webgentask.rb', line 103

def directory
  @directory
end