1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/find.rb
matz 3db12e8b23 Initial revision
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1998-01-16 12:13:05 +00:00

39 lines
595 B
Ruby

# Usage:
# require "find.rb"
#
# Find.find('/foo','/bar') {|f| ...}
# or
# include Find
# find('/foo','/bar') {|f| ...}
#
module Find
def find(*path)
while file = path.shift
catch(:prune) {
yield file
if File.directory? file and not File.symlink? file then
d = Dir.open(file)
begin
for f in d
next if f =~ /^\.\.?$/
if file == "/" then
f = "/" + f
else
f = file + "/" + f
end
path.unshift f
end
ensure
d.close
end
end
}
end
end
def prune
throw :prune
end
module_function :find, :prune
end