--y0ulUmNC+osPPQO6
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Josh Cheek:

> On Sat, Jan 30, 2010 at 2:32 PM, Shot
> (Piotr Szotkowski) <shot / hot.pl> wrote:

>> Josh Cheek:

>>> I wonder how many people _don't_ use rubygems. What creates more
>>> work, requiring rubygems so that people who don't want it don't have
>>> to use it, or not requiring rubygems so that people who do want it
>>> have to keep putting -rubygems when they load files?

>> Ruby 1.9 has RubyGems built-in, and for the legacy version you can
>> simply add -rubygems to your RUBY_OPTS and be done with the problem.

> I don't have 1.9, but this sounds like it requires rubygems
> automatically, which seems to contradict what several people
> earlier have said we should do.

I think what most of us (can=E2=80=99t really say for others, though) want =
to
say is this: if you=E2=80=99re creating a library, don=E2=80=99t =E2=80=98r=
equire 'rubygems'=E2=80=99
if all you use them for is to make =E2=80=98require 'some-other-lib'=E2=80=
=99 work
automagically. This is because there are cases where people want to
manage their libraries outside RubyGems, and by requiring them you add
a dependency that is simply not needed in their case.

If your lib is to be used by third party applications, their authors
will take care of satisfying your lib=E2=80=99s dependencies; if you want to
provide an executable wrapper that utilises your library, make the
wrapper=E2=80=99s code intelligent enough to look for the dependencies (e.g.
by doing the LoadError tango before it says that its dependencies cannot
be satisfied).

> For example, the original post quotes "The system I use to
> manage my $LOAD_PATH is not your library/app/tests concern."

Yes, and this is what I mean above.

> If I understand what you have said, it sounds like the
> language has done what they are saying that we should not do.

Ruby 1.9 did what is convenient, and (I=E2=80=99m guessing here) to promote
wider RubyGems adoption, but I still believe you shouldn=E2=80=99t assume
RubyGems presence (especially if you want to be nice to stripped-down
embedded systems, for example).

What I meant by the =E2=80=981.9 does this for you anyway, and in 1.8 you c=
an
adjust RUBY_OPTS once and be done with it=E2=80=99 comment was to provide t=
he
solution to the problem of =E2=80=98it=E2=80=99s inconvenient for me to use=
 libraries
that do not =E2=80=9Crequire 'rubygems'=E2=80=9D, because I need to explici=
tely require
them myself=E2=80=99. That said, I do agree with James Britt that putting a=
ny -r
switches in RUBY_OPTS feels bad to me (but then I don=E2=80=99t mind requir=
ing
RubyGems myself where needed =E2=80=93 *and* I try hard to use Ruby 1.9 any=
way).

=E2=80=94 Shot
--=20
I should like to find the person who decided that since
=E2=80=98bookmarks=E2=80=99 and =E2=80=98history=E2=80=99 were both lists o=
f URLs they
ought to be integrated in a single database. I should like
to shake him warmly by the throat until his head comes off.
             [Roger Burton West on Firefox, hates-software]

--y0ulUmNC+osPPQO6
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAktlUJcACgkQi/mCfdEo8UrSQwCbBLdWZrkgDBFFDV6wv6hv/xWK
jhMAoJ0mkGEDQ3/LDIAPfn4da3MdJEtl
=6hTa
-----END PGP SIGNATURE-----

--y0ulUmNC+osPPQO6--