On Sat, Jan 30, 2010 at 6:05 PM, Joe Wangkauf
<tmo1138 / invalid.gmail.domain.com> wrote:

> I found the write up at http://gist.github.com/54177 very interesting.
> In it Ryan states:
>
>> You should never do this in a source file included with your library,
>> app, or tests:
>>
>>   require 'rubygems'
>>
>> The system I use to manage my $LOAD_PATH is not your library/app/tests
>> concern.
>
> Fair enough. However this implies that there are other managers. But
> I really haven't heard of any. Seems like everyone uses Rubygems, and
> now it's part of 1.9. So, if there are other managers, what are they?
> Google doesn't really turf up anything definitive (maybe using the term
> 'rubygems alternatives' was too vague).

Problem is the way software is installed in your users' machine is not
your library's business. Dependencies may be running as vendored gems
in a self-contained application, or installed with apt-get. Maybe the
user fetched them by hand and threw them in some custom place,
whatever.

If your library needs the foo library that is a dependency, and should
require foo to be loadable. But it shouldn't assume foo is going to be
loaded via rubygems and require rubygems itself. Leave that choice to
the client code.