class GZippedTar::Tar::BoundedStream

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/gzipped_tar/tar/bounded_stream.rb, line 18
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/gzipped_tar/tar/bounded_stream.rb, line 26
def write(data)
  if data.bytesize + @written > @limit
    raise GZippedTar::Tar::FileOverflow,
      "You tried to feed more data than fits in the file."
  end
  @io.write data
  @written += data.bytesize
  data.bytesize
end