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
···
On Sat, 1 May 2004, John Platte wrote:
On 2004 Apr 30, at 12:04, Ara.T.Howard wrote:
–
===============================================================================
EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
PHONE :: 303.497.6469
ADDRESS :: E/GC2 325 Broadway, Boulder, CO 80305-3328
URL :: Solar-Terrestrial Physics Data | NCEI
TRY :: for l in ruby perl;do $l -e “print "\x3a\x2d\x29\x0a"”;done
===============================================================================