Actions
Backport #5731
closedenum_for を使うと method_missing にブロックが渡されない
Status:
Rejected
Assignee:
-
Description
次のスクリプトを 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
使い方が間違ってるだけだったらすいません¶
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0