Ruby版 color_echo for v3.1.0 and over
2つのモード
require 'color_echo'
もしくはrequire 'color_echo/get'
でcolor_echo
を読み込むとCE
というモジュールが組み込まれます。
ruby からcolor_echo
を使用する場合はオブジェクトを作る必要はありません。color_echo
の機能はすべてモジュール関数で実装されています。
例えばCE.fg(:cyan)
をコールすると組み込みの Kernel module の以下の5つモジュール関数puts
,p
,print
,printf
,putc
のコマンドライン出力がcyan
に変わります。
※ version 3.1.0
から装飾の適用範囲にprintf
,putc
が加わりました。
Kernel module のモジュール関数がオーバライドされ自動で装飾されることを望まない場合はrequire 'color_echo'
ではなく、require 'color_echo/get'
で読み込んでください。
require "color_echo/get"
で読み込むとcolor_echo
はKernel.#puts
,Kernel.#p
,Kernel.#print
,Kernel.#printf
,Kernel.#putc
の出力を装飾しません。装飾したテキストを取得するにはCE.get("some message")
を使います。
モジュール関数リファレンス
CE.pickup(pattern, foreground=:cyan, backgruond=nil, *text_attribute)
- pattern : string or regexp or array of them パターン。
- foreground : symbol or nil パターンとマッチしたワードの文字色。
- background : symbol or nil パターンとマッチしたワードの背景色。
- text_attribute : symbol or array of them パターンとマッチしたワードの装飾。
- Return -> self
パラメータpattern
とマッチする文字列を指定した文字色、背景色、テキスト属性で色づけします。使用できる文字色等は、colorecho -s
または colorecho -l
で確認できます。CE.rainbow
がコールされている場合はこの機能は無視されます。
CE.pickup
を使えば特定のワードだけを色づけすることができます。
CE.highlight(foreground=nil, background=nil, *text_attribute)
- foreground : symbol or nil パターンとマッチした行の文字色。
- background : symbol or nil パターンとマッチした行の背景色。
- text_attribute : symbol or array of them パターンとマッチした行の装飾。
- Return -> self
CE.pickup
でマッチした行に対して、指定した文字色、背景色、テキスト属性で色づけします。
CE.ch_fg(foreground)
- foreground : symbol
- Return -> self
文字色を指定した色に変更します。エイリアスfg
でも呼び出し可能です。
- パラメータ
foreground
で指定できるシンボルの一覧- :black
- :red
- :green
- :yellow
- :blue
- :magenta
- :cyan
- :white
- :gray
- :h_red
- :h_green
- :h_yellow
- :h_blue
- :h_magenta
- :h_cyan
- :h_white
- :index[1-256]
CE.ch_bg(background)
- background : symbol 指定できるシンボルの一覧は foreground と同様。
- Return -> self
背景色を指定した色に変更します。エイリアスbg
でも呼び出し可能です。
CE.ch_tx(*text_attribute)
- text_attribute : symbol or array of them
- Return -> self
テキスト属性を指定した色に変更します。エイリアスtx
でも呼び出し可能です。colorecho -s
でそれぞれどのような装飾になるかチェックすることができます。
- パラメータ
text_attribute
で指定できるシンボル一覧- :bold … 文字を太字にします。
- :underline … 文字に下線をつけます。
- :blink … 文字を点滅させます。
- :reverse_video … 文字色と背景色を反転させます。
- :concealed … サポートされている環境が少ないため削除予定です。
CE.ch(foreground, background=nil, *text_attribute)
- foreground : symbol or nil 文字色。nil を許可。
- background : symbol or nil 背景色。nil を許可。
- text_attribute : symbol or array of them テキスト属性。
- Return -> self
文字色、背景色、テキスト属性を指定したものに変更します。
CE.reset(scope=:all)
- scope : symbol or array of them リセット対象のスコープ。下記参照。
- Return -> self
指定した色やテキスト属性をリセットします。リセットする範囲はスコープで決まります。
デフォルトは :all ですのですべての設定がリセットされます。エイリアスoff
, disable
でも呼び出し可能です。
- パラメータ
scope
で指定できるシンボル一覧- :all … すべての指定をリセットします。
- :fg … 文字色に関する指定をリセットします。
- :bg … 背景色に関する指定をリセットします。
- :tx … テキスト属性に関する指定をリセットします。
- :pickup …
CE.pickup
で指定したパターンに関する指定をリセットします。 - :highlight …
CE.highlight
で指定したパターンとマッチした行に関する装飾の指定をリセットします。 - :rainbow …
CE.rainbow
を呼び出したことによる装飾をリセットします。
CE.once
- Return -> self
一度だけ設定した装飾を適用します。これはCE.times(1)
と同様です。
CE.times(cnt)
- cnt : integer
- Return -> self
cnt
で指定した回数だけ設定した装飾を適用します。標準出力(もしくはCE.get
)するたびに回数がインクリメントされます。
CE.enable_refresh(scope=:all)
- scope : symbol
- Return -> self
与えられた入力に対して可能な限りシーケンスコードを取り除きます。
- パラメータ
scope
で指定できるシンボル一覧- :all … いかなる時もシーケンスコードを取り除きます。
- :prematch …
CE.pickup
で指定したパターンにマッチした時だけシーケンスコードを取り除きます。
CE.disable_refresh
- Return -> self
与えられた入力に対してシーケンスコードを取り除きません。デフォルトはこの挙動です。
CE.unuse
- Return -> void
このメソッドがコールされた時点でcolor_echo
の機能を無効にします。
CE.rainbow
- Return -> self
出力をレインボーにします。
CE.get(string)
- string : string 装飾したい文字列。
- Return -> string
string
を装飾して返します。require 'color_echo/get'
を読み込んだ時だけ使えるメソッドです。
このメソッドが呼び出されたあとは装飾に関するこれまでの指定はリセットされます。
この機能を望まない場合はversion 3.0.0
で新しく追加されたCE.stateful
をこのメソッドの前で一度だけコールしてください。
CE.stateful
- Return -> self
CE.get
を呼び出したあともそれまでに定義された CE.ch
, CE.pickup
などの装飾に関するすべての指定を保持し続けます。
CE.get
を使用しない場合は意味のないメソッドです。
CE.stateless
- Return -> self
CE.get
を呼び出すとそれまで設定した装飾に関する指定がすべてクリアされます。デフォルトはこの挙動です。
CE.get
を使用しない場合は意味のないメソッドです。
CE.withdraw(target [,...])
- target : symbol
- Return -> array
引数に指定したメソッドに対して装飾を適用しません。
例えばCE.withdraw(:printf)
とすればprintf
の出力は装飾されません。
カンマ区切りで一度に複数指定できます。
返り値は解除に成功したシンボルの配列です。
version 3.1.0
から追加されたメソッドです。
- パラメータ
target
で指定できるシンボル一覧- :puts …
Kernel.#puts
への装飾を解除します。 - :p …
Kernel.#p
への装飾を解除します。 - :print …
Kernel.#print
への装飾を解除します。 - :printf …
Kernel.#printf
への装飾を解除します。 - :putc …
Kernel.#putc
への装飾を解除します。
- :puts …
CE.get_assigned
- Return -> array
装飾を適用する Kernel module のモジュール関数のシンボルの配列を返します。
減点方式なのでなにもCE.withdraw
していないときは[:puts, :p, :print, :printf, :putc]
が返り値です。
version 3.1.0
から追加されたメソッドです。