From: eklerni Date: 2007-02-13T02:14:35+09:00 Subject: [ruby-list:43180] ブロックなしprocのエラー出力 松尾といいます。 現在procメソッドをブロックなしで呼ぶと警告がでますが、それに関して oc=proc.new{|x,y|p(x+y)} oc.call(1,2) #=>in `proc': tried to create Proc object without a block (ArgumentError) これはProcをprocとtypoしたエラーでProc.new{}もしくはproc{}に書き直したら正常に動きます。 このエラーメッセージだとけっこう混乱しそう(typoであることに気づきにくそう)なんで、 これをもっと違うメッセージにしたほうがいいような気がするのですが、procにブロックが くっついてるかの判定の方がnewの処理より早いんで難しいんでしょうか。 def test proc.new.call if block_given? end test{ p 'test' } #=> warning: tried to create Proc object without a block #=>in `test': undefined method `new' for # (NoMethodError) この場合はundefined methodと表示されます。 ちなみに両者ともruby 1.8.5 (2006-08-25) [i386-mswin32]で -w 表示です from Yuji Matsuo -------------------------------------- Start Yahoo! Auction now! Check out the cool campaign http://pr.mail.yahoo.co.jp/auction/