Class: Gem::Package::TarWriter::BoundedStream
| Relationships & Source Files | |
| Inherits: | Object | 
| Defined in: | lib/rubygems/package/tar_writer.rb | 
Overview
IO wrapper that allows writing a limited amount of data
Class Method Summary
- 
    
      .new(io, limit)  ⇒ BoundedStream 
    
    constructor
    Wraps ioand allows up to #limit bytes to be written.
Instance Attribute Summary
Instance Method Summary
- 
    
      #write(data)  
    
    Writes dataonto the IO, raising aFileOverflowexception if the number of bytes will be more than #limit
Constructor Details
    .new(io, limit)  ⇒ BoundedStream 
  
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
Instance Attribute Details
#limit (readonly)
Maximum number of bytes that can be written
# File 'lib/rubygems/package/tar_writer.rb', line 23
attr_reader :limit
#written (readonly)
Number of bytes written
# File 'lib/rubygems/package/tar_writer.rb', line 28
attr_reader :written
Instance Method Details
#write(data)
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