Hi,
In message "Re: Method behaves differently when called using #send"
on Sat, 27 Aug 2005 02:29:10 +0900, calamitas / advalvas.be writes:
|Maybe it has something to do with method_missing. I suspect object es has
|a private method #y which requires one argument. This is the one
|es.send(:y) calls (as it can call private methods). However when you call
|the method as just es.y, it is not found and method_missing is called
|which happens to handle y as a method with no arguments.
Although this explains the situation, I admit this is confusing. I
decided to make Kernel#send to call public methods only (in 1.9 for
the sake of compatibility). If you want to invoke private methods,
use a new method, #fcall.
matz.