Как мне найти переводчика ruby?

В скрипте ruby, как мне получить путь к интерпретатору ruby?

Пример скрипта:

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

куда RUBY_INTERPRETER_PATH это мифический способ найти /path/to/ruby,

Это всего лишь пример. Я понимаю, что в этом случае я мог бы просто скопировать /path/to/ruby в сценарий, но я не хочу этого делать. Я хочу, чтобы это работало "правильно" независимо от того, что #! Линия говорит. Даже если работает под окнами.

Чао!

2 ответа

Решение

В наши дни (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"

Чтобы получить путь к текущему запущенному интерпретатору ruby:

require 'rbconfig'
RUBY_INTERPRETER_PATH = File.join(RbConfig::CONFIG["bindir"],
                                  RbConfig::CONFIG["RUBY_INSTALL_NAME"] +
                                  RbConfig::CONFIG["EXEEXT"])
Другие вопросы по тегам