From: Robert Klemme Date: 2006-11-06T22:25:15+09:00 Subject: Re: Paths, gentleman, paths On 06.11.2006 14:13, Ohad Lutzky wrote: > I have this bit of code in the beginning of an application I'm writing > (in main.rb): > > require 'pathname' > > p = Pathname.new($0) > > if p.basename.to_s == 'main.rb' > Dir.chdir p.parent.to_s > end > > require 'gui/main_window' > ... # (rest of requires, application itself) > > The check whether it's "main.rb" or not is so this doesn't happen for > Rake. Now, it works well, but it's ugly. The reason I don't just go > ahead and use ':' is that I use glade, as well as some other files which > I need to be able to find. This is currently in development, so I'd > prefer to avoid forcing people to install the program in predetermined > locations (/usr/local/bin, /usr/local/share/my_app_files, et cetera). > > Any cleaner solution? > Dir.chdir( File.dirname( $0 ) ) if File.basename $0 == 'main.rb' or dir, file = File.split $0 Dir.chdir dir if file == 'main.rb' Cheers robert