I appreciate these suggestions, but found that they do not actually
solve my problem.  If a full Ruby installation is done with the One
Click Installer, the code does return the folder containing the Ruby
interpreter (C:\Ruby\bin by default).  In distributing a Ruby program I
am developing, however, I intend to distribute only the minimum set of
files for running the program.  Through trial and error, I have found
that these are ruby.exe, msvcrt-ruby18.dll, and the particular .so or
.rb library files that my main script.rb file calls.  

In testing the rbconfig technique, I copied these files, including
rbconfig.rb, into a temporary folder, c:\TestRuby.  When I ran a test
program at the command prompt, the correct path was not given.  It
should have been C:\TestRuby\rubyw.exe for the interpreter (or
C:\TestRuby\test.rb for the script file).

Windows has an API function, GetModuleFileName , that returns the full
path of the running executable.  I may be able to wrap an API call using
the Win32API library, but prefer a native Ruby approach if possible.

Jamal

-----Original Message-----
From: ara.t.howard / noaa.gov [mailto:ara.t.howard / noaa.gov] 
Sent: Monday, April 17, 2006 12:16 PM
To: ruby-talk ML
Subject: Re: Full paths of Ruby interpreter and running script


On Tue, 18 Apr 2006, Berger, Daniel wrote:

>> -----Original Message-----
>> From: Jamal Mazrui [mailto:Jamal.Mazrui / fcc.gov]
>> Sent: Monday, April 17, 2006 9:54 AM
>> To: ruby-talk ML
>> Subject: Full paths of Ruby interpreter and running script
>>
>>
>> I've looked through and experimented with predefined global
>> constants, but so far have not figured how to get the full
>> path and name of the Ruby interpreter and/or main script file
>> from within a running program. I want to distribute a program
>> that can be installed in a folder chosen by the user.  The
>> program would save configuration information in the same
>> folder. In order to find the configuration file at runtime, I
>> thought I would query the full path of the Ruby interpreter
>> or script file.  In case it makes a difference, I'm using Windows.
>>
>> Jamal
>
> Is this what you're after?
>
> require 'rbconfig'
> include Config
>
> puts CONFIG['bindir'] # c:/ruby/bin
>
> Regards,

i use this

   c = ::Config::CONFIG
   File::join(c['bindir'], c['ruby_install_name']) << c['EXEEXT']

cheers.


-a
-- 
be kind whenever possible... it is always possible.
- h.h. the 14th dali lama