I see, it makes sense. Well, obviously you are trying to push Buildr a bit by trying to use it for non-Maven repository uses.
Here are the options I can think of: -use a different task name to push gems -extend the upload/install tasks by enhancing them - the gem will still be deployed in the maven repo, plus where you want to push it. -maybe create a module like ActAsArtifact and extend the task in a after_define block ? That might work. On Wed, Feb 10, 2010 at 09:35, Pepijn Van Eeckhoudt < [email protected]> wrote: > Hi Antoine, > > Rereadig my mail, I realize that I should have provided a bit more context > (and sorry for the double message BTW). > > My buildfile essentially contains something like this: > > define 'my-extension' do > package(:gem) > end > > package will call pacakge_as_gem which in turn will create a > PackageGemTask. PackageGemTask has it's own install/uninstall/upload > implementations. package then takes the PackageGemTask instance and extends > it with ActsAsArtifact which overrides install/uninstall/upload from > PackageGemTask. The net effect of this is that PackageGemTask#install is > never called. > > Given that observation I was wondering how to fix this and if it is > possible in the first place. In other words, it is possible for a package to > provide it's own versions of the methods defined in ActsAsArtifact. > > Regards, > > Pepijn > > > On 10/2/2010 18:15, Antoine Toulme wrote: > >> Hi Pepjin, >> >> to package a buildr extension you typically don't need to use Buildr >> itself. >> You can create a .gemspec file, then do: >> >> gem build gem.gemspec >> gem push gem-1.0.gem >> >> I might be missing something, but really the line you point at is not >> related to gem building and is very important in Buildr - it helps Buildr >> know how to handle packages as artifacts, so where to upload them for >> example. >> >> Thanks, >> >> Antoine >> >> >> On Wed, Feb 10, 2010 at 01:54, Pepijn Van Eeckhoudt< >> [email protected] >> >>> wrote: >>> >> >> Hi, >>> >>> I'm trying to package a buildr extension as a gem so I can distribute it >>> more easily. It seems the PackageGemTask#install method is never called >>> though. >>> >>> I'm kind of new to Ruby so I'm not 100% sure what's going on, but I think >>> line 173 in buildr/packaging/package.rb ('package.extend ActsAsArtifact') >>> is >>> to blame. By extending the package object with ActsAsArtifact, the >>> install, >>> uninstall and upload methods get overridden and so the Gem specific >>> variants >>> are never invoked. >>> >>> I would like to patch this, but I'm not sure what would be the best way >>> would be to resolve this? Is there some Ruby idiom that would allow this? >>> >>> Regards, >>> >>> Pepijn Van Eeckhoudt >>> >>> >> > > -- > Pepijn Van Eeckhoudt - Project Leader > T +32 16 23 95 91 > F +32 16 29 34 22 | [email protected] > > LUCIAD - high performance visualization > Wetenschapspark Arenberg | Gaston Geenslaan 9 > 3001 Leuven | Belgium | www.luciad.com > >
