Actions
Bug #9005
closedobject.send(:define_method, ...){...} creates private method
Bug #9005:
object.send(:define_method, ...){...} creates private method
Description
I assume this is caused by r40022, which made define_method consider visibility. However, visibility should only be considered if define_method is called normally, not via send. When called via send, it should define a public method. Here's example code showing the error:
$ ruby21 -ve "Object.send(:define_method, :foo){|*a| 1}.foo"
-e:1:in <main>': private method
foo' called for :foo:Symbol (NoMethodError)
I apologize in advance if this has already been fixed (I tested 2.1.0-preview1, not trunk), but from the commit logs it doesn't appear to have been.
Actions