From: Christian Johansen Date: 2008-04-14T21:15:31+09:00 Subject: How to reliably setup require path I'm writing my first Ruby command line application (beyond a simple script) and I'm little unsure about how to structure the application and the best use of require. I've come as far as to have the following file structure: myapp/ bin/ myapp docs/ (RDOC files) lib/ myapp.rb myapp/ files and folders here test/ (Test::Unit tests) And the application is working, but there are a few things of which I am unsure: The bin/myapp file is a symlink to the lib/myapp.rb file which has a shebang line. This doesn't really work, because inside lib/myapp.rb I have: require 'myapp/file' require 'myapp/module/file' which doesn't make sense when running the application from anywhere else than myapp/lib I also tried $MYAPP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), 'myapp')) $LOAD_PATH << File.expand_path($MYAPP_ROOT) Which still doesn't work because this also relies on cwd... How do I work around this? What's the best practice way of making these things make sense? Do you use the $RUBYLIB variable to set the full path to the application? I was hoping to create the application as standalone as possible, so installation will be easy. -- Posted via http://www.ruby-forum.com/.