IO wrapper that allows writing a limited amount of data
Attributes
Read
Maximum number of bytes that can be written
Read
Number of bytes written
Class Methods
3.1
View on GitHub
# File tmp/rubies/ruby-3.1.3/lib/rubygems/package/tar_writer.rb, line 30
def initialize(io, limit)
@io = io
@limit = limit
@written = 0
end
Wraps io and allows up to limit bytes to be written
Instance Methods
3.1
View on GitHub
# File tmp/rubies/ruby-3.1.3/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
Writes data onto the IO, raising a FileOverflow exception if the number of bytes will be more than limit