Ruby 1.9.2 Reference Manual > All Libraries > Builtin Library > class Proc > ===
self[*arg] -> ()call(*arg) -> ()self === *arg -> ()yield(*arg) -> ()手続きオブジェクトを実行してその結果を返します。
引数の渡され方はオブジェクトの生成方法によって異なります。 詳しくは Proc#lambda? を参照してください。
「===」は when の所に手続きを渡せるようにするためのものです。
def sign(n)
case n
when lambda{|n| n > 0} then 1
when lambda{|n| n < 0} then -1
else 0
end
end
p sign(-4) #=> -1
p sign(0) #=> 0
p sign(7) #=> 1