Подтвердить что ты не робот

Как найти интерпретатор 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!

4b9b3361

Ответ 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"])