From: Masahiro Tomita Date: 2011-12-09T10:26:46+09:00 Subject: [ruby-dev:44961] [ruby-trunk - Bug #5731][Open] enum_for を使うと method_missing にブロックが渡されない 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] # # % ruby -v a.rb ruby 1.9.3p0 (2011-10-30) [i686-linux] # nil # 使い方が間違ってるだけだったらすいません -- http://redmine.ruby-lang.org