# File lib/zip/zip_entry.rb, line 180
    def extract(destPath = @name, &onExistsProc)
      onExistsProc ||= proc { Zip.options[:on_exists_proc] }

      if directory?
        create_directory(destPath, &onExistsProc)
      elsif file?
        write_file(destPath, &onExistsProc)
      elsif symlink?
        create_symlink(destPath, &onExistsProc)
      else
        raise RuntimeError, "unknown file type #{self.inspect}"
      end

      self
    end