From: "Jesús Gabriel y Galán" Date: 2008-02-14T19:00:25+09:00 Subject: Re: Calling different class files using require On Thu, Feb 14, 2008 at 10:52 AM, Idealone Ideally wrote: > Hi all, > I have 2 files which are placed in two different folders. These folders > are not under any Classpath & i am using a windows system. > > I have the following snippet of program, which i am stuck with, > FILE 1: > --------------------------------------------------------------------------------- > > > class Test > > puts " This out is from file1 " > > end > > --------------------------------------------------------------------------------- > FILE 2: > --------------------------------------------------------------------------------- > > > require "Test" > puts "This output is from File2" > > > --------------------------------------------------------------------------------- > If File 1 is and File 2 are in two different locations, i get the > following error : > FILE2.rb:1:in `require': no such file to load -- Test (LoadError) > from run.rb:1 > If both the files are in same folder ,it works but if they are located > in different locations it fails, > How can make it work, should i provide anything under "require" First of all, you have to require the name of the file, not the name of the class inside, so as you are doing require 'Test' I will assume that File 1 is called Test.rb. If the location is always the same relative to File2, I mean, if File2 can always rely that Test.rb is always a sibling directory called xxx, you could do: require '../xxx/File1' the $: variable is an array that contains a list of directories that require looks for files. You can push there that folder if you need to require more than one file: $:.unshift "../xxx" That variable is initialized, among other things, with whatever you pass in the -I param to the ruby executable. So you could keep your require 'Test' and just do: ruby -I ../xxx File2.rb I hope I don't have any mistake in the above, it was all from the top of my head, and not tested, so beware of typos :-). Hope this helps, Jesus.