Rubygems is cool.
I like the versioning of libraries, but I
particularly like the versioning of applications.
For example:

  $ gem list --local rake

  *** LOCAL GEMS ***

  rake (0.4.15, 0.4.14, 0.4.13)
      Ruby based make-like utility.

  $ rake --version
  rake, version 0.4.15
  $ rake _0.4.13_ --version
  rake, version 0.4.13

This 'coolness' needs one added feature to
make it complete. That is the ability to 
specify an app version in some way other than
the command line.

This need arises most often when I am calling
an app from a script and I want to test the
result with different versions of the app.
For example:

===some complicated script===
  ...
  xyz_app # one of many app calls inside the script
  ...
===end some complicated script===

Let's suppose I am testing revision 1 and 2 of xyz_app.
I can see two ways that an end user could control which
app is called. 1) environment variable and 2) resource file.

1) 
   setenv RUBYGEMS_USE_APP_VERSION_xyz_app 1
   ...run script # equivalent to xyz_app _1_
   setenv RUBYGEMS_USE_APP_VERSION_xyz_app 2
   ...run script # equivalent to xyz_app _2_

or)
   app_versions:
     xyz_app: 1
     rake: 0.4.13

   Sorry, I don't know what a .gemrc file looks like
   but you get the idea.

So, what do you think?

-- 
Jim Freeze
Code Red. Code Ruby