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.