Files
fizzy/app/models/zip_file/reader/io.rb
T
2026-02-02 19:06:37 +01:00

35 lines
525 B
Ruby

class ZipFile::Reader::IO
def initialize(entry, io)
@entry = entry
@io = io
@extractor = @entry.extractor_from(@io)
end
def read(length = nil, buffer = nil)
return nil if @extractor.eof?
data = @extractor.extract(length)
return nil if data.nil?
if buffer
buffer.replace(data)
buffer
else
data
end
end
def eof?
@extractor.eof?
end
def rewind
@extractor = @entry.extractor_from(@io)
0
end
def size
@entry.uncompressed_size
end
end