lib/archive/zip.rb
def add_entry(entry)
      raise IOError, 'non-writable archive' unless writable?
      raise IOError, 'closed archive' if closed?
      unless entry.kind_of?(Entry) then
        raise ArgumentError, 'Archive::Zip::Entry instance required'
      end

      @entries << entry
      self
    end
def add_entry(entry)
      raise IOError, 'non-writable archive' unless writable?
      raise IOError, 'closed archive' if closed?
      unless entry.kind_of?(Entry) then
        raise ArgumentError, 'Archive::Zip::Entry instance required'
      end

      @entries << entry
      self
    end
Adds _entry_ into a writable ZIP archive.

 <b>NOTE:</b> No attempt is made to prevent adding multiple entries with
 the same archive path.

 Raises Archive::Zip::IOError if called on a non-writable archive or after
 the archive is closed.