Credit: Stefan Lang
Every project's Rakefile is different, but most Ruby projects can be handled by very similar Rakefiles. To close out the chapter, we present a generic Rakefile that includes most of the tasks covered in this chapter, and a few (such as compilation of C extensions) that we only hinted at.
This Rakefile will work for pure Ruby projects, Ruby projects with
C extensions, and projects that are only C
extensions. It defines an overarching task called
publish that builds the project, runs tests,
generates RDoc, and releases the whole thing on Ruby-Forge. It's a big
file, but you don't have to use all of it. The
publish task is made entirely of smaller
tasks, and you can pick and choose from those smaller tasks to build
your own Rakefile. For a simple project, you can just customize the
settings at the beginning of the file, and ignore the rest. Of course,
you can also extend this Rakefile with other tasks, like the
stats task presented in Recipe 19.5.
This Rakefile assumes that you follow the directory layout
conventions laid down by the
script, even if you don't actually use
setup.rb to install your project. For instance, it assumes you put your Ruby files
lib/ and your unit tests in
First, we include Rake libraries that make it easy to define certain kinds of tasks:
# Rakefile require "rake/testtask" require "rake/clean" require "rake/rdoctask" require "rake/gempackagetask"
You'll need to configure these variables: ...