edb676cd2c
This is required for active storage to work
31 lines
487 B
Ruby
31 lines
487 B
Ruby
class ZipFile::Reader::ExtractorIO
|
|
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
|
|
end
|