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
2.6
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rubygems/package/tar_writer.rb, line 34
def initialize(io, limit)
@io = io
@limit = limit
@written = 0
end
Wraps io and allows up to limit bytes to be written
Instance Methods
2.6
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rubygems/package/tar_writer.rb, line 44
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