# File lib/tins/find.rb, line 24
      def find(*paths)
        block_given? or return enum_for(__method__, *paths)
        paths.collect! { |d| d.dup }
        while path = paths.shift
          path = prepare_path(path)
          catch(:prune) do
            path.stat or next
            yield path
            if path.stat.directory?
              begin
                ps = Dir.entries(path)
              rescue EXPECTED_STANDARD_ERRORS
                @raise_errors ? raise : next
              end
              ps.sort!
              ps.reverse_each do |p|
                next if p == "." or p == ".."
                next if !@show_hidden && p.start_with?('.')
                p = File.join(path, p)
                paths.unshift p.untaint
              end
            end
          end
        end
      end