Определение ОС в Ruby

При разработке библиотек или скриптов на языке Ruby одной из немаловажных задач становится определение того, под какой операционной системой работает ваш код. Это можно сделать различными способами - например, использовать предустановленные константы или gem os. Также не стоит забывать о том, что вы можете самостоятельно запустить команду с информацией об ОС (`uname -a`) и проверить её вывод (естественно, не забыв проигнорировать ошибку, если этой команды нет в текущей ОС).

```ruby RUBY_PLATFORM.split(‘-’,2)[1] => “linux” Ruby::PLATFORM.split(‘-’,2)[1] # ruby >= 4.0.0 => “linux” require ‘rbconfig’ RbConfig::CONFIG[‘host_os’] => “linux” Gem.target_rbconfig[‘arch’].split(‘-’,2)[1] => “linux” Gem::Platform.local.os => “linux” require ‘etc’ Etc.uname[:sysname] => “Linux” ``` ```ruby # gem install os require ‘os’ OS.linux? => true ``` ```ruby def linux? !!(`uname -a` =~ /linux/i) # or cat /proc/version rescue Errno::ENOENT false end linux? => true ```

Дополнительные примеры использования можно увидеть в исходном коде ffi и brew.

Какие из перечисленных способов вы использовали в своём коде? И, может быть, вы знаете другие способы определить ОС?

#Ruby #OS #Platform #Rbconfig #Gem #Script #Uname #Linux #Windows #MacOS #Unix

Определение ОС в Ruby | Сетка — социальная сеть от hh.ru