Как правильно определить, работает ли ruby ​​в Windows? - PullRequest
36 голосов
/ 02 февраля 2011

Как правильно изнутри определить, работает ли интерпретатор в Windows?«Правильно» включает в себя то, что он работает со всеми основными разновидностями Ruby, включая 1.8.x, 1.9.x, JRuby, Rubinius и IronRuby.

В настоящее время все самые популярные результаты Google по «окнам обнаружения ruby» - это всеневерный или устаревший.Например, один неверный способ сделать это:

RUBY_PLATFORM =~ /mswin/

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

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

Ответы [ 2 ]

61 голосов
/ 31 января 2014

Оказывается, есть таким образом :

Gem.win_platform?
33 голосов
/ 02 февраля 2011

Предпочтительный вариант (Обновлено на основе рекомендаций @ 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...