Каков правильный способ обнаружения рубинов в Windows?
Каков правильный способ обнаружения внутри Ruby, работает ли интерпретатор в Windows? "Правильно" включает в себя, что он работает на всех основных вариантах Ruby, включая 1.8.x, 1.9.x, JRuby, Rubinius и IronRuby.
В настоящее время рейтинг лучших результатов Google для "окон обнаружения рубинов" является неправильным или устаревшим. Например, один неверный способ сделать это:
RUBY_PLATFORM =~ /mswin/
Это неверно, поскольку не удается обнаружить версию mingw или JRuby в Windows.
Каков правильный путь?
Ответы
Ответ 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
Оказывается,