Techioz Blog

Ruby プログラムがどのオペレーティング システムで実行されているかを確認するにはどうすればよいですか?

概要

Ruby プログラムで Windows とは異なることを Mac 上で実行したいと考えています。自分のプログラムがどのシステムで実行されているかを確認するにはどうすればよいですか?

解決策

RUBY_PLATFORM 定数を使用し、オプションでそれをモジュールにラップして、より使いやすくします。

module OS
  def OS.windows?
    (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
  end

  def OS.mac?
   (/darwin/ =~ RUBY_PLATFORM) != nil
  end

  def OS.unix?
    !OS.windows?
  end

  def OS.linux?
    OS.unix? and not OS.mac?
  end

  def OS.jruby?
    RUBY_ENGINE == 'jruby'
  end
end

これは完璧ではありませんが、私が開発を行っているプラットフォームではうまく機能し、拡張も簡単です。