Терминальный цвет в рубине? - PullRequest
19 голосов
/ 10 июля 2009

Есть ли модуль ruby ​​для раскрашивания строк в терминале linux?

Ответы [ 5 ]

16 голосов
/ 30 августа 2010

Я предпочитаю Rainbow gem , поскольку он также поддерживает Windows, если был установлен win32console gem.

Вы можете использовать его так:

puts "some " + "red".color(:red) + " and " + "blue on yellow".color(:blue).background(:yellow)
10 голосов
/ 10 июля 2009

эм ок, гугл был моим другом:)

http://term -ansicolor.rubyforge.org /

7 голосов
/ 21 апреля 2014

Все, что вам нужно сделать, это начать с "\e[##m" и закончить "\e[0m"

Просто замените ## на номер цвета. Примеры:

31:Red 32:Green 33:Yellow 34:Blue 35:Magenta 36:Teal 37:Grey

1:Bold (Can be used with any color)

Вот скрипт ruby ​​для отображения всех цветов терминала. Загрузите его или запустите приведенный ниже код.

def color(index)
  normal = "\e[#{index}m#{index}\e[0m"
  bold = "\e[#{index}m\e[1m#{index}\e[0m"
  "#{normal}  #{bold}  " 
end

8.times do|index| 
  line = color(index + 1)
  line += color(index + 30)
  line += color(index + 90)
  line += color(index + 40)
  line += color(index + 100)
  puts line
end
5 голосов
/ 18 июля 2014

Использование методов класса String, таких как:

class String
def black;          "\033[30m#{self}\033[0m" end
def red;            "\033[31m#{self}\033[0m" end
def green;          "\033[32m#{self}\033[0m" end
def brown;          "\033[33m#{self}\033[0m" end
def blue;           "\033[34m#{self}\033[0m" end
def magenta;        "\033[35m#{self}\033[0m" end
def cyan;           "\033[36m#{self}\033[0m" end
def gray;           "\033[37m#{self}\033[0m" end
end

и использование:

puts "This prints green".green
puts "This prints red".red
0 голосов
/ 30 апреля 2015

Я большой поклонник ruby ​​colorize gem, который я недавно скачал. Как только вы загрузите и включите его в свою программу, вы можете добавить

.colorize(:blue)

до конца любой строки. Вы можете использовать большинство цветов, включая предшествующий цвет light_, например,

.colorize(:light_blue)

Вы также можете сделать цвета фона, EG:

puts "mytext".colorize(:background => :green

цветные подчеркивания, EG:

puts "mytext".on_blue.underline

или используйте для него HTML-подобные теги

puts <blue> "text text text" </blue>

для раскраски Github, перейдите к раскраски Github

Вы можете установить самоцвет colorize, набрав

gem install colorize

в ваш терминал, командную строку, что угодно. затем поместите это в свой файл, прежде чем вы положите его в использование

EG:

require 'rubygems'
require 'colorize'
puts "mytext".colorize(:red)

но НЕ

puts "mytext".colorize(:red)
require 'rubygems'
require 'colorize'

Операторы require ДОЛЖНЫ быть в программе в строках ДО ТОГО, как вы используете gem

...