種類
- インスタンスメソッド (417)
- 特異メソッド (105)
- ライブラリ (12)
- 関数 (12)
- 文書 (10)
ライブラリ
- ビルトイン (336)
- csv (48)
- dbm (24)
- gdbm (24)
-
rexml
/ document (24) -
rubygems
/ dependency _ list (12) - sdbm (24)
- set (18)
-
yaml
/ dbm (12)
クラス
- Array (72)
-
CSV
:: Row (12) -
CSV
:: Table (36) - DBM (24)
- GDBM (24)
-
Gem
:: DependencyList (12) - Hash (153)
-
REXML
:: Parent (24) - SDBM (24)
- Set (24)
-
YAML
:: DBM (12)
オブジェクト
- ENV (105)
キーワード
-
NEWS for Ruby 2
. 3 . 0 (10) - delete (36)
- filter! (28)
-
keep
_ if (62) - reject (24)
- reject! (120)
-
remove
_ by _ name (12) - select! (48)
-
st
_ foreach (12) - tsort (12)
検索結果
先頭5件
-
tsort (26120.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......fault = []
end
def rule(outputs, inputs=[], &block)
triple = [outputs, inputs, block]
outputs.each {|f| @dep[f] = [triple]}
@dep[triple] = inputs
end
def build(target)
each_strongly_connected_component_from(target) {|ns|
if ns.length != 1
fs = ns.delete_if {|n... -
Array
# delete _ if -> Enumerator (24224.0) -
要素を順番にブロックに渡して評価し、その結果が真になった要素をすべて削除します。 delete_if は常に self を返しますが、reject! は要素が 1 つ以上削除されれば self を、 1 つも削除されなければ nil を返します。
...削除します。
delete_if は常に self を返しますが、reject! は要素が 1 つ以上削除されれば self を、
1 つも削除されなければ nil を返します。
ブロックが与えられなかった場合は、自身と reject! から生成した
Enumerator オブジェク......された Enumerator オブジェクトの each メソッドには、
もとの配列に対して副作用があることに注意してください。
//emlist[例][ruby]{
a = [0, 1, 2, 3, 4, 5]
a.delete_if{|x| x % 2 == 0}
p a #=> [1, 3, 5]
a = [0, 1, 2, 3, 4, 5]
e = a.reject!
e.each{|i| i % 2 ==......0}
p a #=> [1, 3, 5] もとの配列から削除されていることに注意。
//}
@see Array#select!, Array#keep_if... -
Array
# delete _ if {|x| . . . } -> self (24224.0) -
要素を順番にブロックに渡して評価し、その結果が真になった要素をすべて削除します。 delete_if は常に self を返しますが、reject! は要素が 1 つ以上削除されれば self を、 1 つも削除されなければ nil を返します。
...削除します。
delete_if は常に self を返しますが、reject! は要素が 1 つ以上削除されれば self を、
1 つも削除されなければ nil を返します。
ブロックが与えられなかった場合は、自身と reject! から生成した
Enumerator オブジェク......された Enumerator オブジェクトの each メソッドには、
もとの配列に対して副作用があることに注意してください。
//emlist[例][ruby]{
a = [0, 1, 2, 3, 4, 5]
a.delete_if{|x| x % 2 == 0}
p a #=> [1, 3, 5]
a = [0, 1, 2, 3, 4, 5]
e = a.reject!
e.each{|i| i % 2 ==......0}
p a #=> [1, 3, 5] もとの配列から削除されていることに注意。
//}
@see Array#select!, Array#keep_if... -
CSV
:: Table # delete _ if {|column _ name , values| . . . } -> self (24214.0) -
ブロックを評価した結果が真である行か列を削除します。
...t[例 ロウモード][ruby]{
require "csv"
row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "valid"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "invalid"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "valid"])
table = CSV::Table.new([row1, row2, row3])
table.delete_if......" }
table.to_a # => [["header1", "header2"], ["row1_1", "valid"], ["row3_1", "valid"]]
//}
//emlist[例 カラムモード][ruby]{
require "csv"
row1 = CSV::Row.new(["id", "name"], [1, "tanaka"])
row2 = CSV::Row.new(["id", "name"], [2, "suzuki"])
row3 = CSV::Row.new(["id", "name"], [3, "sato"])
tab......le = CSV::Table.new([row1, row2, row3])
table.by_col!
table.delete_if { |column_name, values| column_name == "id" }
table.to_a # => [["name"], ["tanaka"], ["suzuki"], ["sato"]]
//}
@see CSV::Table#delete... -
CSV
:: Table # delete _ if {|row| . . . } -> self (24214.0) -
ブロックを評価した結果が真である行か列を削除します。
...t[例 ロウモード][ruby]{
require "csv"
row1 = CSV::Row.new(["header1", "header2"], ["row1_1", "valid"])
row2 = CSV::Row.new(["header1", "header2"], ["row2_1", "invalid"])
row3 = CSV::Row.new(["header1", "header2"], ["row3_1", "valid"])
table = CSV::Table.new([row1, row2, row3])
table.delete_if......" }
table.to_a # => [["header1", "header2"], ["row1_1", "valid"], ["row3_1", "valid"]]
//}
//emlist[例 カラムモード][ruby]{
require "csv"
row1 = CSV::Row.new(["id", "name"], [1, "tanaka"])
row2 = CSV::Row.new(["id", "name"], [2, "suzuki"])
row3 = CSV::Row.new(["id", "name"], [3, "sato"])
tab......le = CSV::Table.new([row1, row2, row3])
table.by_col!
table.delete_if { |column_name, values| column_name == "id" }
table.to_a # => [["name"], ["tanaka"], ["suzuki"], ["sato"]]
//}
@see CSV::Table#delete... -
Hash
# delete _ if -> Enumerator (24214.0) -
キーと値を引数としてブロックを評価した結果が真であ るような要素を self から削除します。
...self から削除します。
delete_if は常に self を返します。
reject! は、要素を削除しなかった場合には nil を返し、
そうでなければ self を返します。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
h = { 2 => "8"......"2" }
p h.reject!{|key, value| key.to_i < value.to_i } #=> { 6 => "4", 8 => "2" }
p h #=> { 6 => "4", 8 => "2" }
p h.delete_if{|key, value| key.to_i < value.to_i } #=> { 6 => "4", 8 => "2" }
p h.reject!{|key, value| key.to_i < value.to_i } #=> nil......//}
@see Hash#reject,Hash#delete
@see Hash#keep_if,Hash#select!... -
Hash
# delete _ if {|key , value| . . . } -> self (24214.0) -
キーと値を引数としてブロックを評価した結果が真であ るような要素を self から削除します。
...self から削除します。
delete_if は常に self を返します。
reject! は、要素を削除しなかった場合には nil を返し、
そうでなければ self を返します。
ブロックを省略した場合は Enumerator を返します。
//emlist[例][ruby]{
h = { 2 => "8"......"2" }
p h.reject!{|key, value| key.to_i < value.to_i } #=> { 6 => "4", 8 => "2" }
p h #=> { 6 => "4", 8 => "2" }
p h.delete_if{|key, value| key.to_i < value.to_i } #=> { 6 => "4", 8 => "2" }
p h.reject!{|key, value| key.to_i < value.to_i } #=> nil......//}
@see Hash#reject,Hash#delete
@see Hash#keep_if,Hash#select!... -
Set
# delete _ if {|o| . . . } -> self (24213.0) -
集合の各要素に対してブロックを実行し、その結果が真であるようなすべての 要素を削除します。
...除します。
delete_if は常に self を返します。
reject! は、要素が 1 つ以上削除されれば self を、1 つも削除されなければ
nil を返します。
//emlist[][ruby]{
require 'set'
s1 = Set['hello.rb', 'test.rb', 'hello.rb.bak']
s1.delete_if {|str| str =~ /\.bak\z/......}
p s1 # => #<Set: {"hello.rb", "test.rb"}>
s2 = Set['hello.rb', 'test.rb', 'hello.rb.bak']
p s2.reject! {|str| str =~ /\.bak\z/} # => #<Set: {"hello.rb", "test.rb"}>
p s2.reject! {|str| str =~ /\.o\z/} # => nil
//}
@see Enumerable#reject......す。
delete_if は常に self を返します。
reject! は、要素が 1 つ以上削除されれば self を、1 つも削除されなければ
nil を返します。
//emlist[][ruby]{
s1 = Set['hello.rb', 'test.rb', 'hello.rb.bak']
s1.delete_if {|str| str =~ /\.bak\z/}
p s1 # => #<Set: {"he......llo.rb", "test.rb"}>
s2 = Set['hello.rb', 'test.rb', 'hello.rb.bak']
p s2.reject! {|str| str =~ /\.bak\z/} # => #<Set: {"hello.rb", "test.rb"}>
p s2.reject! {|str| str =~ /\.o\z/} # => nil
//}
@see Enumerable#reject... -
ENV
. delete _ if -> Enumerator (24208.0) -
key と value を引数としてブロックを評価した値が真であ る時、環境変数を削除します。
...真であ
る時、環境変数を削除します。
reject! は要素に変化がなければ nil を返します。
//emlist[][ruby]{
ENV['FOO'] = 'bar'
ENV.delete_if { |key, value| key == 'FOO' && value == 'bar' } # => ENV
ENV.reject! { |key, value| key == 'FOO' && value == 'bar' } # => nil
//}...