Issue #5731 has been reported by Masahiro T…
Bug #5731: enum_for を使うと method_missing にブロックが渡されない
Author: Masahiro T.
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:[email protected]:9
#Proc:[email protected]:10
% ruby -v a.rb
ruby 1.9.3p0 (2011-10-30) [i686-linux]
#Proc:[email protected]:9
nil