mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/pathname.rb (Pathname#find): return an enumerator if
no block is given. * test/pathname/test_pathname.rb: add tests for above. [ruby-dev:44797] [Feature #5572] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
62fed7c91a
commit
54f282c2c4
4 changed files with 20 additions and 0 deletions
|
@ -661,6 +661,15 @@ Sat Nov 5 15:45:04 2011 Tanaka Akira <akr@fsij.org>
|
|||
* ext/socket/init.c (rsock_socket0): extract single socket() call with
|
||||
CLOEXEC handling from rsock_socket.
|
||||
|
||||
Sat Nov 5 13:49:40 2011 Kazuki Tsujimoto <kazuki@callcc.net>
|
||||
|
||||
* lib/pathname.rb (Pathname#find): return an enumerator if
|
||||
no block is given.
|
||||
|
||||
* test/pathname/test_pathname.rb: add tests for above.
|
||||
|
||||
[ruby-dev:44797] [Feature #5572]
|
||||
|
||||
Sat Nov 5 11:18:12 2011 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* ext/socket/socket.c (rsock_socketpair0): don't clear
|
||||
|
|
4
NEWS
4
NEWS
|
@ -46,6 +46,10 @@ with all sufficient information, see the ChangeLog file.
|
|||
* Net::IMAP.default_ssl_port
|
||||
* Net::IMAP.default_imaps_port
|
||||
|
||||
* pathname
|
||||
* extended method:
|
||||
* Pathname#find returns an enumerator if no block is given.
|
||||
|
||||
* resolv
|
||||
* new methods:
|
||||
* Resolv::DNS#timeouts=
|
||||
|
|
|
@ -489,6 +489,8 @@ class Pathname # * Find *
|
|||
# Pathname#find is an iterator to traverse a directory tree in a depth first
|
||||
# manner. It yields a Pathname for each file under "this" directory.
|
||||
#
|
||||
# Returns an enumerator if no block is given.
|
||||
#
|
||||
# Since it is implemented by <tt>find.rb</tt>, <tt>Find.prune</tt> can be used
|
||||
# to control the traversal.
|
||||
#
|
||||
|
@ -496,6 +498,7 @@ class Pathname # * Find *
|
|||
# current directory, not <tt>./</tt>.
|
||||
#
|
||||
def find # :yield: pathname
|
||||
return to_enum(__method__) unless block_given?
|
||||
require 'find'
|
||||
if @path == '.'
|
||||
Find.find(@path) {|f| yield self.class.new(f.sub(%r{\A\./}, '')) }
|
||||
|
|
|
@ -1235,6 +1235,10 @@ class TestPathname < Test::Unit::TestCase
|
|||
assert_equal([Pathname("."), Pathname("a"), Pathname("b"), Pathname("d"), Pathname("d/x"), Pathname("d/y")], a)
|
||||
a = []; Pathname("d").find {|v| a << v }; a.sort!
|
||||
assert_equal([Pathname("d"), Pathname("d/x"), Pathname("d/y")], a)
|
||||
a = Pathname(".").find.sort
|
||||
assert_equal([Pathname("."), Pathname("a"), Pathname("b"), Pathname("d"), Pathname("d/x"), Pathname("d/y")], a)
|
||||
a = Pathname("d").find.sort
|
||||
assert_equal([Pathname("d"), Pathname("d/x"), Pathname("d/y")], a)
|
||||
}
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue