I have done that and it doesn't get executed at all. My initial code was:

projects.each do |proj|
  proj.compile.enhance do copy_jars_to_lib proj;        end
  task :eclipse do fix_eclipse proj; end
end;


thank you for your time,

Nikos


On Fri, Oct 8, 2010 at 7:34 PM, Alex Boisvert <[email protected]>wrote:

> You mean it doesn't get executed at all?  Or it doesn't work?   You can put
> a trace in your after_define block to check if it gets executed.
>
> Also, for your Eclipse tweak you should depend on the :eclipse extension
> being run first:
>
>  after_define(:fix_eclipse => :eclipse) do |project|
>    ...
>    puts "Fix eclipse called"
>  end
>
> alex
>
>
> On Fri, Oct 8, 2010 at 8:34 AM, Nikos Maris <[email protected]> wrote:
>
> > Now at my buildfile I just require 'tasks/copy_jars_to_lib.rb'
> > and 'tasks/fix_eclipse_files.rb''. Although the compile extension is
> > executed, the eclipse execution doesn't.
> >
> > On Fri, Oct 8, 2010 at 5:08 PM, Alex Boisvert <[email protected]
> > >wrote:
> >
> > > Simplest way to add extensions is to drop them into the "tasks"
> > directory.
> > >  That way, they are required automatically.   (This is the convention
> > over
> > > configuration part).
> > >
> > > Otherwise, you can simply require the extension that the top of your
> > > buildfile, whether it's a gem or a file on your filesystem (in source
> > > control or not).
> > >
> > > To create an extension, simply create a module, include the Extension
> > > module
> > > and mix it in the Project class:
> > >
> > > # Place this file under tasks directory (e.g. tasks/my_extension.rb)
> > > module Buildr
> > >  module CopyJars
> > >    include Extension
> > >
> > >    # called for each project
> > >    after_define(:copy_jars => :compile) do |project|
> > >      copy_jars_to_lib(project)
> > >    end
> > >  end
> > >
> > >  class Project
> > >    include CopyJars
> > >  end
> > > end
> > >
> > > And you can do similarly for your Eclipse task.
> > >
> > > Is that what you had in mind for your refactoring?
> > >
> > > alex
> > >
> > > On Fri, Oct 8, 2010 at 2:33 AM, Nikos Maris <[email protected]>
> wrote:
> > >
> > > > Newbie question: I would like to extend the default behavior of the
> > > compile
> > > > task.
> > > >
> > > > I currently enhance the compile task of all sub-projects with a
> > function
> > > > that takes a project as an argument in order to access methods like
> _()
> > > and
> > > > fields like compile.dependencies :
> > > > projects.each do |proj|
> > > >  proj.compile.enhance do copy_jars_to_lib proj; end
> > > > end
> > > >
> > > > I would like to refactor this code and be able to commit that (e.g.
> > > adding
> > > > an extension at ~/.buildr is not an option).
> > > >
> > > > I would like also to refactor the following code:
> > > > projects.each do |proj|
> > > > task :eclipse do unboundVAR proj; end
> > > > end
> > > >
> > > > thank you for your time,
> > > > Nikos
> > > >
> > >
> >
>

Reply via email to