On Sat, 1 May 2004, John Platte wrote: > On 2004 Apr 30, at 12:04, Ara.T.Howard wrote: > > > i think it makes perfect sense to have > > > > __FILE__ => absolute path of script file > > __PROGRAM__ => absolute path of called program > > __RUBY__ => absolute path of ruby interp running called program > > __DIR__ => absolute directory of file (can use for relative > > requires) > > > > it's always easy get a relative path from an absolute one, but not the > > other > > way! > > Then $0 would need to be absolute too. snoopy vars are on the way out - that's what __PROGRAM__ is (in theory)... > So the question is, would, could switching the default $0 setting and > __FILE__ to absolute paths break existing programs? perhaps it should then be: $SCRIPT_FILE => absolute path of script file $PROGRAM_NAME => absolute path of called program $RUBY => absolute path of ruby interp running called program $BASE_DIR => absolute directory of file (can use for relative or (__VAR__ - take your pick) and this breaks no current code (probably). now that i think about it, if you are putting an RCR together it might make sense to create a namespace for the notion of 'stuff specific to this instance of ruby' and put all this stuff in there. something like require 'rbconfig' require 'pathname' module Runtime SCRIPT_FILE = Pathname.new(__FILE__).realpath.to_s PROGRAM_NAME = Pathname.new($0).realpath.to_s RUBY = File.join Config::CONFIG['bindir'], Config::CONFIG['RUBY_INSTALL_NAME'] BASE_DIR = File.dirname SCRIPT_FILE end or perhaps implement the namespace as in ENV['RUBY_SCRIPT_FILE'] = Pathname.new(__FILE__).realpath.to_s who knows... all i'm saying is, if a namespace was inforced we could put all sorts of useful stuff in there w/o breaking old code. > Are there Windows considerations that could cause problems? Cygwin? > MinGW? > > I'm considering writing up an RCR, but before I put Matz and myself > through all that, I want to make sure we're not wasting time. > > -a -- =============================================================================== | EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov | PHONE :: 303.497.6469 | ADDRESS :: E/GC2 325 Broadway, Boulder, CO 80305-3328 | URL :: http://www.ngdc.noaa.gov/stp/ | TRY :: for l in ruby perl;do $l -e "print \"\x3a\x2d\x29\x0a\"";done ===============================================================================