From: TRANS Date: 2005-08-21T22:35:14+09:00 Subject: Re: Non-overridable and non-redefinable methods On 8/21/05, David A. Black wrote: > Hi -- > > On Sun, 21 Aug 2005, Austin Ziegler wrote: > > > On 8/20/05, David A. Black wrote: > >> On Sat, 20 Aug 2005, Austin Ziegler wrote: > >> I think that means: > > [...] > >> or something like that. I've probably misrepresented it slightly. > > > > Interesting idea, but I don't think that I like it as stated. I'd > > rather see it as a specific call: > > > > class Foo > > def x; 1; end > > def y; self_local.x; end > > end > > It might have to be self_class_lexical_scope_local or something :-) > > I actually don't particularly like the whole idea. It's predicated on > the idea that it's OK to subclass classes whose method names one is > not familiar with, and that seems shaky to me. But I may not be > thinking it through fully. You may have a fair point, in the respect of "why hide it?" But one could say that of private and protected too. The value lie in having internal "utility" functions. I've noticed, and sometimes write, code like: def x a = lambda { ... } if @x.respond_to?(:each) @x.collect { |e| a.call(e) } else a.call(@x) end end Or what have you. The point of course being the resuse of the lambda. That lambda is exactly what these local instance methods would be useful-for. T.