2010-11-30 16:27:59 +08:00
|
|
|
module Zip
|
2017-06-29 10:57:12 +08:00
|
|
|
class Decompressor #:nodoc:all
|
2015-03-24 00:23:04 +08:00
|
|
|
CHUNK_SIZE = 32_768
|
2019-12-29 20:10:25 +08:00
|
|
|
|
2019-12-21 03:01:53 +08:00
|
|
|
def self.decompressor_classes
|
|
|
|
@decompressor_classes ||= {}
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.register(compression_method, decompressor_class)
|
|
|
|
decompressor_classes[compression_method] = decompressor_class
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.find_by_compression_method(compression_method)
|
|
|
|
decompressor_classes[compression_method]
|
|
|
|
end
|
|
|
|
|
2020-01-08 17:58:25 +08:00
|
|
|
attr_reader :input_stream
|
2019-12-29 20:10:25 +08:00
|
|
|
attr_reader :decompressed_size
|
|
|
|
|
|
|
|
def initialize(input_stream, decompressed_size = nil)
|
2010-11-30 16:27:59 +08:00
|
|
|
super()
|
2019-12-29 20:10:25 +08:00
|
|
|
|
2015-03-23 01:03:50 +08:00
|
|
|
@input_stream = input_stream
|
2019-12-29 20:10:25 +08:00
|
|
|
@decompressed_size = decompressed_size
|
2010-11-30 16:27:59 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# Copyright (C) 2002, 2003 Thomas Sondergaard
|
|
|
|
# rubyzip is free software; you can redistribute it and/or
|
|
|
|
# modify it under the terms of the ruby license.
|