[#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: Pathname#walk for traversing path nodes (patch)

From: mathew <meta@...>
Date: 2005-08-24 19:57:55 UTC
List: ruby-core #5670
David A. Black wrote:

> On Thu, 25 Aug 2005, mathew wrote:
>
>> ES wrote:
>>
>>> The absolute best name would be simply #each (incidentally, looks like
>>> it would be available). That failing, #walk, #traverse or #each_node.
>>
>>
>>
>> I'd like to suggest "descend", because it's really descending into 
>> the path provided.
>
>
> The thing is, though, it isn't really descending.  The path may not
> even exist.  It's just moving from left to right through a bunch of
> tokens, which may or may not correspond to a real filesystem.  If it
> were really a full traversal, you'd get:
>
>   a
>   a/b
>   a/b/c
>   a/b/c/d


Digging into the archive for the original example:

> Pathname.new('/path/to/some/file.rb').walk {|dir| p dir}
>    #<Pathname:/path>
>    #<Pathname:/path/to>
>    #<Pathname:/path/to/some>
>    #<Pathname:/path/to/some/file.rb>

> *plus* whatever else branched off of b, c, and d.


Only if you were doing the entire tree. It's still descent, even if you 
only descend one branch.

(Let's not talk about the fact that in the real world branches ascend, 
rather than descending... I guess computer scientists plant their trees 
upside-down.)

Also, whether the directory structure you're descending through matches 
the one on disk doesn't alter the fact that you're descending through a 
directory structure.

> whereas what we're talking about here, as I understand it, is:
>
>   a
>   b
>   c
>   d
>
> which is much more just a list of components than a recursive traversal.


If that was all we were talking about, it wouldn't need to be a library 
method at all, as that's just split('/').each


mathew

In This Thread