草庐IT

ansi-escape

全部标签

Ruby popen3 和 ANSI 颜色

我正在尝试让watchr在文件更改时自动运行测试,并且得到了我需要工作的大部分内容,除了RSpec中的所有ANSI颜色都被忽略了这一事实。违规代码如下:stdin,stdout,stderr=Open3.popen3(cmd)stdout.each_linedo|line|last_output=lineputslineend当cmd等于rspecspec/**/*.rb时,上面的代码可以正常运行RSpec,除了所有输出都是单色的。我看过使用Kernel.system代替,但是系统不返回我需要确定测试是否失败/成功的输出。如何获取从Ruby中执行的脚本的输出(包括ANSI颜色)并将其输

ruby - 为什么我的带有 ANSI 颜色代码的 IRB 提示通过复制/粘贴弄乱了翻页/翻页行为?

我添加到我的.irbrc:IRB.conf[:PROMPT].reverse_merge!(:RAILS_ENV=>{:PROMPT_I=>"#{current_app}#{rails_env}#{prompt}",:PROMPT_N=>"#{current_app}#{rails_env}#{prompt}",:PROMPT_S=>nil,:PROMPT_C=>"?>",:RETURN=>"=>%s\n"})IRB.conf[:PROMPT_MODE]=:RAILS_ENV如果我这样做:current_app="\e[31mfoo_bar_app\e[0m"rails_env="\e

ruby - 在将字符串写入日志文件之前从字符串中删除颜色装饰

我这样使用ruby​​记录器:$logger=Logger.newMultiIO.new($stdout,log_file)MultiIO是我从thisanswer得到的一个类.这在大多数情况下效果很好,但我正在使用'colored'ruby​​gem在终端上提供彩色输出。不幸的是,这也最终出现在日志文件中,因为ANSI转义看起来像[32mPASS[0m或一些类似的不可打印字符垃圾。清理日志文件字符串同时保持tty字符串颜色的最佳方法是什么?我不介意猴子修补Logger或MultiIO,但我绝对不希望对日志文件和屏幕进行两次不同的调用。 最佳答案

ruby - 为什么 URI.escape 不转义单引号?

为什么URI.escape不转义单引号?URI.escape("foo'bar\"baz")=>"foo'bar%22%20baz" 最佳答案 出于同样的原因,它不会转义?或/或:等等。URI.escape()仅转义不能在URL中使用的字符根本,而不转义具有特殊含义的字符。您要找的是CGI.escape():require"cgi"CGI.escape("foo'bar\"baz")=>"foo%27bar%22+baz" 关于ruby-为什么URI.escape不转义单引号?,我们在S

ruby - Ruby 中的 URI.escape 和 URI.encode 有什么区别?

我试图找出URI.escape和URI.encode之间的区别ruby。两者都没有按照我的意愿进行,即对URL进行完全编码。例如,我希望http://my.web.com为http%3A%2F%2Fmy%2Eweb%2Ecom 最佳答案 没有区别。在Ruby1.9.3中encodeissimplyanaliasforescape.[编辑]请注意,这些方法允许对字符的“不安全”描述符进行编码:URI.encode('http://my.web.com',/\W/)#=>"http%3A%2F%2Fmy%2Eweb%2Ecom"谢谢@m

ruby - 使用 Ruby 将 UTF8 转换为 ANSI

我有一个Ruby脚本,它在Linux机器上远程生成一个UTF8CSV文件,然后通过SFTP将该文件传输到Windows机器。然后我需要用Excel打开这个文件,但是Excel没有UTF8,所以我总是需要在能够将UTF8转换为ANSI的文本编辑器中打开这个文件。我很乐意使用Ruby以编程方式执行此操作并避免手动转换步骤。最简单的方法是什么?PS:我尝试使用iconv但没有成功。 最佳答案 ascii_str=yourUTF8text.unpack("U*").map{|c|c.chr}.join假设您的文本确实适合ascii字符集。

ruby - Regexp.escape 不转义正斜杠?

在IRB中,如果我将类似“/domain/path”的字符串传递给Regexp.escape,它只会返回相同的字符串。我认为正斜杠应该用反斜杠转义?我在这里遗漏了什么吗? 最佳答案 此外,如果您指定其他类型的分隔符(或创建Regexp类的实例),您需要转义/字符的唯一原因是因为它是正则表达式的分隔符你不会有这个问题:/^hello\/world$/#escaping'/'justtosay:"thisisnottheend"%r"^hello/world$"#noneedforescaping'/'Regexp.new('^hell

javascript - Escape String - 在 Javascript 中输出 rails 字符串

这个问题在这里已经有了答案:HowtopassRubyvariablestoaJavaScriptfunctioninaRailsview?(6个答案)关闭8年前。我正在尝试将字符串值分配给.erb文件中的javascript对象,如下所示:vardata={'name':'',...};问题是,如果name的值是Tom'ssmallears,data.name的输出将是Tom'ssmallears.有没有办法转义特殊字符?我试过做'name':''但是UncaughtSyntaxError:Unexpectedidentifier将输出输出到控制台。正在做输出Tom\&#x

ruby - Notepad++ 只是调用 "ANSI"的编码,有谁知道在 Ruby 中如何调用它?

我有一堆.txt,Notepad++说(在其下拉“编码”菜单中)是“ANSI”。它们中有德语字符[äöüß],在Notepad++中显示良好。但是当我File.read'thisisaGermantextexample.txt'它们时,它们并没有正确显示在irb中。那么有人知道我应该给Encoding.default_external=什么参数吗?(我假设这就是解决方案,对吧?)当'utf-8'或'cp850'时,它读取带有“äöüß”的“ANSI”文件为“\xE4\xF6\xFC\xDF”...(请不要犹豫,在你的回答中提及明显“显而易见”的事情;我和你一样新手,但仍然知道足以问这个

ruby - URI.escape 和 CGI​​.escape 有什么区别?

URI.escape和CGI.escape有什么区别,我应该使用哪一个? 最佳答案 斧头和剑有什么区别,我应该使用哪一种?好吧,这取决于您需要做什么。URI.escape应该将字符串(URL)编码为所谓的“Percent-encoding”。CGI::escape来自CGI规范,它描述了数据应该如何在网络服务器和应用程序之间编码/解码。现在,假设您需要在应用中转义URI。这是一个更具体的用例。为此,Ruby社区多年来一直使用URI.escape。URI.escape的问题在于它无法处理RFC-3896规范。URI.escape'ht