On 2/8/07, Chad Woolley <[EMAIL PROTECTED]> wrote: > On 2/8/07, Eric Hodel <[EMAIL PROTECTED]> wrote: > > So you can run the installer to install it through the API, then re- > > run the file. > > Unfortunately, the devil is in the details, especially with > cross-platform, binary gems. And cross-platform, binary gems that > depend on other cross-platform, binary gems. And the current state of > affairs where the only way to interact with this is via stdout, stderr > and stdin (or the internal RubyGem wrappers for these, which make it > marginally easier, but not much). >
OK, I have to apologize. After reviewing the RubyGems code again, I finally realized the way in which user_interaction.rb was intended to be extended. This is well designed, and makes the job much easier. Before, I was being dumb and trying to override and intercept individual StreamUI methods at the class level. Now I'm going to subclass StreamUI, and provide hooks for stdin queues, and listeners for stdout and stderr. However, there are still some parts of the API which makes automating all RubyGems interaction somewhat error-prone and labor-intensive. For example, if there are any binary gems in a list, I have to manually grep a textual list for verions and platforms (remote_installer.find_gem_to_install). Doing this recursively (for example, mongrel and fastthread) is one of the last problems I'm tackling before I can release. The whole platform issue needs to be resolved soon too (is it 'i386-mswin32' or 'mswin32'?) -- Chad _______________________________________________ Rubygems-developers mailing list Rubygems-developers@rubyforge.org http://rubyforge.org/mailman/listinfo/rubygems-developers