# Requiring multiple files

**URL:** <https://www.ruby-forum.com/t/requiring-multiple-files/110344>\
**Category:** Ruby\
**Created:** [July 25, 2007, 4:46pm UTC](https://www.ruby-forum.com/t/requiring-multiple-files/110344 "2007-07-25T16:46:55Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rnuby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@rnuby](https://www.ruby-forum.com/u/rnuby)\
**Post date:** [July 25, 2007, 4:46pm UTC](https://www.ruby-forum.com/t/requiring-multiple-files/110344/1 "2007-07-25T16:46:55Z")

</div>

Hi all!  
I was wonder how one goes about requireing multiple files.  
I have the follow file structure:  
Project/  
run.rb  
sub/  
go.rb  
require\_me.rb

now in run.rb  
require ‘sub/go’  
in go.rb  
require ‘require\_me’

but when i execute run.rb, it says it can’t find require\_me.rb

what are the best ways to set up files and include then in ruby?

thankx!

---

<div class="post-metadata">

**Author:** ![rnuby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@rnuby](https://www.ruby-forum.com/u/rnuby)\
**Post date:** [July 25, 2007, 4:47pm UTC](https://www.ruby-forum.com/t/requiring-multiple-files/110344/2 "2007-07-25T16:47:59Z")

</div>

rNuby wrote:

> require ‘sub/go’  
> in go.rb  
> require ‘require\_me’
> 
> but when i execute run.rb, it says it can’t find require\_me.rb  
> try:

require ‘sub/require\_me’

> what are the best ways to set up files and include then in ruby?  
> I usually do something like this:

$app\_dir = File.expand\_path(File.join(File.dirname( **FILE** ), ‘…’))  
$:.unshift($app\_dir)

Assuming a layout like this:

bin/  
launcher (\<- here’s where the above goes)  
lib/  
a.rb  
b.rb

That way I know I can consistently use:

require ‘lib/b’

from anywhere in the app.

---

<div class="post-metadata">

**Author:** ![rnuby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@rnuby](https://www.ruby-forum.com/u/rnuby)\
**Post date:** [July 25, 2007, 4:47pm UTC](https://www.ruby-forum.com/t/requiring-multiple-files/110344/3 "2007-07-25T16:47:59Z")

</div>

run.rb is a directory higher than require\_me.rb, so you’re require line  
would be

require ‘sub/require\_me.rb’

This is also true for some of the standard library stuff. For  
instance if you wanted the ftp library

require ‘net/ftp’

Hope that helps,  
Kyle

---

<div class="post-metadata">

**Author:** ![rnuby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@rnuby](https://www.ruby-forum.com/u/rnuby)\
**Post date:** [July 25, 2007, 7:52pm UTC](https://www.ruby-forum.com/t/requiring-multiple-files/110344/4 "2007-07-25T19:52:02Z")

</div>

On 7/25/07, rNuby [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> now in run.rb

To clarify on Alex’s response, I think that this has something to do  
with  
the load path. If it’s being set to the Project directory, then trying  
to  
require ‘require\_me’ in go.rb won’t work, even though the files are  
sitting  
in the same directory. If your load path only points to the Project  
directory, it doesn’t find require\_me in there and bombs.  
Chris
