[#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

Pathname#walk for traversing path nodes (patch)

From: ES <ruby-ml@...>
Date: 2005-08-22 03:02:51 UTC
List: ruby-core #5609
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.


Index: pathname.rb
===================================================================
RCS file: /src/ruby/lib/pathname.rb,v
retrieving revision 1.42
diff -u -r1.42 pathname.rb
--- pathname.rb 10 Jul 2005 15:17:18 -0000      1.42
+++ pathname.rb 22 Aug 2005 02:58:46 -0000
@@ -423,6 +423,23 @@
    end

    #
+  # Iterates over and yields a new Pathname object
+  # for each element in the given path.
+  #
+  #  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>
+  #
+  def walk()
+    @path.scan(%r{/[^/]+}).inject('') do |path, dir|
+      yield Pathname.new(path << dir)
+      path
+    end
+  end                                 # walk()
+
+  #
    # Pathname#+ appends a pathname fragment to this one to produce a 
new Pathname
    # object.
    #


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

In This Thread

Prev Next