module Utils::Find::ConfigurableFinder::PathExtension

def file

def file
  tried = false
  begin
    file = @finder.get_file(self)
    if file
      file.closed? and file.reopen(file.path, 'rb')
    else
      file = File.new(self, 'rb')
      @finder.add_file self, file
    end
    return file
  rescue Errno::EMFILE
    tried and raise
    @finder.close_files
    tried = true
    retry
  rescue Errno::ENOENT, Errno::EACCES
    return
  end
end