Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > ppライブラリ > PPクラス

class PP

クラスの継承リスト: PP < PrettyPrint < Object < Kernel < BasicObject

要約

オブジェクトなどを見やすく出力するためのクラスです。

目次

特異メソッド
pp sharing_detection sharing_detection= singleline_pp
インスタンスメソッド
comma_breakable object_group pp seplist

特異メソッド

pp(obj, out = $>, width = 79) -> object[permalink][rdoc]

指定されたオブジェクト obj を出力先 out に幅 width で出力します。 出力先 out を返します。

[PARAM] obj:
表示したいオブジェクトを指定します。
[PARAM] out:
出力先を指定します。<< メソッドが定義されている必要があります。
[PARAM] width:
出力先の幅を指定します。
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 を使います。

[PARAM] boolean:
共有検出フラグを true か false で指定します。

例:

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 を返します。

[PARAM] obj:
表示したいオブジェクトを指定します。
[PARAM] out:
出力先を指定します。<< メソッドが定義されている必要があります。

インスタンスメソッド

comma_breakable -> ()[permalink][rdoc]

以下と等価な働きをするもので簡便のために用意されています。

text ','
breakable

[SEE_ALSO] PrettyPrint#text, PrettyPrint#breakable

object_group(obj) { ... } -> ()[permalink][rdoc]

以下と等価な働きをするもので簡便のために用意されています。

group(1, '#<' + obj.class.name, '>') { ... }
[PARAM] obj:
表示したいオブジェクトを指定します。

[SEE_ALSO] PrettyPrint#group

pp(obj) -> ()[permalink][rdoc]

指定されたオブジェクト 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]

リストの各要素を何かで区切りつつ、自身に追加していくために使われます。

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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy