要約
オブジェクトなどを見やすく出力するためのクラスです。
目次
- 特異メソッド
- インスタンスメソッド
継承しているメソッド
特異メソッド
- pp(obj, out = $>, width = 79) -> object[permalink][rdoc][edit]
- 
指定されたオブジェクト obj を出力先 out に幅 width で出力します。出力先 out を返します。 - [PARAM] obj:
- 表示したいオブジェクトを指定します。
- [PARAM] out:
- 出力先を指定します。<< メソッドが定義されている必要があります。
- [PARAM] width:
- 出力先の幅を指定します。
 require 'pp' str = PP.pp([[:a, :b], [:a, [[:a, [:a, [:a, :b]]], [:a, :b],]]], '', 20) puts str # => # [[:a, :b], # [:a, # [[:a, # [:a, [:a, :b]]], # [:a, :b]]]][SEE_ALSO] $> 
- sharing_detection -> bool[permalink][rdoc][edit]
- sharing_detection=(boolean)
- 
共有検出フラグを表すアクセサです。デフォルトは false です。true である場合、 PP.pp は一度出力したオブジェクトを再び出力する時 Object#pretty_print_cycle を使います。 - [PARAM] boolean:
- 共有検出フラグを true か false で指定します。
 b = [1, 2, 3] a = [b, b] pp a #=> [[1, 2, 3], [1, 2, 3]] PP.sharing_detection = true pp a #=> [[1, 2, 3], [...]]
- singleline_pp(obj, out=$>) -> object[permalink][rdoc][edit]
- 
指定されたオブジェクト obj を出力先 out に出力します。ただし、インデントも改行もしません。出力先 out を返します。 - [PARAM] obj:
- 表示したいオブジェクトを指定します。
- [PARAM] out:
- 出力先を指定します。<< メソッドが定義されている必要があります。
 
インスタンスメソッド
- comma_breakable -> ()[permalink][rdoc][edit]
- 
以下と等価な働きをするもので簡便のために用意されています。 text ',' breakable[SEE_ALSO] PrettyPrint#text, PrettyPrint#breakable 
- object_group(obj) { ... } -> ()[permalink][rdoc][edit]
- 
以下と等価な働きをするもので簡便のために用意されています。 group(1, '#<' + obj.class.name, '>') { ... }- [PARAM] obj:
- 表示したいオブジェクトを指定します。
 [SEE_ALSO] PrettyPrint#group 
- pp(obj) -> ()[permalink][rdoc][edit]
- 
指定されたオブジェクト obj を Object#pretty_print を使って自身のバッファに追加します。 obj がすでに、現在のノードの親において出力されていた場合には、参照のループが存在しているので、Object#pretty_print の代わりに Object#pretty_print_cycle が使われます。 - [PARAM] obj:
- 表示したいオブジェクトを指定します。
 
- seplist(list, sep = lambda { comma_breakable }, iter_method = :each) {|e| ...} -> ()[permalink][rdoc][edit]
- 
リストの各要素を何かで区切りつつ、自身に追加していくために使われます。 list を iter_method によってイテレートし、各要素を引数としてブロックを実行します。また、それぞれのブロックの実行の合間に sep が呼ばれます。 つまり、以下のふたつは同値です。 q.seplist([1,2,3]) {|v| q.pp v } q.pp 1 q.comma_breakable q.pp 2 q.comma_breakable q.pp 3- [PARAM] list:
- 自身に追加したい配列を与えます。iter_method を適切に指定すれば、 Enumerable でなくても構いません。
- [PARAM] sep:
- 区切りを自身に追加するブロックを与えます。list がイテレートされないなら、 sep は決して呼ばれません。
- [PARAM] iter_method:
- list をイテレートするメソッドをシンボルで与えます。
 [SEE_ALSO] PP#comma_breakable