[#5563] Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...>

Lately, I've been thinking about the future of ruby

44 messages 2005/08/19
[#5564] Re: Non-overridable and non-redefinable methods — Austin Ziegler <halostatue@...> 2005/08/19

On 8/19/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:

[#5571] Re: Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...> 2005/08/19

--- Austin Ziegler <halostatue@gmail.com> wrote:

[#5574] Re: Non-overridable and non-redefinable methods — TRANS <transfire@...> 2005/08/20

Just wanted to add a few things.

[#5581] Re: Non-overridable and non-redefinable methods — Austin Ziegler <halostatue@...> 2005/08/20

On 8/19/05, TRANS <transfire@gmail.com> wrote:

[#5583] Re: Non-overridable and non-redefinable methods — "David A. Black" <dblack@...> 2005/08/20

Hi --

[#5585] Re: Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...> 2005/08/20

--- "David A. Black" <dblack@wobblini.net> wrote:

[#5609] Pathname#walk for traversing path nodes (patch) — ES <ruby-ml@...>

Here is a small addition to Pathname against 1.9, probably suited

20 messages 2005/08/22

Re: Non-overridable and non-redefinable methods

From: TRANS <transfire@...>
Date: 2005-08-21 13:35:14 UTC
List: ruby-core #5606
On 8/21/05, David A. Black <dblack@wobblini.net> wrote:
> Hi --
> 
> On Sun, 21 Aug 2005, Austin Ziegler wrote:
> 
> > On 8/20/05, David A. Black <dblack@wobblini.net> 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.


In This Thread