summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-23 00:03:42 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-23 00:03:42 +0000
commitc1785306e1dd5b771126aa469594d54c6fdc55e9 (patch)
tree9ab10a31bcca7374615f35c67f6418a3d4617855
parent0d9eecdb1a9427741b4f8c0f3a42c007510b6dd0 (diff)
downloadruby-c1785306e1dd5b771126aa469594d54c6fdc55e9.tar.gz
ruby-c1785306e1dd5b771126aa469594d54c6fdc55e9.tar.xz
ruby-c1785306e1dd5b771126aa469594d54c6fdc55e9.zip
* lib/pathname.rb (each_filename): return Enumerator if no block
given. * test/pathname/test_pathname.rb: add a test for above. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--lib/pathname.rb1
-rw-r--r--test/pathname/test_pathname.rb1
3 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 38f538d52..b6f00ccfe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Tue Sep 23 09:01:15 2008 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * lib/pathname.rb (each_filename): return Enumerator if no block
+ given.
+
+ * test/pathname/test_pathname.rb: add a test for above.
+
Tue Sep 23 08:25:56 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* hash.c (env_aset): allow nil value to remove an entry.
diff --git a/lib/pathname.rb b/lib/pathname.rb
index 45974545a..1bc0063bb 100644
--- a/lib/pathname.rb
+++ b/lib/pathname.rb
@@ -517,6 +517,7 @@ class Pathname
# # yields "usr", "bin", and "ruby".
#
def each_filename # :yield: filename
+ return to_enum(__method__) unless block_given?
prefix, names = split_names(@path)
names.each {|filename| yield filename }
nil
diff --git a/test/pathname/test_pathname.rb b/test/pathname/test_pathname.rb
index 11c1bb7b2..da12383bd 100644
--- a/test/pathname/test_pathname.rb
+++ b/test/pathname/test_pathname.rb
@@ -481,6 +481,7 @@ class TestPathname < Test::Unit::TestCase
result = []
Pathname.new("/usr/bin/ruby").each_filename {|f| result << f }
assert_equal(%w[usr bin ruby], result)
+ assert_equal(%w[usr bin ruby], Pathname.new("/usr/bin/ruby").each_filename.to_a)
end
def test_kernel_pathname