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

Reply via email to