D
Drew Olson
Need makes ruby relative requires just work. Simply need a file with a
relative path
and the file will always be required correctly, regardless of what file
your application is
being launched through. Typically, ruby projects would unshift lib onto
$PATH or use the
File.dirname(__FILE__) trick. Using need means you don't have to worry
about either of these.
Assume you have two files, one directly in lib and the other in
lib/extensions. Let's assume that file_a in lib requires file_b, in
lib/extensions. Previously, you would doing some crazy load path
unshifting or use the __FILE__ trick to make these requires flexible
enough to work when your app is being accessed by rake, through a test
suite, or required as a gem. Now, just use need.
In file_a:
need{"extensions/file_b"}
Note that the block syntax is necessary. Need uses the binding of the
block to determine the
location of your file and correct perform your relative require for you.
== INSTALL:
* sudo gem install need
Hope you enjoy it!
- Drew
relative path
and the file will always be required correctly, regardless of what file
your application is
being launched through. Typically, ruby projects would unshift lib onto
$PATH or use the
File.dirname(__FILE__) trick. Using need means you don't have to worry
about either of these.
Assume you have two files, one directly in lib and the other in
lib/extensions. Let's assume that file_a in lib requires file_b, in
lib/extensions. Previously, you would doing some crazy load path
unshifting or use the __FILE__ trick to make these requires flexible
enough to work when your app is being accessed by rake, through a test
suite, or required as a gem. Now, just use need.
In file_a:
need{"extensions/file_b"}
Note that the block syntax is necessary. Need uses the binding of the
block to determine the
location of your file and correct perform your relative require for you.
== INSTALL:
* sudo gem install need
Hope you enjoy it!
- Drew