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