Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';了解ruby运行的平台的最佳实践方法是什么?_Ruby_Cross Platform_Multiplatform - Fatal编程技术网

什么';了解ruby运行的平台的最佳实践方法是什么?

什么';了解ruby运行的平台的最佳实践方法是什么?,ruby,cross-platform,multiplatform,Ruby,Cross Platform,Multiplatform,我在终端和ruby logger中使用coloredgem进行彩色打印。我需要在linux和windows上运行此代码 在windows上,我必须首先要求使用“win32console”,否则彩色打印不起作用(我只看到ANSI转义字符)。但如果我在linux上需要win32console,它显然会崩溃 在ruby中,处理这种情况的通常方法是什么?我注意到了RUBY_PLATFORM变量,但在windows虚拟机上,我尝试了“i386-mingw32”或其他奇怪的东西。使用这个加上一个条件似乎是一

我在终端和ruby logger中使用
colored
gem进行彩色打印。我需要在linux和windows上运行此代码

在windows上,我必须首先
要求使用“win32console”
,否则彩色打印不起作用(我只看到ANSI转义字符)。但如果我在linux上需要win32console,它显然会崩溃


在ruby中,处理这种情况的通常方法是什么?我注意到了
RUBY_PLATFORM
变量,但在windows虚拟机上,我尝试了
“i386-mingw32”
或其他奇怪的东西。使用这个加上一个条件似乎是一个非常简单的方法来实现我的需要,所以我希望这个问题有一个更好的解决方案

使用RUBY_平台没有错,这是它的目的。 你也可以问它操作系统本身,对于windows,那将是

ENV['OS']
这给了“视窗”一个远景

不知道其他操作系统的对应项

另见:


    • 使用RUBY_平台没什么错,这是它的目的。 你也可以问它操作系统本身,对于windows,那将是

      ENV['OS']
      
      这给了“视窗”一个远景

      不知道其他操作系统的对应项

      另见:

        • 总有:

          begin
            require 'win32console'
          rescue LoadError
          end
          
          我发现写这篇文章更容易,而且我会为自己决定使用哪个操作系统以及是否加载它而进行推理

          更新:我认为win32console是内置的,而不是宝石。我相信Win32API在所有Windows安装上都可用,所以它是测试“这是Windows吗?”(而不是“这是什么操作系统,那是Windows吗?”)的好代理

          总是有:

          begin
            require 'win32console'
          rescue LoadError
          end
          
          我发现写这篇文章更容易,而且我会为自己决定使用哪个操作系统以及是否加载它而进行推理

          更新:我认为win32console是内置的,而不是宝石。我相信Win32API在所有Windows安装上都可用,所以它是测试“这是Windows吗?”(而不是“这是什么操作系统,那是Windows吗?”)的好代理


          你在找操作系统吗?如果是这样,这可能会有帮助:是的,我看到了这个问题。答案是,我认为这类东西似乎有点便宜和脆弱。你在找操作系统吗?如果是这样,这可能会有帮助:是的,我看到了这个问题。答案是,我认为这类东西似乎有点廉价和脆弱。我考虑过这种方法,但这也意味着,如果windows用户没有“Win32 Console”gem,他们会默默地失败。所以我仍然需要一种方法来区分那些应该去安装gem的windows用户和可以安全地忽略gem的linux用户LoadError@wim对不起,我想win32console是Ruby安装的一部分。我很确定Win32API事实上是这样的,所以我更新了我的答案。谢谢,这看起来是一个更好的选择,前提是不需要的
          要求使用“Win32API”不会有太多开销。我考虑过这种方法,但这也意味着如果windows用户没有“win32console”gem,他们会默默失败。所以我仍然需要一种方法来区分那些应该去安装gem的windows用户和可以安全地忽略gem的linux用户LoadError@wim对不起,我想win32console是Ruby安装的一部分。我很确定Win32API事实上是这样的,所以我更新了我的答案。谢谢,这看起来是一个更好的选择,前提是在不需要的
          require'Win32API'中没有太多开销。