class Tins::Find::Finder
def find(*paths)
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