Feature #8269
closedstdlib: Add Find.each_file to accompany Find.find
Description
Often when I use the find module, I am only interested in files.
Since Find.find returns files and directories, I often write code
that looks like this:
Find.find('foo/bar') do |f|
next if File.directory? f
code code code ...
end
To remove the test for directories, a class method, called find.each_file
could be added, which would only yield files.
module Find
def self.each_file(*paths)
block_given? or return enum_for(method, *paths)
self.find(*paths) {|f yield f unless File.directory? f}
end
end
Files
Updated by phluid61 (Matthew Kerwin) over 11 years ago
Is there a use-case for each_directory as well?
(Attached patch is only for each_file method, and includes basic tests)
Updated by zzak (zzak _) over 11 years ago
- Category set to lib
- Status changed from Open to Feedback
I think this is out of the scope of find.rb, see "find.rb: the Find module for processing all files under a given directory."
If you want this feature, I think you should write a gem.