class Gem::Package::TarWriter::BoundedStream - RDoc Documentation

# class Gem::Package::TarWriter::BoundedStream

`IO` wrapper that allows writing a limited amount of data

### Attributes

limit[R]

Maximum number of bytes that can be written

written[R]

Number of bytes written

### Public Class Methods

new(io, limit) click to toggle source

Wraps `io` and allows up to `limit` bytes to be written

    # File lib/rubygems/package/tar_writer.rb, line 30
    def initialize(io, limit)
      @io = io
      @limit = limit
      @written = 0
    end

### Public Instance Methods

write(data) click to toggle source

Writes `data` onto the `IO`, raising a `FileOverflow` exception if the number of bytes will be more than `limit`

    # File lib/rubygems/package/tar_writer.rb, line 40
    def write(data)
      if data.bytesize + @written > @limit
        raise FileOverflow, "You tried to feed more data than fits in the file."
      end
      @io.write data
      @written += data.bytesize
      data.bytesize
    end