[Rubygems-developers] Specifying equivalent modules?

Marcus Rueckert darix at web.de
Wed Apr 18 06:36:52 EDT 2007

On 2007-04-18 00:35:25 -0400, Jim Weirich wrote:
> On 4/17/07, Charles Oliver Nutter <charles.nutter at sun.com> wrote:
> > Is there a way in RubyGems today to specify that one of a number of
> > modules would be considered equivalent, and to load whichever is
> > actually present? So that during install, options could be presented for
> > multiple named gems that provide the same functionality?
> Would it work to just make platform dependent variants of the gems in
> question? Currently, RubyGems will make you manually choose the right
> platform (future versions will autoselect the correct platform for
> you).
> Allowing a user to specify an "equivalent" gem is an interesting idea.
>  I would not like to see it at gem definition time tho, I would rather
> have it happen at installation time.  But what would constitute
> equivalent?  Gems works pretty hard at keeping versions correct in
> dependencies.  Would equivalent gems have to have synchronized
> versions, or would we specify that version 1.0 of JXxxx is equivalent
> to version 2.3 of RXxxx?  That could get confusing quickly.

rpm allows you to use "Provides" for such problems:
so JXxxx.rpm would have "Provides: RXxxx = 2.3".
By default every package provides its "name = version-release".
(the version-release string can be matched partially)

so another gem/rpm would have "Requires: RXxxx = 2.3" and the
installer/package manager would offer you to install one of them

maybe that could be done with gem too.


           openSUSE - SUSE Linux is my linux
               openSUSE is good for you

More information about the Rubygems-developers mailing list