Como colorir os textos do console no Windows?

30/dezembro/2008, por RubyBR · Deixe seu cometário!
Categoria: Ruby 

Nessa semana natalina, precisei colorir a saída de textos no prompt do Windows. Procurei na internet e encontrei um post no LedNerd (que é tradução de um super-post do kpumuk). No Windows, a coloração do console é possível graças a gem win32console.

Instale a gem: gem install win32console

Depois de instalada, faça o teste. O código abaixo gera uma tabela de cores suportadas pela gem que você instalou. Copie o código abaixo, salve com o nome de teste.rb e execute no terminal.

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/ruby
require 'win32console'
 
[0, 1, 4, 5, 7].each do |attr|
puts '----------------------------------------------------------------'
puts "ESC[#{attr};Texto;Fundo"
30.upto(37) do |fg|
40.upto(47) do |bg|
print "\033[#{attr};#{fg};#{bg}m #{fg};#{bg}  "
end
puts "\033[0m"
end
end

Outra forma de se conseguir isso é juntando a gem win32console com a term-ansicolor. Depois de instalada, faça o teste:

1
2
3
4
5
6
7
8
9
10
require 'win32console'
require 'term/ansicolor'
 
class String
  include Term::ANSIColor
end
 
puts "Hello, World!".red
puts "Hello, World!".blue
puts "Annoy me!".blink.yellow.bold