Ruby Gem question, updating a gem of a called procedure

How does one control Gem when it is a gem of a called procedure that
is being enhanced. The gem to be enhanced has been checked out and I
would like to unit test it, but the called procedure contains a gem
statement. Specifically:

Primary procedure does this:

gem ‘CmsStandards’
require ‘CmsStandards’
require ‘Project’
gem ‘CmsPresort’
require ‘CmsPresort’
require ‘PresortSummaryReport’

The secondary procedure is in the CmsPresort gem, and the
CmsPresort.rb header looks like this:

require ‘fileutils’
require ‘Date’
require ‘rubygems’
require ‘zip/zip’
gem ‘CmsStandards’
require ‘CmsStandards’
require ‘Project’
require ‘ChgTable’
gem ‘FirstLogicTemplate’
require ‘FirstLogicTemplate’

It is the FirstLogicTemplate gem that is being enhanced. It is
“checked out” into a test area; it is the only thing checked out. It
is the only thing I want checked out. But gem will load it from the
gem library. Correct?

How does one communicate that the FirstLogicTemplate should be loaded
from a test library before it is loaded from a production gem library?

Any and all Gem advice will be appreciated. I do not understand how I
can setup Gem to permit a more traditional library check in/check out
for development, test, and production.

dvn

dkmd_nielsen wrote:

Primary procedure does this:

gem ‘CmsStandards’
require ‘CmsStandards’
require ‘Project’
gem ‘CmsPresort’
require ‘CmsPresort’
require ‘PresortSummaryReport’

You can actually drop all of the gem statement in the above code (and
the other example as well). You only need to use the gem statement if
you wish to load a non-default version of the gem.

[…] But gem will load it from the
gem library. Correct?

A gem is only “activated” (i.e. moved into the Ruby load path) if it
contains a required file that is not normally found. Just make sure
your test version is available in the load path and the gem will never
be activated. I test my libraries in this manner all the time.

– Jim W.