Will Green
2010-Mar-11 20:39 UTC
[Ironruby-core] The Proper way to detect the Windows Platform in Ruby
Thought I''d share this with everyone: http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-platform-in-ruby/>From one of the JRuby core team.<http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-platform-in-ruby/> -- Will Green http://hotgazpacho.org/ -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100311/f6d41b10/attachment.html>
Ivan Porto Carrero
2010-Mar-11 21:18 UTC
[Ironruby-core] The Proper way to detect the Windows Platform in Ruby
I''ve been using ENV[''OS''] == ''Windows_NT'' to detect windows relaibly On Thursday, March 11, 2010, Will Green <will at hotgazpacho.org> wrote:> Thought I''d share this with everyone: > http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-platform-in-ruby/ > > > From one of the JRuby core team.?<http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-platform-in-ruby/>-- > Will Green > http://hotgazpacho.org/ > >-- --- Met vriendelijke groeten - Best regards - Salutations Ivan Porto Carrero - Mob: +32.486.787.582 Web: http://whiterabbitconsulting.eu - http://flanders.co.nz Twitter: http://twitter.com/casualjim Author of IronRuby in Action (http://manning.com/carrero) Microsoft IronRuby/C# MVP
Tomas Matousek
2010-Mar-11 21:39 UTC
[Ironruby-core] The Proper way to detect the Windows Platform in Ruby
Sure, using RUBY_PLATFORM is not good. However if you search thru Ruby gems it''s used all over the place :( So until at least 90% of Ruby apps detect OS specific features properly we need to keep RUBY_PLATFORM set to win32/darwin/linux depending on the underlying OS. I guess some gems might be broken on JRuby on Windows since they don''t check for "java". ruby-1.8.6p368\lib\ruby\1.8\ftools.rb(103): if RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw/ and file? to ruby-1.8.6p368\lib\ruby\1.8\drb\extservm.rb(89): if RUBY_PLATFORM =~ /mswin32/ && /NT/ =~ ENV["OS"] ruby-1.8.6p368\lib\ruby\1.8\rdoc\options.rb(547): return if RUBY_PLATFORM =~ /win/ ruby-1.8.6p368\lib\ruby\1.8\soap\streamHandler.rb(23): RUBY_VERSION_STRING = "ruby #{ RUBY_VERSION } (#{ RUBY_RELEASE_DATE }) [#{ RUBY_PLATFORM }]" ruby-1.8.6p368\lib\ruby\1.8\xmlrpc\server.rb(643): if RUBY_PLATFORM =~ /mingw|mswin32/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\actionpack-2.3.5\test\controller\layout_test.rb(201):unless RUBY_PLATFORM =~ /(:?mswin|mingw|bccwin)/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-2.3.5\lib\active_support\core_ext\kernel\reporting.rb(38): stream.reopen(RUBY_PLATFORM =~ /mswin/ ? ''NUL:'' : ''/dev/null'') ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-2.3.5\lib\active_support\xml_mini\jdom.rb(1):raise "JRuby is required to use the JDOM backend for XmlMini" unless RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\core_ext\kernel\reporting.rb(40): stream.reopen(RUBY_PLATFORM =~ /mswin/ ? ''NUL:'' : ''/dev/null'') ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\testing\isolation.rb(36): !ENV["NO_FORK"] && RUBY_PLATFORM !~ /mswin|mingw|java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\xml_mini\jdom.rb(1):raise "JRuby is required to use the JDOM backend for XmlMini" unless RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\Rakefile(41):RCOV_ENABLED = (RUBY_PLATFORM != "java" && RUBY_VERSION =~ /^1\.8/) ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\Rakefile(48):WINDOWS = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\spec\addressable\uri_spec.rb(3010): if RUBY_PLATFORM =~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\spec\addressable\uri_spec.rb(3017): if RUBY_PLATFORM =~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\Rakefile(40):RCOV_ENABLED = (RUBY_PLATFORM != "java" && RUBY_VERSION =~ /^1\.8/) ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\Rakefile(47):WINDOWS = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\spec\addressable\uri_spec.rb(3128): if RUBY_PLATFORM =~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\spec\addressable\uri_spec.rb(3135): if RUBY_PLATFORM =~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cgi_multipart_eof_fix-2.5.0\lib\cgi_multipart_eof_fix.rb(8):if version [0] < 2 and version [1] < 9 and version [2] < 6 and RUBY_PLATFORM !~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cgi_multipart_eof_fix-2.5.0\test\test_cgi_multipart_eof_fix.rb(18):IS_VULNERABLE = (version [0] < 2 and version [1] < 9 and version [2] < 6 and RUBY_PLATFORM !~ /java/) ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cucumber-0.3.94\gem_tasks\environment.rake(2): RUBY_APP = if RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cucumber-0.3.97\gem_tasks\environment.rake(2): RUBY_APP = if RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\Rakefile(9):JRUBY = RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\lib\data_objects\connection.rb(19): warn ''JNDI URLs (connection strings) are only for use with JRuby'' unless RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\lib\data_objects\connection.rb(22): warn ''JDBC URLs (connection strings) are only for use with JRuby'' unless RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-adjust-0.9.11\Rakefile(5):JRUBY = RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-core-0.9.11\tasks\install.rb(1):WIN32 = (RUBY_PLATFORM =~ /win32|mingw|bccwin|cygwin/) rescue nil ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-serializer-0.9.11\Rakefile(5):JRUBY = RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-types-0.9.11\Rakefile(5):JRUBY = RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-validations-0.9.11\Rakefile(5):JRUBY = RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\extlib-0.9.12\Rakefile(13):JRUBY = RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\extlib-0.9.12\spec\pooling_spec.rb(61): pool_size = if RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\gem_plugin-0.2.3\resources\Rakefile(35): p.need_tar = true if RUBY_PLATFORM !~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\haml-2.2.2\Rakefile(67): sudo = RUBY_PLATFORM =~ /win32/ ? '''' : ''sudo'' ruby-1.8.6p368\lib\ruby\gems\1.8\gems\haml-2.2.2\Rakefile(68): gem = RUBY_PLATFORM =~ /java/ ? ''jgem'' : ''gem'' ruby-1.8.6p368\lib\ruby\gems\1.8\gems\highline-1.5.1\lib\highline\system_extensions.rb(21): raise LoadError, "Cygwin is a Posix OS." if RUBY_PLATFORM =~ /\bcygwin\b/i ruby-1.8.6p368\lib\ruby\gems\1.8\gems\highline-1.5.1\lib\highline\system_extensions.rb(184): if /solaris/ =~ RUBY_PLATFORM and ruby-1.8.6p368\lib\ruby\gems\1.8\gems\hoe-2.3.3\lib\hoe.rb(91): WINDOZE = /mswin|mingw/ =~ RUBY_PLATFORM unless defined? WINDOZE ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-action-args-1.0.12\lib\merb-action-args\get_args.rb(1):unless RUBY_PLATFORM == "java" ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\Rakefile(408): spec_cmd = (RUBY_PLATFORM =~ /java/) ? "jruby -S spec" : "spec" ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\lib\merb-core.rb(778): RUBY_PLATFORM =~ Merb::Const::JAVA_PLATFORM_REGEXP ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\lib\merb-core.rb(783): RUBY_PLATFORM =~ Merb::Const::WIN_PLATFORM_REGEXP ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mime-types-1.16\lib\mime\types.rb(494): system? and (RUBY_PLATFORM =~ @system) ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(70):# if RUBY_PLATFORM !~ /mswin|mingw|java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(167):# unless RUBY_PLATFORM =~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(185):# sh("rake java package") unless RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(188):# # sub_project("mongrel_service", :package) if RUBY_PLATFORM =~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(189):# # sh("rake mswin package") unless RUBY_PLATFORM =~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(207):# sub_project("mongrel_service", :install) if RUBY_PLATFORM =~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(219):# sub_project("mongrel_service", :uninstall) if RUBY_PLATFORM =~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(232):# sub_project("mongrel_service", :clean) if RUBY_PLATFORM =~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\bin\mongrel_rails(140): if RUBY_PLATFORM !~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(84): if RUBY_PLATFORM !~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(188): if RUBY_PLATFORM !~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(369): if RUBY_PLATFORM !~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\rails.rb(176): if RUBY_PLATFORM !~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\test\testhelp.rb(78): result = RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\net-ssh-2.0.13\Rakefile(36): p.need_tar = true if RUBY_PLATFORM !~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\net-ssh-2.0.13\lib\net\ssh\authentication\agent.rb(6):require ''net/ssh/authentication/pageant'' if File::ALT_SEPARATOR && !(RUBY_PLATFORM =~ /java/) ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ParseTree-3.0.4\lib\parse_tree.rb(295): builder.add_compile_flags "-Werror" unless RUBY_PLATFORM =~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ParseTree-3.0.4\lib\parse_tree.rb(1123): extern_mode = RUBY_PLATFORM =~ /mswin/ ? ''RUBY_EXTERN'' : ''extern'' ruby-1.8.6p368\lib\ruby\gems\1.8\gems\pathname2-1.6.2\CHANGES(28):* Changed platform checking to use rbconfig instead of RUBY_PLATFORM to avoid ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ptools-1.1.7\CHANGES(3):* Replaced RUBY_PLATFORM with rbconfig check for the sake of other ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rack-1.0.1\lib\rack\rewindable_input.rb(97): RUBY_PLATFORM !~ /(mswin|mingw|cygwin|java)/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\CHANGELOG(497):* Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, Kaspar Schiess] ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\CHANGELOG(811):* Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, Kaspar Schiess] ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\initializer.rb(873): if RUBY_PLATFORM =~ /(:?mswin|mingw)/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\console.rb(1):irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''irb.bat'' : ''irb'' ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\dbconsole.rb(35): commands += commands.map{|cmd| "#{cmd}.exe"} if RUBY_PLATFORM =~ /win32/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\runner.rb(21): if RUBY_PLATFORM !~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\rails_generator\generators\applications\app\app_generator.rb(261): ].find { |f| File.exist?(f) } unless RUBY_PLATFORM =~ /(:?mswin|mingw)/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\tasks\testing.rake(33): STDERR.reopen(RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''NUL:'' : ''/dev/null'') ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\CHANGELOG(494):* Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, Kaspar Schiess] ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\CHANGELOG(808):* Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, Kaspar Schiess] ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\configuration.rb(44): RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\commands\dbconsole.rb(45): commands += commands.map{|cmd| "#{cmd}.exe"} if RUBY_PLATFORM =~ /win32/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\commands\runner.rb(21): if RUBY_PLATFORM !~ /mswin/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\actions.rb(243): sudo = options[:sudo] && RUBY_PLATFORM !~ /mswin|mingw/ ? ''sudo '' : '''' ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\actions.rb(300): if RUBY_PLATFORM =~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\rails\app\app_generator.rb(207): ].find { |f| File.exist?(f) } unless RUBY_PLATFORM =~ /(:?mswin|mingw)/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\tasks\testing.rake(33): STDERR.reopen(RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''NUL:'' : ''/dev/null'') ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rake-0.8.4\lib\rake.rb(2143): RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rake-0.8.7\lib\rake.rb(2167): RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\History.rdoc(342):* Consider MinGW as valid RUBY_PLATFORM for --colour option. (patch from Luis Lavena). Closes #406. ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\History.rdoc(365):* Consider MinGW as valid RUBY_PLATFORM for --colour option. (patch from Luis Lavena). Closes #406. ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\bin\autospec(4):system (RUBY_PLATFORM =~ /mswin|mingw/ ? ''autotest.bat'' : ''autotest''), *ARGV ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\lib\spec\runner\options.rb(162): if @colour && RUBY_PLATFORM =~ /mswin|mingw/ ;\ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec_helper.rb(16): ::RUBY_PLATFORM == ''java'' ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec\package\bin_spec_spec.rb(8): pending "Hangs on JRuby" if RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec\package\bin_spec_spec.rb(16): pending "Hangs on JRuby" if RUBY_PLATFORM =~ /java/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rubygems-update-1.3.5\ChangeLog(3793): * changed spec to use the RUBY_PLATFORM for Platform::CURRENT ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rubygems-update-1.3.5\lib\rubygems.rb(1036): @@win_platform = !!WIN_PATTERNS.find { |r| RUBY_PLATFORM =~ r } ruby-1.8.6p368\lib\ruby\gems\1.8\gems\RubyInline-3.8.3\lib\inline.rb(580): RUBY_PLATFORM =~ /darwin9\.[01]/ ruby-1.8.6p368\lib\ruby\gems\1.8\gems\RubyInline-3.8.3\lib\inline.rb(596): if WINDOZE and RUBY_PLATFORM =~ /_80$/ then ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ZenTest-4.1.4\lib\unit_diff.rb(40): WINDOZE = /win32/ =~ RUBY_PLATFORM unless defined? WINDOZE ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(1223): return nil if RUBY_PLATFORM =~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(2086): if RUBY_PLATFORM =~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(2434): if RUBY_PLATFORM =~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(4277): raise LoadError, "Cygwin is a Posix OS." if RUBY_PLATFORM =~ /\bcygwin\b/i ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(4278): raise LoadError, "Not Windows" if RUBY_PLATFORM !~ /mswin|mingw/ ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rubygems.rb(1036): @@win_platform = !!WIN_PATTERNS.find { |r| RUBY_PLATFORM =~ r } Tomas -----Original Message----- From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Ivan Porto Carrero Sent: Thursday, March 11, 2010 1:19 PM To: ironruby-core at rubyforge.org Subject: Re: [Ironruby-core] The Proper way to detect the Windows Platform in Ruby I''ve been using ENV[''OS''] == ''Windows_NT'' to detect windows relaibly On Thursday, March 11, 2010, Will Green <will at hotgazpacho.org<mailto:will at hotgazpacho.org>> wrote:> Thought I''d share this with everyone: > http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-platf > orm-in-ruby/ > > > From one of the JRuby core team. > <http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-plat > form-in-ruby/>-- > Will Green > http://hotgazpacho.org/ > >-- --- Met vriendelijke groeten - Best regards - Salutations Ivan Porto Carrero - Mob: +32.486.787.582 Web: http://whiterabbitconsulting.eu - http://flanders.co.nz Twitter: http://twitter.com/casualjim Author of IronRuby in Action (http://manning.com/carrero) Microsoft IronRuby/C# MVP _______________________________________________ Ironruby-core mailing list Ironruby-core at rubyforge.org<mailto:Ironruby-core at rubyforge.org> http://rubyforge.org/mailman/listinfo/ironruby-core -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100311/74a33b72/attachment-0001.html>
Will Green
2010-Mar-11 22:01 UTC
[Ironruby-core] The Proper way to detect the Windows Platform in Ruby
Yikes! Well, those are all OSS projects. We should fork them, fix them, and send pull requests/patches ;-) -- Will Green http://hotgazpacho.org/ On Thu, Mar 11, 2010 at 4:39 PM, Tomas Matousek < Tomas.Matousek at microsoft.com> wrote:> Sure, using RUBY_PLATFORM is not good. However if you search thru Ruby > gems it''s used all over the place :( > So until at least 90% of Ruby apps detect OS specific features properly we > need to keep RUBY_PLATFORM set to win32/darwin/linux depending on the > underlying OS. I guess some gems might be broken on JRuby on Windows since > they don''t check for "java". > > ruby-1.8.6p368\lib\ruby\1.8\ftools.rb(103): if RUBY_PLATFORM =~ > /djgpp|(cyg|ms|bcc)win|mingw/ and file? to > ruby-1.8.6p368\lib\ruby\1.8\drb\extservm.rb(89): if RUBY_PLATFORM =~ > /mswin32/ && /NT/ =~ ENV["OS"] > ruby-1.8.6p368\lib\ruby\1.8\rdoc\options.rb(547): return if > RUBY_PLATFORM =~ /win/ > ruby-1.8.6p368\lib\ruby\1.8\soap\streamHandler.rb(23): > RUBY_VERSION_STRING = "ruby #{ RUBY_VERSION } (#{ RUBY_RELEASE_DATE }) [#{ > RUBY_PLATFORM }]" > ruby-1.8.6p368\lib\ruby\1.8\xmlrpc\server.rb(643): if RUBY_PLATFORM =~ > /mingw|mswin32/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\actionpack-2.3.5\test\controller\layout_test.rb(201):unless > RUBY_PLATFORM =~ /(:?mswin|mingw|bccwin)/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-2.3.5\lib\active_support\core_ext\kernel\reporting.rb(38): > stream.reopen(RUBY_PLATFORM =~ /mswin/ ? ''NUL:'' : ''/dev/null'') > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-2.3.5\lib\active_support\xml_mini\jdom.rb(1):raise > "JRuby is required to use the JDOM backend for XmlMini" unless RUBY_PLATFORM > =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\core_ext\kernel\reporting.rb(40): > stream.reopen(RUBY_PLATFORM =~ /mswin/ ? ''NUL:'' : ''/dev/null'') > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\testing\isolation.rb(36): > !ENV["NO_FORK"] && RUBY_PLATFORM !~ /mswin|mingw|java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\xml_mini\jdom.rb(1):raise > "JRuby is required to use the JDOM backend for XmlMini" unless RUBY_PLATFORM > =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\Rakefile(41):RCOV_ENABLED > = (RUBY_PLATFORM != "java" && RUBY_VERSION =~ /^1\.8/) > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\Rakefile(48):WINDOWS > = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\spec\addressable\uri_spec.rb(3010): > if RUBY_PLATFORM =~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\spec\addressable\uri_spec.rb(3017): > if RUBY_PLATFORM =~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\Rakefile(40):RCOV_ENABLED > = (RUBY_PLATFORM != "java" && RUBY_VERSION =~ /^1\.8/) > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\Rakefile(47):WINDOWS > = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\spec\addressable\uri_spec.rb(3128): > if RUBY_PLATFORM =~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\spec\addressable\uri_spec.rb(3135): > if RUBY_PLATFORM =~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cgi_multipart_eof_fix-2.5.0\lib\cgi_multipart_eof_fix.rb(8):if > version [0] < 2 and version [1] < 9 and version [2] < 6 and RUBY_PLATFORM !~ > /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cgi_multipart_eof_fix-2.5.0\test\test_cgi_multipart_eof_fix.rb(18):IS_VULNERABLE > = (version [0] < 2 and version [1] < 9 and version [2] < 6 and RUBY_PLATFORM > !~ /java/) > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cucumber-0.3.94\gem_tasks\environment.rake(2): > RUBY_APP = if RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cucumber-0.3.97\gem_tasks\environment.rake(2): > RUBY_APP = if RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\Rakefile(9):JRUBY > = RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\lib\data_objects\connection.rb(19): > warn ''JNDI URLs (connection strings) are only for use with JRuby'' unless > RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\lib\data_objects\connection.rb(22): > warn ''JDBC URLs (connection strings) are only for use with JRuby'' unless > RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-adjust-0.9.11\Rakefile(5):JRUBY > RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-core-0.9.11\tasks\install.rb(1):WIN32 > = (RUBY_PLATFORM =~ /win32|mingw|bccwin|cygwin/) rescue nil > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-serializer-0.9.11\Rakefile(5):JRUBY > = RUBY_PLATFORM =~ /java/ > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-types-0.9.11\Rakefile(5):JRUBY > = RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-validations-0.9.11\Rakefile(5):JRUBY > = RUBY_PLATFORM =~ /java/ > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\extlib-0.9.12\Rakefile(13):JRUBY > = RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\extlib-0.9.12\spec\pooling_spec.rb(61): > pool_size = if RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\gem_plugin-0.2.3\resources\Rakefile(35): > p.need_tar = true if RUBY_PLATFORM !~ /mswin/ > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\haml-2.2.2\Rakefile(67): sudo > RUBY_PLATFORM =~ /win32/ ? '''' : ''sudo'' > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\haml-2.2.2\Rakefile(68): gem > RUBY_PLATFORM =~ /java/ ? ''jgem'' : ''gem'' > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\highline-1.5.1\lib\highline\system_extensions.rb(21): > raise LoadError, "Cygwin is a Posix OS." if RUBY_PLATFORM =~ /\bcygwin\b/i > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\highline-1.5.1\lib\highline\system_extensions.rb(184): > if /solaris/ =~ RUBY_PLATFORM and > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\hoe-2.3.3\lib\hoe.rb(91): WINDOZE > = /mswin|mingw/ =~ RUBY_PLATFORM unless defined? WINDOZE > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-action-args-1.0.12\lib\merb-action-args\get_args.rb(1):unless > RUBY_PLATFORM == "java" > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\Rakefile(408): > spec_cmd = (RUBY_PLATFORM =~ /java/) ? "jruby -S spec" : "spec" > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\lib\merb-core.rb(778): > RUBY_PLATFORM =~ Merb::Const::JAVA_PLATFORM_REGEXP > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\lib\merb-core.rb(783): > RUBY_PLATFORM =~ Merb::Const::WIN_PLATFORM_REGEXP > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mime-types-1.16\lib\mime\types.rb(494): > system? and (RUBY_PLATFORM =~ @system) > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(70):# > if RUBY_PLATFORM !~ /mswin|mingw|java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(167):# > unless RUBY_PLATFORM =~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(185):# > sh("rake java package") unless RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(188):# > # sub_project("mongrel_service", :package) if RUBY_PLATFORM =~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(189):# > # sh("rake mswin package") unless RUBY_PLATFORM =~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(207):# > sub_project("mongrel_service", :install) if RUBY_PLATFORM =~ /mswin|mingw/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(219):# > sub_project("mongrel_service", :uninstall) if RUBY_PLATFORM =~ /mswin|mingw/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(232):# > sub_project("mongrel_service", :clean) if RUBY_PLATFORM =~ /mswin|mingw/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\bin\mongrel_rails(140): > if RUBY_PLATFORM !~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(84): > if RUBY_PLATFORM !~ /mswin|mingw/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(188): > if RUBY_PLATFORM !~ /mswin|mingw/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(369): > if RUBY_PLATFORM !~ /mswin|mingw/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\rails.rb(176): > if RUBY_PLATFORM !~ /mswin|mingw/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\test\testhelp.rb(78): > result = RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw/ > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\net-ssh-2.0.13\Rakefile(36): > p.need_tar = true if RUBY_PLATFORM !~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\net-ssh-2.0.13\lib\net\ssh\authentication\agent.rb(6):require > ''net/ssh/authentication/pageant'' if File::ALT_SEPARATOR && !(RUBY_PLATFORM > =~ /java/) > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ParseTree-3.0.4\lib\parse_tree.rb(295): > builder.add_compile_flags "-Werror" unless RUBY_PLATFORM =~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ParseTree-3.0.4\lib\parse_tree.rb(1123): > extern_mode = RUBY_PLATFORM =~ /mswin/ ? ''RUBY_EXTERN'' : ''extern'' > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\pathname2-1.6.2\CHANGES(28):* > Changed platform checking to use rbconfig instead of RUBY_PLATFORM to avoid > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ptools-1.1.7\CHANGES(3):* Replaced > RUBY_PLATFORM with rbconfig check for the sake of other > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rack-1.0.1\lib\rack\rewindable_input.rb(97): > RUBY_PLATFORM !~ /(mswin|mingw|cygwin|java)/ > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\CHANGELOG(497):* > Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, > Kaspar Schiess] > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\CHANGELOG(811):* > Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, > Kaspar Schiess] > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\initializer.rb(873): > if RUBY_PLATFORM =~ /(:?mswin|mingw)/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\console.rb(1):irb > = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''irb.bat'' : ''irb'' > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\dbconsole.rb(35): > commands += commands.map{|cmd| "#{cmd}.exe"} if RUBY_PLATFORM =~ /win32/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\runner.rb(21): > if RUBY_PLATFORM !~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\rails_generator\generators\applications\app\app_generator.rb(261): > ].find { |f| File.exist?(f) } unless RUBY_PLATFORM =~ /(:?mswin|mingw)/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\tasks\testing.rake(33): > STDERR.reopen(RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''NUL:'' : ''/dev/null'') > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\CHANGELOG(494):* > Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, > Kaspar Schiess] > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\CHANGELOG(808):* > Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, > Kaspar Schiess] > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\configuration.rb(44): > RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\commands\dbconsole.rb(45): > commands += commands.map{|cmd| "#{cmd}.exe"} if RUBY_PLATFORM =~ /win32/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\commands\runner.rb(21): > if RUBY_PLATFORM !~ /mswin/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\actions.rb(243): > sudo = options[:sudo] && RUBY_PLATFORM !~ /mswin|mingw/ ? ''sudo '' : '''' > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\actions.rb(300): > if RUBY_PLATFORM =~ /mswin|mingw/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\rails\app\app_generator.rb(207): > ].find { |f| File.exist?(f) } unless RUBY_PLATFORM =~ /(:?mswin|mingw)/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\tasks\testing.rake(33): > STDERR.reopen(RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''NUL:'' : ''/dev/null'') > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rake-0.8.4\lib\rake.rb(2143): > RUBY_PLATFORM =~ > /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rake-0.8.7\lib\rake.rb(2167): > RUBY_PLATFORM =~ > /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\History.rdoc(342):* > Consider MinGW as valid RUBY_PLATFORM for --colour option. (patch from Luis > Lavena). Closes #406. > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\History.rdoc(365):* > Consider MinGW as valid RUBY_PLATFORM for --colour option. (patch from Luis > Lavena). Closes #406. > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\bin\autospec(4):system > (RUBY_PLATFORM =~ /mswin|mingw/ ? ''autotest.bat'' : ''autotest''), *ARGV > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\lib\spec\runner\options.rb(162): > if @colour && RUBY_PLATFORM =~ /mswin|mingw/ ;\ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec_helper.rb(16): > ::RUBY_PLATFORM == ''java'' > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec\package\bin_spec_spec.rb(8): > pending "Hangs on JRuby" if RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec\package\bin_spec_spec.rb(16): > pending "Hangs on JRuby" if RUBY_PLATFORM =~ /java/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rubygems-update-1.3.5\ChangeLog(3793): > * changed spec to use the RUBY_PLATFORM for Platform::CURRENT > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rubygems-update-1.3.5\lib\rubygems.rb(1036): > @@win_platform = !!WIN_PATTERNS.find { |r| RUBY_PLATFORM =~ r } > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\RubyInline-3.8.3\lib\inline.rb(580): > RUBY_PLATFORM =~ /darwin9\.[01]/ > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\RubyInline-3.8.3\lib\inline.rb(596): > if WINDOZE and RUBY_PLATFORM =~ /_80$/ then > > ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ZenTest-4.1.4\lib\unit_diff.rb(40): > WINDOZE = /win32/ =~ RUBY_PLATFORM unless defined? WINDOZE > ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(1223): return > nil if RUBY_PLATFORM =~ /mswin|mingw/ > ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(2086): if > RUBY_PLATFORM =~ /mswin|mingw/ > ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(2434): if > RUBY_PLATFORM =~ /mswin|mingw/ > ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(4277): raise > LoadError, "Cygwin is a Posix OS." if RUBY_PLATFORM =~ /\bcygwin\b/i > ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(4278): raise > LoadError, "Not Windows" if RUBY_PLATFORM !~ /mswin|mingw/ > ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rubygems.rb(1036): > @@win_platform = !!WIN_PATTERNS.find { |r| RUBY_PLATFORM =~ r } > > > Tomas > > -----Original Message----- > From: ironruby-core-bounces at rubyforge.org [ > mailto:ironruby-core-bounces at rubyforge.org<ironruby-core-bounces at rubyforge.org>] > On Behalf Of Ivan Porto Carrero > Sent: Thursday, March 11, 2010 1:19 PM > To: ironruby-core at rubyforge.org > Subject: Re: [Ironruby-core] The Proper way to detect the Windows Platform > in Ruby > > I''ve been using ENV[''OS''] == ''Windows_NT'' to detect windows relaibly > > > On Thursday, March 11, 2010, Will Green <will at hotgazpacho.org> wrote: > > Thought I''d share this with everyone: > > http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-platf > > orm-in-ruby/ > > > > > > From one of the JRuby core team. > > <http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-plat > > form-in-ruby/>-- > > Will Green > > http://hotgazpacho.org/ > > > > > > -- > --- > Met vriendelijke groeten - Best regards - Salutations Ivan Porto Carrero - > Mob: +32.486.787.582 > Web: http://whiterabbitconsulting.eu - http://flanders.co.nz > Twitter: http://twitter.com/casualjim > Author of IronRuby in Action (http://manning.com/carrero) Microsoft > IronRuby/C# MVP _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100311/c784d619/attachment-0001.html>
Mark Ryall
2010-Mar-12 00:12 UTC
[Ironruby-core] The Proper way to detect the Windows Platform in Ruby
I''ve been trying to writing a lot of dubious cross platform command line tools with ruby lately and have wanted to isolate the detection of various platform specific capabilities (playing audio files, accessing the clipboard, launching a browser) to a gem: http://github.com/markryall/splat It is by far the most hideous and embarassing gem ever - basically one gigantic case statement. I should have called it the picture of dorian gray. I''d briefly looked at ironruby 1.0 rc2 but couldn''t see an easy way to characterise it and haven''t got to jruby or linux at all yet. I noticed that someone else has attempted to create something similar with sane (the homepage link from http://rubygems.org/gems/sane is broken so i''m not sure where the source really is). It''d be awesome for the existence of such things to be unnecessary. Mark. On Fri, Mar 12, 2010 at 9:01 AM, Will Green <will at hotgazpacho.org> wrote:> Yikes! > > Well, those are all OSS projects. We should fork them, fix them, and send > pull requests/patches ;-) > > -- > Will Green > http://hotgazpacho.org/ > > > On Thu, Mar 11, 2010 at 4:39 PM, Tomas Matousek < > Tomas.Matousek at microsoft.com> wrote: > >> Sure, using RUBY_PLATFORM is not good. However if you search thru Ruby >> gems it''s used all over the place :( >> So until at least 90% of Ruby apps detect OS specific features properly we >> need to keep RUBY_PLATFORM set to win32/darwin/linux depending on the >> underlying OS. I guess some gems might be broken on JRuby on Windows since >> they don''t check for "java". >> >> ruby-1.8.6p368\lib\ruby\1.8\ftools.rb(103): if RUBY_PLATFORM =~ >> /djgpp|(cyg|ms|bcc)win|mingw/ and file? to >> ruby-1.8.6p368\lib\ruby\1.8\drb\extservm.rb(89): if RUBY_PLATFORM >> =~ /mswin32/ && /NT/ =~ ENV["OS"] >> ruby-1.8.6p368\lib\ruby\1.8\rdoc\options.rb(547): return if >> RUBY_PLATFORM =~ /win/ >> ruby-1.8.6p368\lib\ruby\1.8\soap\streamHandler.rb(23): >> RUBY_VERSION_STRING = "ruby #{ RUBY_VERSION } (#{ RUBY_RELEASE_DATE }) [#{ >> RUBY_PLATFORM }]" >> ruby-1.8.6p368\lib\ruby\1.8\xmlrpc\server.rb(643): if RUBY_PLATFORM >> =~ /mingw|mswin32/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\actionpack-2.3.5\test\controller\layout_test.rb(201):unless >> RUBY_PLATFORM =~ /(:?mswin|mingw|bccwin)/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-2.3.5\lib\active_support\core_ext\kernel\reporting.rb(38): >> stream.reopen(RUBY_PLATFORM =~ /mswin/ ? ''NUL:'' : ''/dev/null'') >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-2.3.5\lib\active_support\xml_mini\jdom.rb(1):raise >> "JRuby is required to use the JDOM backend for XmlMini" unless RUBY_PLATFORM >> =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\core_ext\kernel\reporting.rb(40): >> stream.reopen(RUBY_PLATFORM =~ /mswin/ ? ''NUL:'' : ''/dev/null'') >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\testing\isolation.rb(36): >> !ENV["NO_FORK"] && RUBY_PLATFORM !~ /mswin|mingw|java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\activesupport-3.0.pre\lib\active_support\xml_mini\jdom.rb(1):raise >> "JRuby is required to use the JDOM backend for XmlMini" unless RUBY_PLATFORM >> =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\Rakefile(41):RCOV_ENABLED >> = (RUBY_PLATFORM != "java" && RUBY_VERSION =~ /^1\.8/) >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\Rakefile(48):WINDOWS >> = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\spec\addressable\uri_spec.rb(3010): >> if RUBY_PLATFORM =~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.0.2\spec\addressable\uri_spec.rb(3017): >> if RUBY_PLATFORM =~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\Rakefile(40):RCOV_ENABLED >> = (RUBY_PLATFORM != "java" && RUBY_VERSION =~ /^1\.8/) >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\Rakefile(47):WINDOWS >> = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\spec\addressable\uri_spec.rb(3128): >> if RUBY_PLATFORM =~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\addressable-2.1.0\spec\addressable\uri_spec.rb(3135): >> if RUBY_PLATFORM =~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cgi_multipart_eof_fix-2.5.0\lib\cgi_multipart_eof_fix.rb(8):if >> version [0] < 2 and version [1] < 9 and version [2] < 6 and RUBY_PLATFORM !~ >> /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cgi_multipart_eof_fix-2.5.0\test\test_cgi_multipart_eof_fix.rb(18):IS_VULNERABLE >> = (version [0] < 2 and version [1] < 9 and version [2] < 6 and RUBY_PLATFORM >> !~ /java/) >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cucumber-0.3.94\gem_tasks\environment.rake(2): >> RUBY_APP = if RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\cucumber-0.3.97\gem_tasks\environment.rake(2): >> RUBY_APP = if RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\Rakefile(9):JRUBY >> = RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\lib\data_objects\connection.rb(19): >> warn ''JNDI URLs (connection strings) are only for use with JRuby'' unless >> RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\data_objects-0.9.12\lib\data_objects\connection.rb(22): >> warn ''JDBC URLs (connection strings) are only for use with JRuby'' unless >> RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-adjust-0.9.11\Rakefile(5):JRUBY >> RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-core-0.9.11\tasks\install.rb(1):WIN32 >> = (RUBY_PLATFORM =~ /win32|mingw|bccwin|cygwin/) rescue nil >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-serializer-0.9.11\Rakefile(5):JRUBY >> = RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-types-0.9.11\Rakefile(5):JRUBY >> RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\dm-validations-0.9.11\Rakefile(5):JRUBY >> = RUBY_PLATFORM =~ /java/ >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\extlib-0.9.12\Rakefile(13):JRUBY >> = RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\extlib-0.9.12\spec\pooling_spec.rb(61): >> pool_size = if RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\gem_plugin-0.2.3\resources\Rakefile(35): >> p.need_tar = true if RUBY_PLATFORM !~ /mswin/ >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\haml-2.2.2\Rakefile(67): sudo >> RUBY_PLATFORM =~ /win32/ ? '''' : ''sudo'' >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\haml-2.2.2\Rakefile(68): gem >> RUBY_PLATFORM =~ /java/ ? ''jgem'' : ''gem'' >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\highline-1.5.1\lib\highline\system_extensions.rb(21): >> raise LoadError, "Cygwin is a Posix OS." if RUBY_PLATFORM =~ /\bcygwin\b/i >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\highline-1.5.1\lib\highline\system_extensions.rb(184): >> if /solaris/ =~ RUBY_PLATFORM and >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\hoe-2.3.3\lib\hoe.rb(91): WINDOZE >> = /mswin|mingw/ =~ RUBY_PLATFORM unless defined? WINDOZE >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-action-args-1.0.12\lib\merb-action-args\get_args.rb(1):unless >> RUBY_PLATFORM == "java" >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\Rakefile(408): >> spec_cmd = (RUBY_PLATFORM =~ /java/) ? "jruby -S spec" : "spec" >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\lib\merb-core.rb(778): >> RUBY_PLATFORM =~ Merb::Const::JAVA_PLATFORM_REGEXP >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\merb-core-1.0.12\lib\merb-core.rb(783): >> RUBY_PLATFORM =~ Merb::Const::WIN_PLATFORM_REGEXP >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mime-types-1.16\lib\mime\types.rb(494): >> system? and (RUBY_PLATFORM =~ @system) >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(70):# >> if RUBY_PLATFORM !~ /mswin|mingw|java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(167):# >> unless RUBY_PLATFORM =~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(185):# >> sh("rake java package") unless RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(188):# >> # sub_project("mongrel_service", :package) if RUBY_PLATFORM =~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(189):# >> # sh("rake mswin package") unless RUBY_PLATFORM =~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(207):# >> sub_project("mongrel_service", :install) if RUBY_PLATFORM =~ /mswin|mingw/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(219):# >> sub_project("mongrel_service", :uninstall) if RUBY_PLATFORM =~ /mswin|mingw/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(232):# >> sub_project("mongrel_service", :clean) if RUBY_PLATFORM =~ /mswin|mingw/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\bin\mongrel_rails(140): >> if RUBY_PLATFORM !~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(84): >> if RUBY_PLATFORM !~ /mswin|mingw/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(188): >> if RUBY_PLATFORM !~ /mswin|mingw/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\configurator.rb(369): >> if RUBY_PLATFORM !~ /mswin|mingw/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\lib\mongrel\rails.rb(176): >> if RUBY_PLATFORM !~ /mswin|mingw/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\test\testhelp.rb(78): >> result = RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw/ >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\net-ssh-2.0.13\Rakefile(36): >> p.need_tar = true if RUBY_PLATFORM !~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\net-ssh-2.0.13\lib\net\ssh\authentication\agent.rb(6):require >> ''net/ssh/authentication/pageant'' if File::ALT_SEPARATOR && !(RUBY_PLATFORM >> =~ /java/) >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ParseTree-3.0.4\lib\parse_tree.rb(295): >> builder.add_compile_flags "-Werror" unless RUBY_PLATFORM =~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ParseTree-3.0.4\lib\parse_tree.rb(1123): >> extern_mode = RUBY_PLATFORM =~ /mswin/ ? ''RUBY_EXTERN'' : ''extern'' >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\pathname2-1.6.2\CHANGES(28):* >> Changed platform checking to use rbconfig instead of RUBY_PLATFORM to avoid >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ptools-1.1.7\CHANGES(3):* Replaced >> RUBY_PLATFORM with rbconfig check for the sake of other >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rack-1.0.1\lib\rack\rewindable_input.rb(97): >> RUBY_PLATFORM !~ /(mswin|mingw|cygwin|java)/ >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\CHANGELOG(497):* >> Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, >> Kaspar Schiess] >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\CHANGELOG(811):* >> Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, >> Kaspar Schiess] >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\initializer.rb(873): >> if RUBY_PLATFORM =~ /(:?mswin|mingw)/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\console.rb(1):irb >> = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''irb.bat'' : ''irb'' >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\dbconsole.rb(35): >> commands += commands.map{|cmd| "#{cmd}.exe"} if RUBY_PLATFORM =~ /win32/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\commands\runner.rb(21): >> if RUBY_PLATFORM !~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\rails_generator\generators\applications\app\app_generator.rb(261): >> ].find { |f| File.exist?(f) } unless RUBY_PLATFORM =~ /(:?mswin|mingw)/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\lib\tasks\testing.rake(33): >> STDERR.reopen(RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''NUL:'' : ''/dev/null'') >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\CHANGELOG(494):* >> Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, >> Kaspar Schiess] >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\CHANGELOG(808):* >> Windows: include MinGW in RUBY_PLATFORM check. #2982 [okkez000 at gmail.com, >> Kaspar Schiess] >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\configuration.rb(44): >> RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\commands\dbconsole.rb(45): >> commands += commands.map{|cmd| "#{cmd}.exe"} if RUBY_PLATFORM =~ /win32/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\commands\runner.rb(21): >> if RUBY_PLATFORM !~ /mswin/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\actions.rb(243): >> sudo = options[:sudo] && RUBY_PLATFORM !~ /mswin|mingw/ ? ''sudo '' : '''' >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\actions.rb(300): >> if RUBY_PLATFORM =~ /mswin|mingw/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\generators\rails\app\app_generator.rb(207): >> ].find { |f| File.exist?(f) } unless RUBY_PLATFORM =~ /(:?mswin|mingw)/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\lib\rails\tasks\testing.rake(33): >> STDERR.reopen(RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? ''NUL:'' : ''/dev/null'') >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rake-0.8.4\lib\rake.rb(2143): >> RUBY_PLATFORM =~ >> /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rake-0.8.7\lib\rake.rb(2167): >> RUBY_PLATFORM =~ >> /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\History.rdoc(342):* >> Consider MinGW as valid RUBY_PLATFORM for --colour option. (patch from Luis >> Lavena). Closes #406. >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\History.rdoc(365):* >> Consider MinGW as valid RUBY_PLATFORM for --colour option. (patch from Luis >> Lavena). Closes #406. >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\bin\autospec(4):system >> (RUBY_PLATFORM =~ /mswin|mingw/ ? ''autotest.bat'' : ''autotest''), *ARGV >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\lib\spec\runner\options.rb(162): >> if @colour && RUBY_PLATFORM =~ /mswin|mingw/ ;\ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec_helper.rb(16): >> ::RUBY_PLATFORM == ''java'' >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec\package\bin_spec_spec.rb(8): >> pending "Hangs on JRuby" if RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rspec-1.2.8\spec\spec\package\bin_spec_spec.rb(16): >> pending "Hangs on JRuby" if RUBY_PLATFORM =~ /java/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rubygems-update-1.3.5\ChangeLog(3793): >> * changed spec to use the RUBY_PLATFORM for Platform::CURRENT >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rubygems-update-1.3.5\lib\rubygems.rb(1036): >> @@win_platform = !!WIN_PATTERNS.find { |r| RUBY_PLATFORM =~ r } >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\RubyInline-3.8.3\lib\inline.rb(580): >> RUBY_PLATFORM =~ /darwin9\.[01]/ >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\RubyInline-3.8.3\lib\inline.rb(596): >> if WINDOZE and RUBY_PLATFORM =~ /_80$/ then >> >> ruby-1.8.6p368\lib\ruby\gems\1.8\gems\ZenTest-4.1.4\lib\unit_diff.rb(40): >> WINDOZE = /win32/ =~ RUBY_PLATFORM unless defined? WINDOZE >> ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(1223): return >> nil if RUBY_PLATFORM =~ /mswin|mingw/ >> ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(2086): if >> RUBY_PLATFORM =~ /mswin|mingw/ >> ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(2434): if >> RUBY_PLATFORM =~ /mswin|mingw/ >> ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(4277): raise >> LoadError, "Cygwin is a Posix OS." if RUBY_PLATFORM =~ /\bcygwin\b/i >> ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rbreadline.rb(4278): raise >> LoadError, "Not Windows" if RUBY_PLATFORM !~ /mswin|mingw/ >> ruby-1.8.6p368\lib\ruby\site_ruby\1.8\rubygems.rb(1036): >> @@win_platform = !!WIN_PATTERNS.find { |r| RUBY_PLATFORM =~ r } >> >> >> Tomas >> >> -----Original Message----- >> From: ironruby-core-bounces at rubyforge.org [ >> mailto:ironruby-core-bounces at rubyforge.org<ironruby-core-bounces at rubyforge.org>] >> On Behalf Of Ivan Porto Carrero >> Sent: Thursday, March 11, 2010 1:19 PM >> To: ironruby-core at rubyforge.org >> Subject: Re: [Ironruby-core] The Proper way to detect the Windows Platform >> in Ruby >> >> I''ve been using ENV[''OS''] == ''Windows_NT'' to detect windows relaibly >> >> >> On Thursday, March 11, 2010, Will Green <will at hotgazpacho.org> wrote: >> > Thought I''d share this with everyone: >> > http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-platf >> > orm-in-ruby/ >> > >> > >> > From one of the JRuby core team. >> > <http://blog.emptyway.com/2009/11/03/proper-way-to-detect-windows-plat >> > form-in-ruby/>-- >> > Will Green >> > http://hotgazpacho.org/ >> > >> > >> >> -- >> --- >> Met vriendelijke groeten - Best regards - Salutations Ivan Porto Carrero - >> Mob: +32.486.787.582 >> Web: http://whiterabbitconsulting.eu - http://flanders.co.nz >> Twitter: http://twitter.com/casualjim >> Author of IronRuby in Action (http://manning.com/carrero) Microsoft >> IronRuby/C# MVP _______________________________________________ >> Ironruby-core mailing list >> Ironruby-core at rubyforge.org >> http://rubyforge.org/mailman/listinfo/ironruby-core >> >> >> _______________________________________________ >> Ironruby-core mailing list >> Ironruby-core at rubyforge.org >> http://rubyforge.org/mailman/listinfo/ironruby-core >> >> > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100312/f7eb1442/attachment-0001.html>