Although it has only been two weeks since the last release, we have enough updates to the Rake program to make it time for another release.
Here are the changes for version 0.5.3 ...
FileLists have been extensively changed so that they mimic the behavior of real arrays even more closely. In particular, operations on FileLists that return a new collection (e.g. collect, reject) will now return a FileList rather than an array. In addition, several places where FileLists were not properly expanded before use have been fixed.
A method (
ext) to simplify the handling of file extensions was
added to String and to Array.
The 'testrb' script in test/unit tends to silently swallow syntax errors in test suites. Because of that, the default test loader is now a rake-provided script. You can still use 'testrb' by setting the loader flag in the test task to :testrb. (See the API documents for TestTask for all the loader flag values).
FileUtil methods (e.g. cp, mv, install) are now declared to be private. This will cut down on the interference with user defined methods of the same name.
Fixed the verbose flag in the TestTask so that the test code is controlled by the flag. Also shortened up some failure messages. (Thanks to Tobias Luetke for the suggestion).
Rules will now properly detect a task that can generate a source file. Previously rules would only consider source files that were already present.
import command that allows Rake to dynamically import dependendencies into
a running Rake session. The
import command can run tasks to update the dependency file
before loading them. Dependency files can be in rake or make format,
allowing rake to work with tools designed to generate dependencies for
Rake is a build tool similar to the make program in many ways. But instead of cryptic make recipes, Rake uses standard Ruby code to declare tasks and dependencies. You have the full power of a modern scripting language built right into your build tool.
The easiest way to get and install rake is via RubyGems ...
gem install rake (you may need root/admin privileges)
Otherwise, you can get it from the more traditional places:
As usual, it was input from users that drove a alot of these changes. Thanks to ...
Brian Gernhardt for the rules fix (especially for the patience to explain the problem to me until I got what he was talking about).
Stefan Lang for pointing out problems in the dark corners of the FileList implementation.
Alexey Verkhovsky pointing out the silently swallows syntax errors in tests.
Tobias Luetke for beautifying the test task output.
Sam Roberts for some of the ideas behind dependency loading.
-- Jim Weirich