Xavier Noria
11/6/2007 12:55:00 PM
On Nov 6, 2007, at 1:00 PM, Fernando Cacciola wrote:
> Hi people,
>
> I've modularized my very first ruby program (a port of a bash script).
>
> However, if I use 'load' and the target program is loaded multiple
> times (indirectly), I get warnings about redefinition of constants,
> etc (understandably)
>
> But if I try to use 'require', it searches for the program in the
> ruby distribution. Is there a way to specify within the top level
> script itself where to search?
Yes, there's a standard idiom for that:
$:.unshift(File.dirname(__FILE__))
which means: prepend to the list of directories where libraries are
searched ($:) the directory where this file lives. Note that does not
assume the directory is the current working directory, since __FILE__
points to the containing file, no matter how is being evaled.
-- fxn