Rake: Ruby’s Built-in Build Utility
We already covered a bit about Rake in the very beginning of this
chapter. I am also quite sure that anyone who would buy this book at least
knows what a Rakefile is and has probably used one before. This toolkit
was initially popular among project maintainers for simplifying package
and documentation generation, but was popularized by Rails as a way to
wrap pretty much any task into something that could be conveniently
triggered on the command line. Although rake
technically is little more than a Ruby
replacement for make
, the flexibility
of configuring it via a general-purpose language such as Ruby has really
made it a powerful tool.
We already covered some of the built-in features of Rake, including
Rake::GemPackageTask
, but let’s take a
look at another one. The following code is what Haml uses to provide a
rake rdoc
task:
Rake::RDocTask.new do |rdoc| rdoc.title = 'Haml/Sass' rdoc.options << '--line-numbers' << '--inline-source' rdoc.rdoc_files.include(*FileList.new('*') do |list| list.exclude(/(^|[^.a-z])[a-z]+/) list.exclude('TODO') end.to_a) rdoc.rdoc_files.include('lib/**/*.rb') rdoc.rdoc_files.exclude('TODO') rdoc.rdoc_files.exclude('lib/haml/buffer.rb') rdoc.rdoc_files.exclude('lib/sass/tree/*') rdoc.rdoc_dir = 'rdoc' rdoc.main = 'README.rdoc' end
Here we see that the options used are very similar to what we
discussed in the previous section about RubyGems. However, once this is
set up, you can simply type rake rdoc
at any time to generate ...
Get Ruby Best Practices now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.