From: SASADA Koichi Date: 2008-05-19T13:32:48+09:00 Subject: [ruby-dev:34747] block_given? in defined method  ささだです.  block_given? を,define_method で定義されたものに適用されるとおか しなことになる,という指摘について教えて下さい.  この指摘は,bootstraptest/test_knwonbug.rb にテストケースがあります. assert_equal 'ok', %q{ class C define_method(:foo) { if block_given? :ok else :ng end } end C.new.foo {} }, '[ruby-core:14813]' assert_equal 'ok', %q{ class C define_method(:foo) { if block_given? :ng else :ok end } end C.new.foo }, '[ruby-core:14813]'  block_given? は,多分 yield やら Proc.new などが出来るかどうかを確 認するためのものだと思うのですが,define_method で定義したメソッドで はどちらも出来ません(現状では).なので,block_given? も,その用途 には使えない以上,テストケースのようにするのはまずいと思うのですが, いかがでしょうか.  この場合,どちらも false になるべきなような気がします. -- // SASADA Koichi at atdot dot net