Как мне найти переводчика 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"])