Issue #5731 has been reported by Masahiro Tomita. ---------------------------------------- Bug #5731: enum_for を使うと method_missing にブロックが渡されない http://redmine.ruby-lang.org/issues/5731 Author: Masahiro Tomita Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.3p0 (2011-10-30) [i686-linux] 次のスクリプトを 1.9.3 で実行すると enum_for の方は block が nil になります。 1.8.7 では両方とも block が渡されました。 --------------------------------------------- class A def method_missing(name, *args, &block) p block end end a = A.new a.hoge{|l| p l} # ブロックが渡される a.enum_for(:hoge).each{|l| p l} # ブロックが渡されない --------------------------------------------- % /usr/local/ruby187/bin/ruby -v a.rb ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux] #<Proc:0xb76dbb60 / a.rb:9> #<Proc:0xb76db8e0 / a.rb:10> % ruby -v a.rb ruby 1.9.3p0 (2011-10-30) [i686-linux] #<Proc:0x8829080 / a.rb:9> nil # 使い方が間違ってるだけだったらすいません -- http://redmine.ruby-lang.org