summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/lib/find.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_5/lib/find.rb')
-rw-r--r--ruby_1_8_5/lib/find.rb79
1 files changed, 0 insertions, 79 deletions
diff --git a/ruby_1_8_5/lib/find.rb b/ruby_1_8_5/lib/find.rb
deleted file mode 100644
index 0d22dd62d6..0000000000
--- a/ruby_1_8_5/lib/find.rb
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# find.rb: the Find module for processing all files under a given directory.
-#
-
-#
-# The +Find+ module supports the top-down traversal of a set of file paths.
-#
-# For example, to total the size of all files under your home directory,
-# ignoring anything in a "dot" directory (e.g. $HOME/.ssh):
-#
-# require 'find'
-#
-# total_size = 0
-#
-# Find.find(ENV["HOME"]) do |path|
-# if FileTest.directory?(path)
-# if File.basename(path)[0] == ?.
-# Find.prune # Don't look any further into this directory.
-# else
-# next
-# end
-# else
-# total_size += FileTest.size(path)
-# end
-# end
-#
-module Find
-
- #
- # Calls the associated block with the name of every file and directory listed
- # as arguments, then recursively on their subdirectories, and so on.
- #
- # See the +Find+ module documentation for an example.
- #
- def find(*paths) # :yield: path
- paths.collect!{|d| d.dup}
- while file = paths.shift
- catch(:prune) do
- yield file.dup.taint
- next unless File.exist? file
- begin
- if File.lstat(file).directory? then
- d = Dir.open(file)
- begin
- for f in d
- next if f == "." or f == ".."
- if File::ALT_SEPARATOR and file =~ /^(?:[\/\\]|[A-Za-z]:[\/\\]?)$/ then
- f = file + f
- elsif file == "/" then
- f = "/" + f
- else
- f = File.join(file, f)
- end
- paths.unshift f.untaint
- end
- ensure
- d.close
- end
- end
- rescue Errno::ENOENT, Errno::EACCES
- end
- end
- end
- end
-
- #
- # Skips the current file or directory, restarting the loop with the next
- # entry. If the current file is a directory, that directory will not be
- # recursively entered. Meaningful only within the block associated with
- # Find::find.
- #
- # See the +Find+ module documentation for an example.
- #
- def prune
- throw :prune
- end
-
- module_function :find, :prune
-end