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