[Rake-devel] backwards dependency?
jim at weirichhouse.org
Sat Feb 10 14:40:26 EST 2007
> I'm confused. I'm trying to alter the dependencies of a premade rake
> task, and while it accepts it, it's actully running the dependcy after
> the task rather than before it. With this:
> Rake::GemPackageTask.new(spec) do |pkg|
> # Don't show the clobber task, just always clobber when
> # creating packages. Maybe in future ask to make sure.
> Rake::Task['clobber_package'].comment = nil
> Rake::Task['repackage'].comment = nil
> task :package => [:clobber_package]
> Shouldn't it invoke clobber_package BEFORE package? I ran it with --
> trace and it's clearly doing the opposite. What's up?
It does. But the package task body is entirely empty. So after it has
satisfied all of its other dependencies (which do the work of building
the packaages), then it invokes its last dependency (your
clobber_package). Finally it runs the body (which is empty).
The trick is to get clobber_package to be first in the list of package's
dependencies. Just move the task :package line to be before the
creation of the Rake::GemPackageTask.
-- Jim Weirich jim at weirichhouse.org http://onestepback.org
-- In theory, practice and theory are the same.
-- In practice, they are different.
More information about the Rake-devel