Enumerable

min,max

irb(main):056:0> a=[1,2,3]
=> [1, 2, 3]
irb(main):057:0> a.max
=> 3
irb(main):058:0> a.min
=> 1
irb(main):059:0> a=["a","b","c"]
=> ["a", "b", "c"]
irb(main):060:0> a.max
=> "c"
irb(main):061:0> a.min
=> "a"
irb(main):013:0> a=["city","xyz"]
=> ["city", "xyz"]
irb(main):014:0> a.max
=> "xyz"
irb(main):015:0> a.max{|a,b| a.size<=>b.size}
=> "city"

detect

blockがtrueに評価された最初の要素を返す。見つからなかったらnilを返す。
aliasはfind.

irb(main):064:0> a=[1,2,3]
=> [1, 2, 3]
irb(main):065:0> a.detect{|elem| elem%2==0}
=> 2
irb(main):066:0> a.detect{|elem| elem%2!=0}
=> 1
irb(main):067:0> a.detect{|elem| elem%4==0}
=> nil

each_with_index

blockの引数は要素・インデックスの並び。

irb(main):070:0> hash = Hash.new
=> {}
irb(main):071:0> %w(red blue yellow).each_with_index{|item, index| hash[index]=item}
=> ["red", "blue", "yellow"]
irb(main):072:0> p hash
{0=>"red", 1=>"blue", 2=>"yellow"}
=> nil

to_a

irb(main):074:0> hash
=> {0=>"red", 1=>"blue", 2=>"yellow"}
irb(main):073:0> hash.to_a
=> [[0, "red"], [1, "blue"], [2, "yellow"]]

find_all

blockがtrueに評価されたすべての要素を配列で返す。見つからなかったら空の配列を返す。
別名->select

irb(main):016:0> a=[1,2,3]
irb(main):077:0> a.find_all{|elem| elem%2!=0}
=> [1, 3]

reject

blockがfalseに評価されたすべての要素を配列で返す。見つからなかったら空の配列を返す。

irb(main):016:0> a=[1,2,3]
=> [1, 2, 3]
irb(main):017:0> a.reject{|elem| elem%2!=0}
=> [2]

grep

irb(main):084:0> days = ["monday","tuesday","wednesday","thursday","friday","saturday"]
=> ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday"]
irb(main):085:0> days.grep(/es/)
=> ["tuesday", "wednesday"]
irb(main):089:0> (1..100).grep(20..30)
=> [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

include?

irb(main):001:0> golenger=["red","blue","green","yellow","pink"]
=> ["red", "blue", "green", "yellow", "pink"]
irb(main):002:0> golenger.include?("black")
=> false
irb(main):003:0> golenger.include?("red")
=> true

collect, map(同じ)

irb(main):004:0> a = [1,2,3]
=> [1, 2, 3]
irb(main):005:0> a.map{|i| i*2}
=> [2, 4, 6]
irb(main):006:0> a.collect{|i| i*2}
=> [2, 4, 6]