Цвета в консоли irb/rails

Я тестирую драгоценный камень, который выводит цвет в терминале:

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, однако, если есть способ упаковать эту функциональность в драгоценный камень и дать цвета консоли, это было бы довольно круто, поэтому, если бы кто-то мог показать мне, как я был бы рад.


person Starkers    schedule 16.07.2014    source источник


Ответы (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

person lfender6445    schedule 16.07.2014