什么';了解ruby运行的平台的最佳实践方法是什么?
我在终端和ruby logger中使用什么';了解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”或其他奇怪的东西。使用这个加上一个条件似乎是一
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'中没有太多开销。