RubyインタプリタがWindowsで実行されているかどうかを検出する正しい方法は何ですか?「正しい」には、1.8.x、1.9.x、 JRuby、Rubinius、IronRuby。
「Rubydetectwindows」の現在上位にランクされているGoogleの結果はすべて正しくないか、古くなっています。たとえば、それを行うための1つの誤った方法は次のとおりです。
Ruby_PLATFORM =~ /mswin/
MingwバージョンまたはWindowsのJRubyを検出できないため、これは正しくありません。
正しい方法は何ですか?
優先オプション(@ 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で機能することはわかっています)。
結局のところ、 このように :
Gem.win_platform?