From: "marcandre (Marc-Andre Lafortune)" Date: 2012-12-24T04:26:17+09:00 Subject: [ruby-core:51101] [ruby-trunk - Feature #7612][Rejected] Enumerators take a proc Issue #7612 has been updated by marcandre (Marc-Andre Lafortune). Status changed from Open to Rejected ---------------------------------------- Feature #7612: Enumerators take a proc https://bugs.ruby-lang.org/issues/7612#change-35035 Author: pedz (Perry Smith) Status: Rejected Priority: Normal Assignee: Category: Target version: If there is already a clean syntax for this, I apologize. I sure could not find it. class Foo def initialize @inst = 18 end def meth(a, b) puts "method #{@inst} #{a} #{b}" end end foo = Foo.new e = %w{a b c}.each_with_index p1 = Proc.new { |a, b| puts "proc #{a} #{b}" } m2 = foo.method(:meth) p2 = m2.to_proc # Current Syntax possibilities e.each { |a, b| puts "direct #{a} #{b}" } e.each { |a, b| foo.meth(a, b) } e.each { |a, b| p1.call(a,b) } e.each { |a, b| m2.call(a,b) } e.each { |a, b| p2.call(a,b) } # Proposed Addition e.each(p1) # same as e.each { |a, b| p1.call(a,b) } e.each(m2) # same as e.each { |a, b| m2.call(a,b) } e.each(p2) # same as e.each { |a, b| p2.call(a,b) } # In the case of a method or lambda, the arguments are checked and possible errors thrown. # In the case of a proc, the proc "tricks" apply To add readability, an "apply_to" method could be added: e.apply_to(p1) The extra "each" bothers me since the enumerator already has an "each" associated with it. -- http://bugs.ruby-lang.org/