Which ruby is running me?

J

John Carter

So I have despaired of getting mutexes, threads and forks to coexist
peacably in Ruby. (As soon as the child process touches a mutex that
existed in the parent.... Bad Things can happen.)

So Plan B is to
- spin a thread
- to mind a fork
- that just execs
a new instance of Ruby.

Now I tend to have several versions of Ruby lying around on my Box.

What is the One True Way of finding the path to _the_ instance of ruby
that is currently executing this script?

GNU "Make" is pretty good about this, it has a $(MAKE) variable that
gives the exact path of make that is running.




John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : (e-mail address removed)
New Zealand
 
J

James Gray

What is the One True Way of finding the path to _the_ instance of ruby
that is currently executing this script?

I'm pretty sure this always works:

$ ruby -r rbconfig -e 'p File.join(Config::CONFIG.values_at(*%w[bindir
ruby_install_name])) + Config::CONFIG["EXEEXT"]'
"/usr/local/bin/ruby"

James Edward Gray II
 
J

John Carter

What is the One True Way of finding the path to _the_ instance of ruby
that is currently executing this script?

I'm pretty sure this always works:

$ ruby -r rbconfig -e 'p File.join(Config::CONFIG.values_at(*%w[bindir
ruby_install_name])) + Config::CONFIG["EXEEXT"]'
"/usr/local/bin/ruby"

Thanks! Ooo.. a tad ugly though... Ah, well, at least I wasn't missing
the obvious for a change. :)

John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : (e-mail address removed)
New Zealand
 
E

Eric Hodel

What is the One True Way of finding the path to _the_ instance of
ruby
that is currently executing this script?

I'm pretty sure this always works:

$ ruby -r rbconfig -e 'p File.join(Config::CONFIG.values_at(*
%w[bindir ruby_install_name])) + Config::CONFIG["EXEEXT"]'
"/usr/local/bin/ruby"

Thanks! Ooo.. a tad ugly though... Ah, well, at least I wasn't missing
the obvious for a change. :)

require 'rubygems'
Gem.ruby

$ ruby -rubygems -e 'p Gem.ruby'
"/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby"
$ ruby18 -rubygems -e 'p Gem.ruby'
"/usr/local/bin/ruby18"
$ ruby19 -e 'p Gem.ruby' # require 'rubygems' is automatic on 1.9
"/usr/local/bin/ruby19"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,812
Latest member
GracielaWa

Latest Threads

Top