概要
Paint は ANSI カラーコードを使った文字列を簡単に生成することができるライブラリです
コンソール表示をカラフルにしてロギングなどを見やすくすることができます
今回は簡単な使い方を紹介します
環境
- macOS 10.15.6
- Ruby 2.7.1p83
- Paint 2.2.0
インストール
bundle init
vim Gemfile
gem "paint"
bundle install
赤色にする
まずは単純に文字を赤色にしてみます
require 'paint'
painted_str = Paint['hoge', :red]
puts painted_str
Paint.[]
というクラスメソッドを使うだけで指定の文字を ANSI カラーコード付きの文字に変換することができます
返り値が String クラスのオブジェクトなので単純に puts すれば色付き文字が表示されます
背景色を設定する
引数を 1 つ増やすだけで OK です
文字色を赤、背景をシアンにする場合は以下のようにします
require 'paint'
puts Paint['hoge', :red, :cyan]
色を反転する
文字色と背景色を反転するには :inverse
を指定します
require 'paint'
puts Paint['hoge', :red, :cyan, :inverse]
HTML カラーコードを使う
デフォルトの設定であれば HTML のカラーコードをを指定することもできます
require 'paint'
puts Paint['hoge', "#dc143c"]
:inverse
もそのまま使えます
puts Paint['hoge', "#dc143c", :inverse]
モードを設定する
Paint にはモードがありデフォルトは 16777215 色使えます
モードを確認するには Paint.mode
を参照します
また設定する場合は 256 or 16 or 8 or 0 を設定するだけです
require 'paint'
puts Paint.mode
Paint.mode = 16
puts Paint['hoge', "#dc143c"] # 強制的に赤色になる
環境によってはフルカラー使えない環境もあるので一度使える色の種類を確認すると良いと思います
おまけ: logger をカスタムして使う
例えば Ruby 標準の logger を Paint でカスタムして使うこともできます
コンソールにだけ表示する分にはこれだけで見やすくなると思います
require 'paint'
require 'logger'
class PaintedLogger < Logger
def info(str)
super(Paint[str, :red])
end
end
plogger = PaintedLogger.new(STDOUT)
plogger.info("hoge")
最後に
Ruby の Paint を使って簡単に ANSI カラーコードを使う方法を紹介しました
今回は紹介していませんが :bright
(太字)、Paint.random
(ランダムカラー)、Paint.unpaint
(カラーコードの削除) など他にも便利な機能が多くあります
コンソールに表示するロガーは Paint してファイルに出力するログはプレーンテキストにするなどすると使い勝手も良くなるかなと思います
ANSI カラーコードを直接記載するとごちゃごちゃになるので Ruby が使える環境であれば /etc/motd
などでカラフルなログインメッセージを表示したりするのに使えると思います
0 件のコメント:
コメントを投稿