【问题标题】:Colors in irb / rails consoleirb / rails 控制台中的颜色
【发布时间】:2014-07-16 19:29:17
【问题描述】:

我正在测试一个在终端中输出颜色的 gem:

module Color
    def self.colorize(text, color_code)
        "#{color_code}#{text}e[0m"
    end

    def self.red(text)
        self.colorize(text, "\033[1;31;12m")
    end
end

我在同一目录中有一个测试文件,名为 color_test.rb:

require_relative 'color.rb'

puts Color.red('I should be red')

这会导致以下结果:

$ ruby color_test.rb
I should be red 

而且测试实际上是红色的。万岁。但是,rails 控制台中并没有发生同样的情况:

$ rails c
Loading development environment (Rails 4.1.1)
2.0.0-p247 :001 > require 'color'
 => true 
2.0.0-p247 :003 > Chroma.colourise('text',"\033[1;31;12m")
 => "\e[1;31;12mtexte[0m"

那么我该如何逃脱呢? (如果这甚至是术语:P)我也希望能够在控制台中显示粗体文本和其他样式。

这只是为了测试,所以我可以为 rails 控制台下载某种扩展,但是如果有办法将此功能打包到 gem 中并赋予控制台颜色,那将非常酷,所以如果有人可以告诉我我会多么高兴。

【问题讨论】:

    标签: ruby-on-rails ruby rails-console


    【解决方案1】:

    试试这个:

    text = 'red text'
    puts "\033[31m#{text}\033[0m"
    

    另一种选择是扩展 String 类

    class String
      def red
        "\033[31m#{self}\033[0m"
      end
    
      def green
        "\033[32m#{self}\033[0m"
      end
    end
    

    然后你可以做类似'spinach'.green

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2016-06-17
      • 2012-05-03
      • 2011-06-18
      相关资源
      最近更新 更多