to bring a library module into your
Ruby program. Some of these modules are supplied with Ruby, some you
installed off the Ruby Application Archive, and some you wrote
yourself. How does Ruby find them?
When Ruby is built for your particular machine, it predefines a set
of standard directories to hold library stuff. Where these are
depends on the machine in question. You can
determine this from the command line with something like:
On a typical Linux box, you'll probably find something such as:
directories are intended to hold modules and extensions that
The architecture-dependent directories (
in this case) hold executables and other things specific to this
particular machine. All these directories are automatically included
in Ruby's search for modules.
Sometimes this isn't enough. Perhaps you're working on a large project
written in Ruby, and you and your colleagues have built a substantial
library of Ruby code. You want everyone on the team to have access to
all of this code. You have a couple of options to accomplish this. If
your program runs at a safe level of zero (see
Chapter 20 beginning on page 253),
you can set the environment variable
to a list of one or more directories to be
searched.[The separator between entries depends on your
platform. For Windows, it's a semicolon; for Unix, a colon.]
program is not setuid
you can use the command-line parameter
to do the same thing.
the Ruby variable
is an array of places to search
for loaded files. This variable is initialized to the list of standard
directories, plus any additional ones you specified using
. You can always add additional directories to this array
from within your running program.