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

Каков правильный способ обнаружения рубинов в Windows?

Каков правильный способ обнаружения внутри Ruby, работает ли интерпретатор в Windows? "Правильно" включает в себя, что он работает на всех основных вариантах Ruby, включая 1.8.x, 1.9.x, JRuby, Rubinius и IronRuby.

В настоящее время рейтинг лучших результатов Google для "окон обнаружения рубинов" является неправильным или устаревшим. Например, один неверный способ сделать это:

RUBY_PLATFORM =~ /mswin/

Это неверно, поскольку не удается обнаружить версию mingw или JRuby в Windows.

Каков правильный путь?

4b9b3361

Ответ 1

Предпочтительный вариант (Обновлено на основе рекомендаций @John):

require 'rbconfig'
is_windows = (RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)

Это также может работать, но менее надежно (оно не будет работать со многими более старыми версиями, а переменная среды может быть изменена)

is_windows = (ENV['OS'] == 'Windows_NT')

(Я не могу легко протестировать ни на всех перечисленных рубинах, ни на чем-то, кроме Windows 7, но я знаю, что оба будут работать для 1.9.x, IronRuby и JRuby).

Ответ 2

Оказывается,