我如何找到红宝石翻译?

时间:2010-05-11 20:08:38

标签: ruby

在ruby脚本中,我如何获得ruby解释器的路径?

示例脚本:

  #!/path/to/ruby
  puts `#{RUBY_INTERPRETER_PATH} -e "puts 'hi'"`
  #EOF

其中RUBY_INTERPRETER_PATH是查找/path/to/ruby的神话方式。

但这只是一个例子。在这种情况下,我意识到我可以将/path/to/ruby复制到脚本中,但我不想这样做。无论#!行说什么,我希望“正确”工作。即使在Windows下运行。

侨!

2 个答案:

答案 0 :(得分:15)

获取当前运行的ruby解释器的路径:

require 'rbconfig'
RUBY_INTERPRETER_PATH = File.join(RbConfig::CONFIG["bindir"],
                                  RbConfig::CONFIG["RUBY_INSTALL_NAME"] +
                                  RbConfig::CONFIG["EXEEXT"])

答案 1 :(得分:15)

这些天(1.9+)您可以使用内置方法(应该与Jruby等一起使用),如下所示:

  

RbConfig.ruby   要么   Gem.ruby

$ irb --simple-prompt
>> RbConfig.ruby
=> "C:/installs/Ruby193/bin/ruby.exe"
>> Gem.ruby
=> "C:/installs/Ruby193/bin/ruby.exe"