I definitely considered that direction, and even got it mostly-
working, but then I started having problems with my test cases.

I was writing tests that unpack the actual tarball and found that my
tests now had a dependency on a successful build, but I couldn't get a
successful build unless my tests passed! :-(

I recognize that this is a simple problem and could be fixed by
packing up the tarball in the test_helper or setup methods, but then
it felt like I was violating dry principles by putting my packing
logic (more importantly - the file selection) into the rake file *and*
into my test cases. I wanted to verify that the actual templates being
shipped in the gem are in fact what we're testing against, and I'd
like the test cases stay up to date if our inclusion globs change over
time...

This also puts another dependency into my gem and I was hoping to
minimize those external dependencies.

It just feels like I'm missing some simple setting in the gem package
task...

Something like:
prune_empty_directories = false

Another reason I don't want to tar them up, is because I'm optionally
duplicating them into user_home and/or project_home, and I would
prefer not to have different copy logic when they come out of
gem_home, and it's essential that users can easily modify these
templates when they're placed into those other two locations - so they
can't be tarred up in there.

The final reason it felt strange to tar the templates was simply
because my understanding is that gem is already tarring everything up,
so shouldn't I just be able to get that one working?

> Um. I'm not sure that's what you want to do. Why not consider
> approaching this from a slightly different perspective? Make a .tar.gz
> file that gets deployed with your other files and then use
> Archive::Tar::Minitar to unpack it on the fly (Ruwiki does this) and
> render with ERB as usual. Archive::Tar::Minitar can easily handle this
> on both ends and you don't need to try to trick RubyGems.

Thanks for the response.


Luke
www.asunit.org