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/
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/
I’ve been using ENV[‘OS’] == ‘Windows_NT’ to detect windows relaibly
On Thursday, March 11, 2010, Will G. [email protected] 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 G.
http://hotgazpacho.org/
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto C. - 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
Yikes!
Well, those are all OSS projects. We should fork them, fix them, and
send
pull requests/patches
–
Will G.
http://hotgazpacho.org/
On Thu, Mar 11, 2010 at 4:39 PM, Tomas M. <
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:
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 sane | RubyGems.org | your community gem host 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.
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):#
ruby-1.8.6p368\lib\ruby\gems\1.8\gems\mongrel-1.1.5-x86-mingw32\mongrel.gemspec(189):#
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
[[email protected], Kaspar S.]
ruby-1.8.6p368\lib\ruby\gems\1.8\gems\rails-2.3.5\CHANGELOG(811):*
Windows: include MinGW in RUBY_PLATFORM check. #2982
[[email protected], Kaspar S.]
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
[[email protected], Kaspar S.]
ruby-1.8.6p368\lib\ruby\gems\1.8\gems\railties-3.0.pre\CHANGELOG(808):*
Windows: include MinGW in RUBY_PLATFORM check. #2982
[[email protected], Kaspar S.]
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 L.). 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 L.). 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):
Tomas
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs