lib/archive/zip.rb
def each(&b)
      raise IOError, 'non-readable archive' unless readable?
      raise IOError, 'closed archive' if closed?

      unless @parse_complete then
        parse(@archive)
        @parse_complete = true
      end
      @entries.each(&b)
    end
def each(&b)
      raise IOError, 'non-readable archive' unless readable?
      raise IOError, 'closed archive' if closed?

      unless @parse_complete then
        parse(@archive)
        @parse_complete = true
      end
      @entries.each(&b)
    end
Iterates through each entry of a readable ZIP archive in turn yielding
 each one to the given block.

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