Как найти интерпретатор ruby?
Внутри ruby script, как мне получить путь к интерпретатору ruby?
Пример script:
#!/path/to/ruby
puts `#{RUBY_INTERPRETER_PATH} -e "puts 'hi'"`
#EOF
Где RUBY_INTERPRETER_PATH
- мифический способ найти /path/to/ruby
.
Это просто пример. В этом случае я понимаю, что могу просто скопировать /path/to/ruby
в script, но я не хочу этого делать. Я хочу, чтобы это работало "правильно", независимо от того, что говорит строка #!
. Даже если вы работаете под окнами.
Ciao!
Ответы
Ответ 1
В эти дни (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"
Ответ 2
Чтобы получить путь к текущему запущенному интерпретатору ruby:
require 'rbconfig'
RUBY_INTERPRETER_PATH = File.join(RbConfig::CONFIG["bindir"],
RbConfig::CONFIG["RUBY_INSTALL_NAME"] +
RbConfig::CONFIG["EXEEXT"])