Class: Archive::Tar::Minitar::Writer::BoundedStream

Inherits:
RestrictedStream show all
Defined in:
lib/minitar/writer.rb

Overview

A RestrictedStream that also has a size limit.

Defined Under Namespace

Classes: FileOverflow

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(io, limit) ⇒ BoundedStream

Returns a new instance of BoundedStream.



31
32
33
34
35
# File 'lib/minitar/writer.rb', line 31

def initialize(io, limit)
  @io       = io
  @limit    = limit
  @written  = 0
end

Instance Attribute Details

#limitObject (readonly)

The maximum number of bytes that may be written to this data stream.



27
28
29
# File 'lib/minitar/writer.rb', line 27

def limit
  @limit
end

#writtenObject (readonly)

The current total number of bytes written to this data stream.



29
30
31
# File 'lib/minitar/writer.rb', line 29

def written
  @written
end

Instance Method Details

#write(data) ⇒ Object

Raises:



37
38
39
40
41
42
# File 'lib/minitar/writer.rb', line 37

def write(data)
  raise FileOverflow if (data.size + @written) > @limit
  @io.write(data)
  @written += data.size
  data.size
end