class Gem::Package::TarWriter::BoundedStream

IO wrapper that allows writing a limited amount of data

Attributes

Maximum number of bytes that can be written

Number of bytes written

Public Class Methods

Wraps io and allows up to limit bytes to be written

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

Public Instance Methods

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 43
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