Is there a way to 'unload' a script/module/class?

I’ve got a Ruby script that acts as a ‘launcher’ of sorts for a C++
program of mine.
The C++ program starts the ruby script, then communicates with it
through a TCP/IP socket.
One of the things it can do is tell the Ruby script to load a specific
Ruby script (via ‘require’) and call a method of a known class name that
will be defined within that file.
It all works great, but the only problem is, if the user wants to change
that ‘called’ script, then the changes will never be picked up since the
’launcher’ script will only load that
Script once (via the require).

Is there a way to effectively ‘unload’ a class so that a subsequent
require will cause it to be reloaded (with any new changes that have
been made) ?

Thanks,
Patrick Bennett

One of the things it can do is tell the Ruby script to load a specific
Ruby script (via 'require') and call a method of a known class name that

use 'load' rather than 'require'

Guy Decoux