Require within a module: path question

D

Drew Olson

All -

It seems to me that if I create a module, a.rb, and a script that
require's that module, b.rb, something interesting happens. In this
case, my a relies on other external files in the project, so I must
require these files within a.rb. However, I've noticed that because b
requires module a, all the require statements within the file a.rb must
be relative to b's location in the directory structure. Thus, when these
files are stored in different places, it becomes very confusing when
looking at file a.rb as to why the require statements don't seem to be
relative to that file. Is this intended functionality? Have I done
something stupid?

Thanks,
Drew
 
B

Brian Candler

It seems to me that if I create a module, a.rb, and a script that
require's that module, b.rb, something interesting happens. In this
case, my a relies on other external files in the project, so I must
require these files within a.rb. However, I've noticed that because b
requires module a, all the require statements within the file a.rb must
be relative to b's location in the directory structure.

No - they just have to be relative to any of the directories in $: (the load
path array)

On my machine I get:

$ ruby1.8 -e 'puts $:'
/usr/local/lib/site_ruby/1.8
/usr/local/lib/site_ruby/1.8/i486-linux
/usr/local/lib/site_ruby/1.8/i386-linux
/usr/local/lib/site_ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/i486-linux
/usr/lib/ruby/1.8/i386-linux
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top