Rubyで標準出力に色をつける

業務で簡単なチェックスクリプトを書いていて、ごにょごにょやったことメモ。

Rspecを色つきで使っていると、チェック結果は色がついているほうが見やすいなーと思うわけで
Rubyの標準出力にどうやって色をつけるのかをしらべました。

Rubyで標準出力に色をつける
こちらのページを参考にさせていただいて、gemでterm-ansicolorを入れた。

で、rubyスクリプトを書いて試してみる。

require 'term/ansicolor'
include Term::ANSIColor

print red,"red string" + "\n"
print reset
print red, bold, "bold string" + "\n" + reset
print green, "green string" + "\n"
print reset

実行結果

print resetで色を標準に戻す感じかな。
boldってなんだかよくわからないけど、
とりあえずred と boldを指定するとオレンジっぽい色になりました。
putsと違って、行末に「\n」を付けないと改行されません。



githubのterm-ansicolorのexsamples.rbを見ると、いろいろ指定ができそう。

チェック結果がNGのときは、赤、OKだったら緑にすると見やすい〜。


ちなみにirbで試してみてて、最後の行のprint resetをしないで抜けると
そのまま標準出力が色つきのままになるのでご注意を。
もう一回、irbを起動して print reset すれば戻りますがね。