def compute_checksum(&block)
      crc = CRC.new
      # Have to read this first because it might change the seek position.
      file_size = header.file_size
      @io.seek(8, IO::SEEK_SET)
      pos = 8
      length = 4096-8
      buf = nil
      while true
        buf = @io.read(length, buf)
        break if !buf
        crc.update(buf)
        pos += buf.size
        block.call(pos) if block
        length = 4096
      end
      crc.crc
    end
def compute_checksum(&block)
      crc = CRC.new
      # Have to read this first because it might change the seek position.
      file_size = header.file_size
      @io.seek(8, IO::SEEK_SET)
      pos = 8
      length = 4096-8
      buf = nil
      while true
        buf = @io.read(length, buf)
        break if !buf
        crc.update(buf)
        pos += buf.size
        block.call(pos) if block
        length = 4096
      end
      crc.crc
    end
Computes the checksum for the resource file.

 @yield [done] Provides feedback about the progress of the operation.