Betriebssystem herausfinden

Hin und wieder ist es erforderlich das Betriebssystem, auf dem die Applikation gerade ausgeführt wird, herauszufinden. Oft wird hierzu die „RUBY_PLATFORM“ dazu benutzt. Wie das folgende Beispiel zeigt, kann dies zu einem „falschen“ Ergenis führen.

RUBY_PLATFORM gibt z.B. bei der Verwendung von JRuby den Wert „java“ zurück. Das spiegelt nicht das Betriebssystem wieder, sondern die verwendete Engine unter der die Applikation läuft.

Ein Beispiel-Modul um das Betriebssystem herauszufinden wäre:

[ruby]
module Betriebssystem
def macintosh?
RUBY_PLATFORM.downcase.include?("darwin")
end

def windows?
RUBY_PLATFORM.downcase.include?("mswin")
end

def linux?
RUBY_PLATFORM.downcase.include?("linux")
end
end
[/ruby]

Um einen verlässlichen Wert zu bekommen, sollte man das Gem „sys-uname“ verwenden. Damit bekommt neben dem Betriebssystem auch viele weitere Informationen über die Umgebung heraus.

Installation von sys-uname:

[bash]
gem install sys-uname
[/bash]

Verwendung von sys-uname:

[ruby]
require ’sys/uname‘
include Sys

puts Uname.nodename
puts Uname.version
puts Uname.sysname
puts Uname.machine
puts Uname.release

p Uname.uname
[/ruby]

Auf diese Weise bekommt alle relevanten Daten die man ggf. benötigt.