Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

* lib/find.rb (Find#find): should pass ignore_error option to enumera…

…tors.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
commit c754b227978af124734fb90be703c923b0752519 1 parent d0a9ee1
@k-tsj k-tsj authored
Showing with 25 additions and 1 deletion.
  1. +4 −0 ChangeLog
  2. +1 −1  lib/find.rb
  3. +20 −0 test/test_find.rb
View
4 ChangeLog
@@ -1,3 +1,7 @@
+Tue Mar 4 00:25:35 2014 Kazuki Tsujimoto <kazuki@callcc.net>
+
+ * lib/find.rb (Find#find): should pass ignore_error option to enumerators.
+
Mon Mar 3 13:27:35 2014 NAKAMURA Usaku <usa@ruby-lang.org>
* test/test_find.rb (TestFind#test_unsearchable_dir): ruby cannot make
View
2  lib/find.rb
@@ -35,7 +35,7 @@ module Find
# See the +Find+ module documentation for an example.
#
def find(*paths, ignore_error: true) # :yield: path
- block_given? or return enum_for(__method__, *paths)
+ block_given? or return enum_for(__method__, *paths, ignore_error: ignore_error)
fs_encoding = Encoding.find("filesystem")
View
20 test/test_find.rb
@@ -106,10 +106,20 @@ def test_unreadable_dir
assert_equal([d, dir], a)
a = []
+ Find.find(d, ignore_error: true).each {|f| a << f }
+ assert_equal([d, dir], a)
+
+ a = []
assert_raise_with_message(Errno::EACCES, /#{Regexp.quote(dir)}/) do
Find.find(d, ignore_error: false) {|f| a << f }
end
assert_equal([d, dir], a)
+
+ a = []
+ assert_raise_with_message(Errno::EACCES, /#{Regexp.quote(dir)}/) do
+ Find.find(d, ignore_error: false).each {|f| a << f }
+ end
+ assert_equal([d, dir], a)
ensure
File.chmod(0700, dir)
end
@@ -130,6 +140,10 @@ def test_unsearchable_dir
Find.find(d, ignore_error: true) {|f| a << f }
assert_equal([d, dir, file], a)
+ a = []
+ Find.find(d, ignore_error: true).each {|f| a << f }
+ assert_equal([d, dir, file], a)
+
skip "no meaning test on Windows" if /mswin|mingw/ =~ RUBY_PLATFORM
a = []
assert_raise_with_message(Errno::EACCES, /#{Regexp.quote(file)}/) do
@@ -137,6 +151,12 @@ def test_unsearchable_dir
end
assert_equal([d, dir, file], a)
+ a = []
+ assert_raise_with_message(Errno::EACCES, /#{Regexp.quote(file)}/) do
+ Find.find(d, ignore_error: false).each {|f| a << f }
+ end
+ assert_equal([d, dir, file], a)
+
assert_raise(Errno::EACCES) { File.lstat(file) }
ensure
File.chmod(0700, dir)
Please sign in to comment.
Something went wrong with that request. Please try again.