Rubyxr (Ruby eXtended Require)
Rubyxr provides a method for loading ruby files that takes into account relative paths from the current file location and relative paths from the project root. It ensures that files are loaded the same way regardless of the current directory.
It works with Ruby 1.8, it does not work with Ruby 1.9.
Use the method
requirex instead of the standard
requirex './file_in_same_directory' requirex '../file_in_parent_directory' requirex './child_directory/file'
You can require relative to the project root by creating a file
.rubyxr in the root directory and using
requirex without a leading '.':
requirex '/file_in_the_project_root' requirex '/project_root_child_dir/file'
I tend towards breaking up my projects into modules in seperate subdirectories and work for periods in one of these subdirectories. But ruby makes it hard to do this without ugly File.path(...) statements in
Ruby 1.9 require_relative obsoletes most of the functionality of Rubyxr although requiring relative to a project root could still be useful.