[#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: ES <ruby-ml@...>
Date: 2005-08-23 23:26:30 UTC
List: ruby-core #5660
Tanaka Akira wrote:
> In article <43094510.6090406@magical-cat.org>,
>   ES <ruby-ml@magical-cat.org> writes:
> 
> 
>>Here is a small addition to Pathname against 1.9, probably suited
>>for 1.8. Makes doing something for each node in a path easier.
> 
> 
>>+  #  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>
> 
> 
> It seems that Pathname#walk doesn't yield the root directory.
> Is it intended?  How useful/unuseful with this behavior?
 >
> Another question is about relative pathnames.
> 
> % ruby -rpathname -e 'Pathname.new("a/b/c").walk {|x| p x}'
> #<Pathname:/b>
> #<Pathname:/b/c>
> 
> The directory "a" doesn't appear in the result.
> I think it is not intended.

You are absolutely correct. How about this version?

   def walk()
     @path.scan(%r{[^/]*/?})[0...-1].inject('') do |path, dir|
       yield Pathname.new(path << dir)
      path
     end
   end                                 # walk()


<snip original code>

E

-- 
template<typename duck>
void quack(duck& d) { d.quack(); }

In This Thread