Thanks for your help, I'm running into some behaviour that seems a bit
counter-intuitive.
So if I define my extension like so, trivially just to make the upload
task puts 'hello'
module MyDeployer
include Extension
after_define do |project|
project.task("upload").clear_actions
project.task :upload do
puts "hello"
end
end
end
class Buildr::Project
include MyDeployer
end
I end up with:
<snip>
Deploying packages from skippy_1b
hello
Buildr aborted!
Don't know where to upload, perhaps you forgot to set repositories.release_to
</snip>
However if I take out the 'project.task("upload").clear_actions' I
only then get:
<snip>
Deploying packages from skippy_1b
Buildr aborted!
Don't know where to upload, perhaps you forgot to set repositories.release_to
</snip>
One of the things about just redefining the task as in using
'project.task :upload' is that I'd like to remove the default upload
behaviour. That is I'd like to completely override it rather than
enhance it.
Thanks a lot,
Danny.
Daniel Spiewak writes:
> What if you just do...
>
> after_define do |project|
> project.task :upload do
> ...
> end
> end
>
> Remember that the 'upload' task is defined within each project; it only *
> seems* to be a namespace-global task.
>
> Daniel
>
> On Wed, Jul 1, 2009 at 2:04 PM, Danny O'Connor
> <[email protected]>wrote:
>
> >
> > Hi there,
> >
> > I'm trying to override a biuldr default task and wondering what is the
> > easiest way.
> >
> > So for example I want to override the 'upload' task for all projects.
> >
> > I'm trying this in an Extension
> >
> > after_define do |project|
> > Rake::Task['upload'].clear_actions
> >
> > Rake::Task['upload'].enhance ...
> >
> >
> > But it doesn't seem to be working, I still get the default upload
> > behaviour.
> >
> > Thanks in advance,
> > Danny.
> >