module Utils::Find::ConfigurableFinder::PathExtension

def exist?

def exist?
  !!file
end

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

def lstat

def lstat
  file and file.lstat
end

def pathname

def pathname
  Pathname.new(self)
end

def stat

def stat
  file and file.stat
end

def suffix

def suffix
  pathname.extname[1..-1]
end