種類
- インスタンスメソッド (6)
- 特異メソッド (3)
- ライブラリ (2)
- クラス (1)
ライブラリ
- pp (2)
- prettyprint (8)
クラス
- Object (1)
- PP (1)
- PrettyPrint (7)
キーワード
- PrettyPrint (1)
-
comma
_ breakable (1) - first? (1)
- group (1)
- new (2)
- pp (1)
-
pretty
_ print (1) -
singleline
_ format (1)
検索結果
先頭5件
-
prettyprint (114199.0)
-
pretty printing アルゴリズムのためのライブラリです。
pretty printing アルゴリズムのためのライブラリです。
=== 使い方
pretty printing アルゴリズムは読みやすいインデントと改行を決定するためのアルゴリズムです。
インデントと改行はユーザによって与えられたツリー構造から決定されます。
つまりユーザは以下のように表示したい内容を保持したツリーを作成する必要があります。
* PrettyPrint.new でバッファを生成します。このとき、バッファの幅と改行文字を指定します。
* PrettyPrint#text を使って、文字列を適宜 挿入します。
* PrettyPrint#group を使って子ノー... -
PrettyPrint
# breakable(sep = & # 39; & # 39;) -> () (105307.0) -
「必要ならここで改行出来る」ということを自身に通知します。 もしその位置で改行されなければ、width カラムのテキスト sep が出力の際にそこに挿入されます。
「必要ならここで改行出来る」ということを自身に通知します。
もしその位置で改行されなければ、width カラムのテキスト sep が出力の際にそこに挿入されます。
@param sep 改行が起きなかった場合に挿入されるテキストを文字列で指定します。
@param width テキスト sep は width カラムであると仮定されます。指定されなければ、
sep.length が利用されます。例えば sep が多バイト文字の際に指定する必要があるかも知れません。 -
PrettyPrint
# breakable(sep , width = sep . length) -> () (105307.0) -
「必要ならここで改行出来る」ということを自身に通知します。 もしその位置で改行されなければ、width カラムのテキスト sep が出力の際にそこに挿入されます。
「必要ならここで改行出来る」ということを自身に通知します。
もしその位置で改行されなければ、width カラムのテキスト sep が出力の際にそこに挿入されます。
@param sep 改行が起きなかった場合に挿入されるテキストを文字列で指定します。
@param width テキスト sep は width カラムであると仮定されます。指定されなければ、
sep.length が利用されます。例えば sep が多バイト文字の際に指定する必要があるかも知れません。 -
PrettyPrint
. new(output = & # 39;& # 39; , maxwidth = 79 , newline = "\n") -> PrettyPrint (51547.0) -
pretty printing のためのバッファを生成します。 output は出力先です。output は << メソッドを持っていなければなりません。 << メソッドには * PrettyPrint#text の第1引数 obj * PrettyPrint#breakable の第1引数 sep * PrettyPrint.new の第3引数 newline * PrettyPrint.new に与えたブロックを評価した結果 のどれかひとつが引数として与えられます。
pretty printing のためのバッファを生成します。
output は出力先です。output は << メソッドを持っていなければなりません。
<< メソッドには
* PrettyPrint#text の第1引数 obj
* PrettyPrint#breakable の第1引数 sep
* PrettyPrint.new の第3引数 newline
* PrettyPrint.new に与えたブロックを評価した結果
のどれかひとつが引数として与えられます。
ブロックが指定された場合は、空白を生成するために使われます。ブロックは、生成したい空白の幅を表す整数を引数として... -
PrettyPrint
. new(output = & # 39;& # 39; , maxwidth = 79 , newline = "\n") {|width| . . . } -> PrettyPrint (51547.0) -
pretty printing のためのバッファを生成します。 output は出力先です。output は << メソッドを持っていなければなりません。 << メソッドには * PrettyPrint#text の第1引数 obj * PrettyPrint#breakable の第1引数 sep * PrettyPrint.new の第3引数 newline * PrettyPrint.new に与えたブロックを評価した結果 のどれかひとつが引数として与えられます。
pretty printing のためのバッファを生成します。
output は出力先です。output は << メソッドを持っていなければなりません。
<< メソッドには
* PrettyPrint#text の第1引数 obj
* PrettyPrint#breakable の第1引数 sep
* PrettyPrint.new の第3引数 newline
* PrettyPrint.new に与えたブロックを評価した結果
のどれかひとつが引数として与えられます。
ブロックが指定された場合は、空白を生成するために使われます。ブロックは、生成したい空白の幅を表す整数を引数として... -
PrettyPrint
. singleline _ format(output = & # 39;& # 39; , maxwidth = 79 , newline = "\n" , genspace = lambda{|n| & # 39; & # 39; * n}) {|pp| . . . } -> object (51115.0) -
PrettyPrint オブジェクトを生成し、それを引数としてブロックを実行します。 PrettyPrint.format に似ていますが、改行しません。
PrettyPrint オブジェクトを生成し、それを引数としてブロックを実行します。
PrettyPrint.format に似ていますが、改行しません。
引数 maxwidth, newline と genspace は無視されます。ブロック中の breakable の実行は、
改行せずに text の実行であるかのように扱います。
@param output 出力先を指定します。output は << メソッドを持っていなければなりません。
@param maxwidth 無視されます。
@param newline 無視されます。
@param genspace 無視されます... -
PrettyPrint
# first? -> bool (51019.0) -
このメソッドは obsolete です。
このメソッドは obsolete です。
現在のグループで first? に対する最初の呼び出しかどうかを判定する
述語です。これはカンマで区切られた値を整形するのに有用です。
pp.group(1, '[', ']') {
xxx.each {|yyy|
unless pp.first?
pp.text ','
pp.breakable
end
... pretty printing yyy ...
}
} -
PrettyPrint
# group(indent = 0 , open _ obj = & # 39;& # 39; , close _ obj = & # 39;& # 39; , open _ width = open _ obj . length , close _ width = close _ obj . length) { . . . } -> () (51019.0) -
与えられたブロックを実行します。 ブロック内で自身に追加される文字列やオブジェクトは、1行にまとめて表示しても よい同じグループに属すると仮定されます。
与えられたブロックを実行します。
ブロック内で自身に追加される文字列やオブジェクトは、1行にまとめて表示しても
よい同じグループに属すると仮定されます。
もう少し詳しく説明します。pretty printing アルゴリズムはインデントと改行を、
ツリー構造を作ることによって決定します。そして、group メソッドは子ノードの作成と
子ノードのインデントの深さの決定を担当します。
同じノード内で呼ばれた breakable は、改行するならば全て同時に改行します。
@param indent グループのインデントの深さを指定します。
@param open_obj 指定された場合、s... -
PrettyPrint (42073.0)
-
pretty printing アルゴリズムのためのクラスです。 改行の位置を探し、きれいなインデントを施します。
pretty printing アルゴリズムのためのクラスです。
改行の位置を探し、きれいなインデントを施します。
デフォルトでは、このクラスは文字列を扱います。
また、文字1バイトが出力幅の中で1カラムを占めると仮定しています。
しかし、以下のメソッドに対して適切な引数を与えることで、
そうでない場合にも利用できます。
* PrettyPrint.new: 出力バッファ、空白の生成をするブロックや改行オブジェクトを設定できます。
* PrettyPrint#text: 幅を設定できます。
* PrettyPrint#breakable
ですので、このクラスは以下のようなことにも応用が... -
PP
# comma _ breakable -> () (18406.0) -
以下と等価な働きをするもので簡便のために用意されています。 //emlist[][ruby]{ text ',' breakable //}
以下と等価な働きをするもので簡便のために用意されています。
//emlist[][ruby]{
text ','
breakable
//}
@see PrettyPrint#text, PrettyPrint#breakable -
pp (541.0)
-
オブジェクトなどを見やすく出力するためのライブラリです。
オブジェクトなどを見やすく出力するためのライブラリです。
このライブラリを require すると Kernel.#pp が定義されます。
Kernel.#p のかわりに Kernel.#pp を使うことにより、
適切にインデントと改行された分かりやすい出力を得ることが出来ます。
pp ライブラリは、ユーザがあたらしく定義したクラスに対しても見やすい表示を
するように作られていますので、Kernel.#pp を使う上で余計な作業をする
必要はありません。
=== どちらが読みやすいでしょうか?
p による pretty-print されてない出力:
#<PP:0x81a0d10 @s... -
Object
# pretty _ print(pp) -> () (73.0) -
PP.pp や Kernel.#pp がオブジェクトの内容を出力するときに 呼ばれるメソッドです。PP オブジェクト pp を引数として呼ばれます。
PP.pp や Kernel.#pp がオブジェクトの内容を出力するときに
呼ばれるメソッドです。PP オブジェクト pp を引数として呼ばれます。
あるクラスの pp の出力をカスタマイズしたい場合は、このメソッドを再定義します。
そのとき pretty_print メソッドは指定された pp に対して表示したい自身の内容を追加して
いかなければいけません。いくつかの組み込みクラスについて、
pp ライブラリはあらかじめ pretty_print メソッドを定義しています。
@param pp PP オブジェクトです。
//emlist[][ruby]{
require 'pp'
...