दिलचस्प पोस्ट
कैसे jQuery में एक समारोह जोड़ने के लिए? क्या मैं प्रोग्राम को Google क्रोम एक्सटेंशन से devtools खोल सकता / सकती हूं? जावास्क्रिप्ट / jQuery का उपयोग कर फ़ाइल डाउनलोड करें क्रॉलिंग के लिए स्क्रैपर के लिए यूआरएल कैसे देना है? IPhone स्क्रीनशॉट सुविधा को अक्षम करना कैसे System.IO.PathTooLongException से बचने के लिए? आंशिक टेम्पलेट विशेषज्ञता के साथ "अपूर्ण प्रकार का अमान्य उपयोग" त्रुटि कैसे Firebase डेटा संशोधन को प्रतिबंधित करने के लिए? सी # में डबल प्रेषण? JQuery: इनपुट फ़ील्ड में परिवर्तन का पता लगाएं JQuery का उपयोग कर HTML तत्वों के बीच सफेद स्थान और लाइन ब्रेक निकालें अपाचे में डाक डेटा लॉग इन करने का सर्वोत्तम तरीका? स्ट्रिंग शब्दशः से 'चार *' तक नापसंद रूपांतरण एक सूची में पायथन 3 मोड़ रेंज बारप्ल के लिए आर में एक्स अक्ष लेबल घुमाने के लिए

मैं किस प्रकार के ऑपरेटिंग सिस्टम को मेरे रूबी प्रोग्राम पर चल रहा हूं?

मैं चाहता हूं कि मेरे रुबी प्रोग्राम को विंडोज़ की तुलना में मैक पर अलग-अलग काम करना चाहिए मुझे किस प्रकार पता चल रहा है कि मेरे कार्यक्रम किस सिस्टम पर चल रहा है?

वेब के समाधान से एकत्रित समाधान "मैं किस प्रकार के ऑपरेटिंग सिस्टम को मेरे रूबी प्रोग्राम पर चल रहा हूं?"

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 end 

यह सही नहीं है, लेकिन प्लेटफॉर्म्स के विकास के लिए मैं अच्छी तरह काम करता हूं, और विस्तार करने में काफी आसान होता है।

भी

 irb(main):002:0> require 'rbconfig' => true irb(main):003:0> Config::CONFIG["arch"] => "i686-linux" 

या

 irb(main):004:0> RUBY_PLATFORM => "i686-linux" 

(चेतावनी: पीटर वाटैनेट की टिप्पणी पढ़ें) मुझे यह पसंद है, अधिकांश लोग रूबी गम उपयोग करते हैं, इसका विश्वसनीय, पार मंच है

 irb(main):001:0> Gem::Platform.local => #<Gem::Platform:0x151ea14 @cpu="x86", @os="mingw32", @version=nil> irb(main):002:0> Gem::Platform.local.os => "mingw32" 

Launchy मणि ( gem install launchy ) की कोशिश करें :

 require 'launchy' Launchy::Application.new.host_os_family # => :windows, :darwin, :nix, or :cygwin 

मेरे पास दूसरा जवाब है, ताकि मैदान में अधिक विकल्प जोड़ सकें। ओएस रूबीगाम , और गिथूब पेज में एक संबंधित परियोजना सूची है।

 'ओएस' की आवश्यकता

 >> ओएस.विंडो?
 => सही # या OS.doze?

 >> ओएस.बीट्स
 => 32

 >> ओएस.जावा?
 => सही # यदि आप jruby में चल रहे हैं  इसके अलावा OS.jruby?

 >> OS.ruby_bin
 => "c: \ ruby18 \ bin \ ruby.exe" # या "/ usr / स्थानीय / बिन / रूबी" या क्या नहीं

 >> ओएस। पोक्सिक्स?
 => गलत # लिनक्स, ओएस एक्स, साइगविन के लिए सही है

 >> ओएस। मैक?  # या OS.osx?  या OS.x?
 => गलत
 require 'rbconfig' include Config case CONFIG['host_os'] when /mswin|windows/i # Windows when /linux|arch/i # Linux when /sunos|solaris/i # Solaris when /darwin/i #MAC OS X else # whatever end 

अद्यतन करें! इसके अलावा! आजकल मणि के साथ Gem.win_platform?

उदाहरण रूबीगाम्स रेपो में उपयोग करते हैं , और यह एक, स्पष्टता के लिए:

 def self.ant_script Gem.win_platform? ? 'ant.bat' : 'ant' end 

हम निम्नलिखित कोड के साथ बहुत अच्छा कर रहे हैं

  def self.windows? return File.exist? "c:/WINDOWS" if RUBY_PLATFORM == 'java' RUBY_PLATFORM =~ /mingw32/ || RUBY_PLATFORM =~ /mswin32/ end def self.linux? return File.exist? "/usr" if RUBY_PLATFORM == 'java' RUBY_PLATFORM =~ /linux/ end def self.os return :linux if self.linux? return :windows if self.windows? nil end 

जब मुझे केवल यह जानना जरूरी है कि क्या यह विंडोज या यूनिक्स जैसी ओएस है,

 is_unix = is_win = false File::SEPARATOR == '/' ? is_unix = true : is_win = true