When declaring required gems via build.yml buildr claims the gems in question cannot be located. It seems this is due to use of old rubygems api in util.rb. Currently at line 129 it uses SourceCacheIndex to find gems. This reports that it can't find any gems. I inspected the index files that this command retrieves from the gem servers and this effectively only contains a single gem. I then checked the gem query command source code and it turns out there a newer class, SpecFetcher, is used instead of SourceCacheIndex. A discussion on the rubygems-developers list (http://www.mail-archive.com/[email protected]/msg02087.html) seems to conclude that the SourceCacheIndex stuff should not be used anymore.
I replaced line 129 with a line I derived from the query command source:
remote = dependencies.map{ |dep| Gem.source_index.search(dep).last || Gem::SpecFetcher.fetcher.fetch( dep, true ).map{ |spec, source| spec }.last }
After this change gem searching and retrieval works correctly.

So, should the gem autoinstallation stuff be updated?

Pepijn

Reply via email to