From: Pit Capitain Date: 2005-05-09T16:11:04+09:00 Subject: Re: Method hooks in singleton classes Hi Matz, Nobu and Florian, thank you all for your replies. Nobu wrote: > What will you need if method_added is redefined too? As Florian answered already, this would invoke singleton_method_added, as it does today. You had to redefine both singleton_method_added and the singleton class' method added at the same time. Matz wrote: > In that case, we have to decide to make "metaclass" in the language > specification. See [ruby-talk:139309]. Ah, I see. You can implement singleton methods without having singleton classes in the language, as you often had mentioned. But currently it *is* possible to access singleton classes, and they *are* class objects. They are special classes in the sense that you can't instanciate them, but I don't see why they should be even more special by removing method_added et al. And I don't feel that adding this behavior would make singleton classes more present in the language than they are today. But of course this is only *my* feeling. > I'm not sure it's the solution. We sometimes want to avoid > redefinition. Something like "around" method in CLOS might help. This is exactly what I'm trying to implement. I want to reliably add before, after or around methods and keep them when redefining a method. I know that something like this will come with Ruby 2, but I'd like to have it sooner. Regards, Pit