[#51213] [ruby-trunk - Bug #7645][Open] BigDecimal#== slow when compared to true/false — "mathie (Graeme Mathieson)" <mathie@...>

11 messages 2013/01/01

[#51328] [ruby-trunk - Bug #7676][Open] Comparison of Float::NAN in array behaves unexpectedly — "simonrussell (Simon Russell)" <spam+ruby@...>

11 messages 2013/01/09

[#51347] [ruby-trunk - Bug #7679][Open] IRB history is broken — "zzak (Zachary Scott)" <zachary@...>

15 messages 2013/01/10

[#51389] [ruby-trunk - Bug #7688][Open] Error hiding with rb_rescue() on Comparable#==, #coerce and others — "Eregon (Benoit Daloze)" <redmine@...>

34 messages 2013/01/11

[#51430] [ruby-trunk - Bug #7696][Open] Lazy enumerators with state can't be rewound — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

15 messages 2013/01/14

[#51437] [ruby-trunk - Bug #7698][Open] RubyGems 2.0 has an incompatibility about installation of extension libraries — "mrkn (Kenta Murata)" <muraken@...>

21 messages 2013/01/15

[#51454] [CommonRuby - Feature #7701][Open] Non-optional (required) keyword args — "headius (Charles Nutter)" <headius@...>

31 messages 2013/01/15

[#51499] [ruby-trunk - Feature #7712][Open] Add .txt extensions to all plain-text documentation files for Windows users — "postmodern (Hal Brodigan)" <postmodern.mod3@...>

9 messages 2013/01/18

[#51619] [ruby-trunk - Feature #7738][Open] Deprecate Set#+ as an alias of Set#|, use it for symmetric difference. Introduce Hash#| for Hash#reverse_merge in Rails. — "alexeymuranov (Alexey Muranov)" <redmine@...>

11 messages 2013/01/24

[#51623] [ruby-trunk - Feature #7739][Open] Define Hash#| as Hash#reverse_merge in Rails — "alexeymuranov (Alexey Muranov)" <redmine@...>

24 messages 2013/01/24

[#51714] [CommonRuby - Feature #7747][Open] Expanded API for Binding semantics — "jballanc (Joshua Ballanco)" <jballanc@...>

19 messages 2013/01/27

[#51742] [ruby-trunk - Bug #7756][Open] clang 3.2 sees through UNINITIALIZED_VAR macro, gives warning — "drbrain (Eric Hodel)" <drbrain@...7.net>

10 messages 2013/01/29

[#51763] [ruby-trunk - Bug #7758][Open] Ruby on Windows crashes when active codepage is codepage 65001 and outputting unicode character — "joshc (Josh C)" <josh.nw@...>

16 messages 2013/01/30

[ruby-core:51675] [ruby-trunk - Feature #7596] Find::find should not silently ignores errors

From: "drbrain (Eric Hodel)" <drbrain@...7.net>
Date: 2013-01-25 21:37:19 UTC
List: ruby-core #51675
Issue #7596 has been updated by drbrain (Eric Hodel).

Category set to lib
Target version set to next minor


----------------------------------------
Feature #7596: Find::find should not silently ignores errors
https://bugs.ruby-lang.org/issues/7596#change-35642

Author: hoylen (Hoylen Sue)
Status: Open
Priority: Low
Assignee: 
Category: lib
Target version: next minor


=begin
The current implementation of (({Find::find})) silently ignores errors. It deliberately catches a number of (({Errno::*})) errors and just continues processing. This can cause unexpected (and often unnoticed) results when, for example, unreadable directories are encountered. Find will not recurse into those directories, but does also not tell the user that it is skipping them and their contents. This happened to me when there was a directory owned by another user.

I suggest making the default behaviour to ((*not*)) ignore errors. But then provide an ((*option*)) for the caller to indicate that they want (({find})) to keep going if it encounters some types of errors. This way the caller has control and the default behaviour is the one with "least surprise" for the caller.


Either that, or at least change the documentation to point out that the current implementation silently ignores errors and unreadable directories. That way the caller will know the limitations of the method.

http://www.ruby-doc.org/stdlib-1.9.3/libdoc/find/rdoc/Find.html

When updating the documentation, it would also be useful for documentation for the "Find" module's "find" class method to also point out that:

"The associated block is never called with "." or "..", except when they are explicitly provided as one of the arguments."

You can check this behavour by trying out different values for "testdirname" in the following command

  ruby -e 'require "find"; Find.find(ARGV[0]) { |d| puts "<#{d}>" }' testdirname


=end


-- 
http://bugs.ruby-lang.org/

In This Thread