有沒有辦法在紅寶石中檢測操作系統?我正在開發一個將需要檢測MAC與WINDOWS的sketchup工具。在紅寶石中檢測操作系統
回答
您可以使用
puts RUBY_PLATFORM
irb(main):001:0> RUBY_PLATFORM
=> "i686-linux"
但@Pete是正確的。
只是想讓人們知道,如果你在64位窗口上運行32位ruby,RUBY_PLATFORM會告訴你體系結構是32位的。 – max 2014-11-26 06:06:43
當使用JRuby時,無論操作系統如何,RUBY_PLATFORM都會返回「java」。 – robertodecurnex 2014-12-03 18:53:30
這足以用於檢測您是否在OSX上。 – Mosselman 2017-02-27 15:47:23
您可以檢查RUBY_PLATFORM常量,但在某些情況下(例如運行JRuby時),這被稱爲不可靠。其他選項包括在POSIX系統上捕獲uname -a
命令的輸出或使用檢測寶石,如sys-uname。
這是我最近見過的最好的一個。它來自硒。我認爲這是最好的原因是它使用rbconfig host_os字段,它具有在MRI和JRuby上工作的優勢。 RUBY_PLATFORM將在JRuby上說'java',而不管它運行在哪個主機os上。您將需要適度調整這個方法:
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
不錯,但我認爲你應該更新你的答案來記錄「os」寶石,它已經解決了您提到的JRuby問題,並獲得了我們您的代碼庫的檢測代碼。 請參閱:http://stackoverflow.com/a/20579735/109561 – Gerry 2015-01-22 22:45:40
這也是一個很好的方法,如果你不能安裝一個系統的寶石。就像我目前正在處理的情況一樣,我正在構建一個低級系統腳本,該腳本無法在需要知道os版本的位置安裝任何內容。 <3 – 2017-10-19 08:07:58
可以使用os
寶石:
gem install os
然後
require 'os'
OS.linux? #=> true or false
OS.windows? #=> true or false
OS.java? #=> true or false
OS.bsd? #=> true or false
OS.mac? #=> true or false
# and so on.
感謝您的發現。真棒回答。 :)可悲的是,你有兩年的投票時間趕上。 – Gerry 2015-01-22 22:41:55
- 1. 損壞紅寶石寶石系統
- 2. 紅寶石寶石檢測部署
- 3. 檢測模塊紅寶石
- 4. 紅寶石檢測方法
- 5. 紅寶石重寫操作
- 6. 計劃作業的Rails 3 - 加載系統紅寶石不RVM紅寶石
- 7. 在Clojure中檢測操作系統
- 8. 紅寶石操作與紅寶石阻止ppoll
- 9. 模擬系統調用紅寶石
- 10. 知道紅寶石系統依賴項
- 11. 我在哪裏可以得到一個紅寶石1.8.6的CentOS操作系統
- 12. 在MacOS上安裝jruby與Windows操作系統上的紅寶石相比
- 13. jQuery - 檢測操作系統和操作系統版本
- 14. 紅寶石非寶石依賴關係
- 15. 紅寶石state_machine寶石 - 測試validates_presence_of
- 16. 優化紅寶石檢測聲明
- 17. 紅寶石定義操作過程
- 18. 紅寶石 - 字符串操作
- 19. Perl /紅寶石單線陣列操作
- 20. 紅寶石URI操縱
- 21. 紅寶石系統調用CP:缺少目標文件操作後
- 22. 紅寶石散列在紅寶石
- 23. 集的效率操作VS在紅寶石陣列操作
- 24. 如何設置RVM紅寶石作爲系統
- 25. 在紅寶石1.8.7系統上如何安裝回形針寶石?
- 26. 紅寶石。 Mongoid。關係
- 27. 紅寶石測試工作流程
- 28. C++檢測操作系統版本
- 29. 是否有宏檢測操作系統...?
- 30. 從Firefox擴展檢測操作系統
你能不能給我們更多周圍的細節*爲什麼*你需要這樣做?通常,功能檢測可能比全面的操作系統檢測更有幫助。 – Pete 2012-08-02 19:05:27