Class: Gem::Package::TarWriter::BoundedStream
- Inherits:
-
Object
- Object
- Gem::Package::TarWriter::BoundedStream
- Defined in:
- lib/rubygems/package/tar_writer.rb
Overview
IO wrapper that allows writing a limited amount of data
Instance Attribute Summary collapse
-
#limit ⇒ Object
readonly
Maximum number of bytes that can be written.
-
#written ⇒ Object
readonly
Number of bytes written.
Instance Method Summary collapse
-
#initialize(io, limit) ⇒ BoundedStream
constructor
Wraps
io
and allows up tolimit
bytes to be written. -
#write(data) ⇒ Object
Writes
data
onto the IO, raising a FileOverflow exception if the number of bytes will be more than #limit.
Constructor Details
#initialize(io, limit) ⇒ BoundedStream
Wraps io
and allows up to limit
bytes to be written
35 36 37 38 39 |
# File 'lib/rubygems/package/tar_writer.rb', line 35 def initialize(io, limit) @io = io @limit = limit @written = 0 end |
Instance Attribute Details
#limit ⇒ Object (readonly)
Maximum number of bytes that can be written
25 26 27 |
# File 'lib/rubygems/package/tar_writer.rb', line 25 def limit @limit end |
#written ⇒ Object (readonly)
Number of bytes written
30 31 32 |
# File 'lib/rubygems/package/tar_writer.rb', line 30 def written @written end |
Instance Method Details
#write(data) ⇒ Object
Writes data
onto the IO, raising a FileOverflow exception if the number of bytes will be more than #limit
45 46 47 48 49 50 51 52 |
# File 'lib/rubygems/package/tar_writer.rb', line 45 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 |