Hi,
during the mails exchange with Seth, I discovered my PPCShoes weren't able
to use gems, and now I wanted to build a lil app depending on some shiny
gems I started peeking under the Shoes vamp to see what was wrong.

I really liked the process: I finally learned (or get a glimpse of it) how
Rubygems works and I saw some good hacks (why, I love the Shoes.setup code).

on a sidenote, maybe I'm the latest one here to realize that, but using
expert-irb.rb you have access to everything in shoes: I used it extensively
to run Shoes.setup do ..... and see what shoes was throwing at me.

Enough talk, why, I think I found some bugs, I hope it'll help you somehow:

in Shoes::Setup within the gem method, you filter gem "hpricot" or gem
"sqlite3-ruby"
unfortunately this doesn't cover the attempt to install those gems trough
dependencies:

Shoes.setup do
gem "twitter"
end

doesn't work because it tries to compile hpricot (and it fails miserably
while looking for stdio.h). I did discover this through the example-irb
looking at the error messages in the console. I did not realize it was
hpricot because @status in the Shoes setup dialog was too fast changing.

In the first attached patch I just start logging the messages from
Shoes.setup to the console.

As for trying to rule out hpricot (I did all my trials with hpricot, sorry
sqlite) even from the dependencies, I tried hacking rubygems directly:

I modified rubygems/dependency_installer.rb and rubygems/installer.rb and
afterwards all my hpricot depending gems installed without a fuss. even on a
PPC.
* (on linux the bug doesn't exist) *

I don't share the 3 lines of code 'cause I don't like this solution and
moreover it doesn't work :)

the gems are installed neverthless, but this code

Shoes.setup do
gem "twitter"
end

require "twitter"

fails at the require saying "hpricot" is required and missing. Oddly enough,
hpricot-only depending apps don't flinch at all (I tried with my domokun
one).
I think when a gem requires hpricot the check it's made only in the GEM_DIR
thus failing.

Obviously in Linux this bug doesn't exist at all (because hpricot is builded
correctly).

IMHO here we have 2 solutions: either fix the compilation of hpricot under
mac (I don't like it so much) or fake the presence of hpricot inside the
shoes's gem folder for all the so demanding gems.

what do you think?

Last patch is a feature request for source:
what about

Shoes.setup do
source "http://gems.github.com";
gem "james-ruminant"
end

james-ruminant is the one I was trying ;) Unfortunately surce works out of
the box, but it erases the previous sources... I wanted to _add_ a source,
hence the patch.

Since I don't know if you like either of them I split them in 2 files so you
can apply only the one you decide to..

long mail, sorry...
Emanuel

Attachment: 0001-Infos-will-be-added-to-the-console-tracking-gems-ins.patch
Description: Binary data

Attachment: 0002-source-uri-now-temporary-adds-a-source-url-to-the-ru.patch
Description: Binary data

Reply via email to