Книга: Программирование на языке Ruby

14.9.5. Определение текущей платформы или операционной системы

14.9.5. Определение текущей платформы или операционной системы

Если программа хочет знать, в какой операционной системе исполняется, то может опросить глобальную константу RUBY_PLATFORM. В ответ будет возвращена загадочная строка (что-то вроде i386-cygwin или sparc-solaris2.7), содержащая информацию о платформе, для которой был собран интерпретатор Ruby.

Поскольку мы в основном работаем с вариантами UNIX (Solaris, AIX, Linux) и Windows (98, NT, 2000, XP), то считаем полезным следующий очень грубый код. Он отличает UNIX от Windows (бесцеремонно отправляя всех остальных в категорию «прочие»).

def os_family
 case RUBY_PLATFORM
  when /ix/i, /ux/i, /gnu/i,
       /sysv/i, /solaris/i,
       /sunos/i, /bsd/i
   "unix"
  when /win/i, /ming/i
   "windows"
  else
   "other"
 end
end

Этот небольшой набор регулярных выражений корректно распознает абсолютное большинство платформ. Конечно, это весьма неуклюжий способ обработки системных зависимостей. Даже если вы правильно определите семейство ОС, отсюда еще не следует, что нужная вам функциональность имеется (или отсутствует).

Оглавление книги


Генерация: 1.444. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз