ライブラリ
- ビルトイン (136)
- abbrev (12)
- coverage (8)
- csv (48)
- etc (12)
- json (36)
- mkmf (24)
- openssl (48)
- pathname (12)
- pp (76)
- prettyprint (12)
- prime (24)
- rake (168)
- ripper (36)
-
ripper
/ filter (48) -
ripper
/ lexer (84) -
ripper
/ sexp (24) -
rubygems
/ requirement (48) - socket (12)
クラス
- CSV (48)
- Coverage (8)
-
Gem
:: Requirement (48) - Integer (12)
-
JSON
:: State (24) - Method (14)
- Module (12)
- Object (36)
-
OpenSSL
:: BN (24) - PP (48)
- Pathname (12)
- PrettyPrint (12)
- Prime (24)
-
Rake
:: Application (108) -
Rake
:: InvocationChain (24) - Ripper (108)
-
Ripper
:: Filter (36) -
Ripper
:: Lexer (36) -
RubyVM
:: InstructionSequence (24) - Socket (12)
モジュール
- Abbrev (12)
- Enumerable (36)
- Etc (12)
- Kernel (48)
-
OpenSSL
:: ASN1 (12) - Rake (24)
-
Rake
:: TaskManager (12) -
RubyVM
:: AbstractSyntaxTree (30)
キーワード
- << (19)
- >> (7)
- DOSISH 対応 (12)
- Filter (12)
-
NEWS for Ruby 3
. 1 . 0 (4) -
SCRIPT
_ LINES _ _ (12) - abbrev (12)
-
add
_ loader (12) - append (24)
-
append
_ features (12) - application (12)
- application= (12)
- chunk (12)
-
compile
_ option (12) - create (12)
- decode (12)
- default (12)
-
e
_ option _ supplied (12) - each (24)
-
egrep
_ cpp (24) - entries (12)
- filename (24)
- format (12)
- getaddrinfo (12)
- init (12)
- jj (12)
- lex (24)
- name (12)
- new (24)
- of (10)
-
original
_ dir (12) - parse (58)
-
parse
_ file (10) -
pretty
_ print (36) -
pretty
_ print _ cycle (12) - rakefile (12)
-
rb
_ parser _ append _ print (12) - read (12)
- readlines (12)
-
rexml
/ document (12) -
rexml
/ parsers / ultralightparser (12) -
ripper
/ filter (12) -
ruby 1
. 8 . 5 feature (12) - seplist (12)
- sexp (12)
-
sexp
_ raw (12) -
sharing
_ detection (12) -
sharing
_ detection= (12) - slice (12)
-
slice
_ before (24) - start (8)
- tasks (12)
-
to
_ a (12) -
to
_ bn (12) -
to
_ h (12) -
to
_ hash (12) -
token
_ match (12) - tokenize (24)
-
top
_ level (12) -
top
_ level _ tasks (12) - tsort (12)
-
tty
_ output= (12) - uname (12)
- warn (12)
- warning (12)
検索結果
先頭5件
-
PP
. pp(obj , out = $ > , width = 79) -> object (35325.0) -
指定されたオブジェクト obj を出力先 out に幅 width で出力します。 出力先 out を返します。
...ト obj を出力先 out に幅 width で出力します。
出力先 out を返します。
@param obj 表示したいオブジェクトを指定します。
@param out 出力先を指定します。<< メソッドが定義されている必要があります。
@param width 出力先の幅を......指定します。
//emlist[][ruby]{
require 'pp'
str = PP.pp(b], [:a, [[:a, [:a, [:a, :b], [:a, :b],]]], '', 20)
puts str
# =>
# [[:a, :b],
# [:a,
# [[:a,
# [:a, [:a, :b]]],
# [:a, :b]]]]
//}
@see $>... -
Kernel
. # pp(*obj) -> object (26263.0) -
指定されたオブジェクト obj を標準出力に見やすい形式(プリティプリント)で出力します。 obj それぞれを引数として PP.pp を呼ぶことと同等です。
... PP.pp を呼ぶことと同等です。
@param obj 表示したいオブジェクトを指定します。
//emlist[例][ruby]{
require 'pp'
b = [1, 2, 3] * 4
a = [b, b]
a << a
pp a
#=> [[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],
# [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],
# [...]]
//}
@see PP.pp... -
tsort (26132.0)
-
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
...tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
=== Example
//emlist[][ruby]{
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end
{1=>[2, 3],......=>[]}.tsort
#=> [3, 2, 1, 4]
{1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}.strongly_connected_components
#=> [[4], [2, 3], [1]]
//}
=== より現実的な例
非常に単純な `make' に似たツールは以下のように実装できます。
//emlist[][ruby]{
require 'tsort'
class Make
def initialize......分に関するアルゴリズムを使っているからです。
とはいえ strongly_connected_components という正確な名前は長過ぎます。
=== References
R. E. Tarjan,
Depth First Search and Linear Graph Algorithms,
SIAM Journal on Computing, Vol. 1, No. 2, pp. 146-160, June 1972.... -
PP
. sharing _ detection -> bool (23162.0) -
共有検出フラグを表すアクセサです。 デフォルトは false です。true である場合、 PP.pp は一度出力したオブジェクトを再び出力する時 Object#pretty_print_cycle を使います。
...e です。true である場合、
PP.pp は一度出力したオブジェクトを再び出力する時
Object#pretty_print_cycle を使います。
@param boolean 共有検出フラグを true か false で指定します。
//emlist[][ruby]{
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], [...]]
//}... -
PP
. sharing _ detection=(boolean) (23162.0) -
共有検出フラグを表すアクセサです。 デフォルトは false です。true である場合、 PP.pp は一度出力したオブジェクトを再び出力する時 Object#pretty_print_cycle を使います。
...e です。true である場合、
PP.pp は一度出力したオブジェクトを再び出力する時
Object#pretty_print_cycle を使います。
@param boolean 共有検出フラグを true か false で指定します。
//emlist[][ruby]{
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], [...]]
//}... -
PP
. sharing _ detection -> bool (23156.0) -
共有検出フラグを表すアクセサです。 デフォルトは false です。true である場合、 PP.pp は一度出力したオブジェクトを再び出力する時 Object#pretty_print_cycle を使います。
...false です。true である場合、
PP.pp は一度出力したオブジェクトを再び出力する時
Object#pretty_print_cycle を使います。
@param boolean 共有検出フラグを true か false で指定します。
//emlist[][ruby]{
b = [1, 2, 3]
a = [b, b]
pp a......#=> [[1, 2, 3], [1, 2, 3]]
PP.sharing_detection = true
pp a #=> [[1, 2, 3], [...]]
//}... -
PP
. sharing _ detection=(boolean) (23156.0) -
共有検出フラグを表すアクセサです。 デフォルトは false です。true である場合、 PP.pp は一度出力したオブジェクトを再び出力する時 Object#pretty_print_cycle を使います。
...false です。true である場合、
PP.pp は一度出力したオブジェクトを再び出力する時
Object#pretty_print_cycle を使います。
@param boolean 共有検出フラグを true か false で指定します。
//emlist[][ruby]{
b = [1, 2, 3]
a = [b, b]
pp a......#=> [[1, 2, 3], [1, 2, 3]]
PP.sharing_detection = true
pp a #=> [[1, 2, 3], [...]]
//}... -
PP
# seplist(list , sep = lambda { comma _ breakable } , iter _ method = :each) {|e| . . . } -> () (23136.0) -
リストの各要素を何かで区切りつつ、自身に追加していくために使われます。
...list を iter_method によってイテレートし、各要素を引数としてブロックを実行します。
また、それぞれのブロックの実行の合間に sep が呼ばれます。
つまり、以下のふたつは同値です。
//emlist[][ruby]{
q.seplist([1,2,3]) {|v| q.pp v.......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 PP#comma_breakable... -
Kernel
. # pp(*obj) -> object (18269.0) -
指定されたオブジェクト obj を標準出力に見やすい形式(プリティプリント)で出力します。 obj それぞれを引数として PP.pp を呼ぶことと同等です。
...ぞれを引数として PP.pp を呼ぶことと同等です。
初回呼び出し時に自動的に pp を require します。
@param obj 表示したいオブジェクトを指定します。
//emlist[例][ruby]{
require 'pp'
b = [1, 2, 3] * 4
a = [b, b]
a << a
pp a
#=> [[1, 2, 3, 1, 2, 3,......1, 2, 3, 1, 2, 3],
# [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],
# [...]]
//}
@see PP.pp... -
Object
# pretty _ print(pp) -> () (14329.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'
class Array
def pretty_print(q)
q.group(1, '[', ']') {
q.seplist(self) {|v|
q.pp v
}
}
end
end
//}
@see Object#pretty_print_cycle, Object#inspect, PrettyPrint#text, PrettyPrint#group, PrettyPrint#breakable......オブジェクトです。
//emlist[][ruby]{
class Array
def pretty_print(q)
q.group(1, '[', ']') {
q.seplist(self) {|v|
q.pp v
}
}
end
end
//}
@see Object#pretty_print_cycle, Object#inspect, PrettyPrint#text, PrettyPrint#group, PrettyPrint#breakable... -
Object
# pretty _ print _ cycle(pp) -> () (14225.0) -
プリティプリント時にオブジェクトの循環参照が検出された場合、 Object#pretty_print の代わりに呼ばれるメソッドです。
...Object#pretty_print の代わりに呼ばれるメソッドです。
あるクラスの pp の出力をカスタマイズしたい場合は、
このメソッドも再定義する必要があります。
@param pp PP オブジェクトです。
//emlist[][ruby]{
class Array
def pretty_print_cyc......le(q)
q.text(empty? ? '[]' : '[...]')
end
end
//}
@see Object#pretty_print... -
Rake
. application -> Rake :: Application (12418.0) -
現在の Rake アプリケーションを返します。
...。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'pp'
task default: :test_rake_app
task :test_rake_app do
pp Rake.application
end
# => #<Rake::Application:0x31b0f18
# @default_loader=#<Rake::DefaultLoader:0x31b0c78>,
# @imported=[],
# @last_description=nil,
# @......Rake::DefaultLoader:0x31b0c18>,
# ".rf"=>#<Rake::DefaultLoader:0x31b0b88>,
# ".rake"=>#<Rake::DefaultLoader:0x31b0b10>},
# @name="rake",
# @options=#<OpenStruct rakelib=["rakelib"], trace_output=#<IO:<STDERR>>>,
# @original_dir="/path/to/dir",
# @pending_imports=[],
#......ile", "rakefile.rb", "Rakefile.rb"],
# @rules=[],
# @scope=LL(),
# @tasks=
# {"default"=><Rake::Task default => [test_rake_app]>,
# "test_rake_app"=><Rake::Task test_rake_app => []>},
# @terminal_columns=0,
# @top_level_tasks=["default"],
# @tty_output=false>
//}...