ルビーのオペレーティングシステムを検出する方法はありますか?私はMacとWindowsを検出する必要があるスケッチアップツールの開発に取り組んでいます。
質問する
28674 次
4 に答える
60
これは私が最近見た中で最高のものです。セレン由来です。私が最高だと思う理由は、MRI と JRuby で動作する利点がある rbconfig の host_os フィールドを使用しているためです。RUBY_PLATFORM は、実行されているホスト OS に関係なく、JRuby では「java」と表示されます。このメソッドを少し調整する必要があります。
require 'rbconfig'
def os
@os ||= (
host_os = RbConfig::CONFIG['host_os']
case host_os
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
:windows
when /darwin|mac os/
:macosx
when /linux/
:linux
when /solaris|bsd/
:unix
else
raise Error::WebDriverError, "unknown os: #{host_os.inspect}"
end
)
end
于 2012-11-27T14:13:10.627 に答える
28
使用できます
puts RUBY_PLATFORM
irb(main):001:0> RUBY_PLATFORM
=> "i686-linux"
しかし、@ピートは正しいです。
于 2012-08-02T19:07:45.223 に答える
3
RUBY_PLATFORM定数を調べることはできますが、JRuby の実行時など、特定のケースでは信頼できないことが知られています。その他のオプションには、POSIX システムでのコマンドの出力のキャプチャ、またはsys-unameuname -a
などの検出 gem の使用が含まれます。
于 2012-08-02T19:11:10.790 に答える