Austin Ziegler wrote: > program # no extension, but #!/usr/bin/env ruby at the top > program.bat # wrapper to "program" for Windows users. > lib/program/ # all of the supporting stuff for the program is > # in a private lib directory. 'program' uses > # $:.unshift ".\lib" to make this work. This is also useful, in the main program file: app_dir = File.dirname(__FILE__) $LOAD_PATH.unshift(File.join(appdir, "lib")) This way, it doesn't matter what the current dir is when the program is run. If it's called from a batch file or a symlink somewhere, it will still find its libs.