6.65. kink/io/OUTPUT_PRINTER

output をラップする printer の実装を提供する。

6.65.1. OUTPUT_PRINTER.new(Output Charset Newline ...[$config={}])

newはprinterとoutputを両方提供する値を戻す。この値は、文字列をCharsetでエンコード氏、バイト列をOutputに書き込む。

コンフィグメソッド:

• C.flush_on_print

• C.replace_conversion_error

• C.synchronize

C.flush_on_printが呼ばれた場合、Outputのバッファはprintかprint_lineが呼ばれた後ごとにフラッシュされる。

print_xxxメソッドはCharsetを使って文字列をバイト列に変換する。文字列がエンコードできない場合、print_xxxメソッドはデフォルトで、exceptionを引数として$errorを末尾呼び出しする。もしC.replace_conversion_errorが呼ばれた場合、print_xxxメソッドは変換エラーの場所に代替バイト列を書き込む。

C.synchronizeが呼ばれた場合、 Output へのアクセスと、文字列からバイト列への変換は、ひとつの mutex でシリアル化される。このオプションは、並列のwriteまたはprint操作が避けられない場合、たとえばstderrの場合に有用である。

事前条件

Output は output 型でなければならない。

Charset は charset 型でなければならない。

Newline は str 型でなければならない。

例