class LZ4
Public Class Methods
compress(input, in_size = nil)
click to toggle source
# File lib/lz4-ruby.rb, line 12 def self.compress(input, in_size = nil) return _compress(input, in_size, false) end
compressHC(input, in_size = nil)
click to toggle source
# File lib/lz4-ruby.rb, line 16 def self.compressHC(input, in_size = nil) return _compress(input, in_size, true) end
decompress(input, in_size = nil, encoding = nil)
click to toggle source
# File lib/lz4-ruby.rb, line 20 def self.decompress(input, in_size = nil, encoding = nil) in_size = input.bytesize if in_size == nil out_size, varbyte_len = decode_varbyte(input) if out_size < 0 || varbyte_len < 0 raise "Compressed data is maybe corrupted" end result = LZ4Internal::uncompress(input, in_size, varbyte_len, out_size) result.force_encoding(encoding) if encoding != nil return result end
uncompress(input, in_size = nil)
click to toggle source
@deprecated Use {#decompress} and will be removed.
# File lib/lz4-ruby.rb, line 35 def self.uncompress(input, in_size = nil) return decompress(input, in_size) end
Private Class Methods
_compress(input, in_size, high_compression)
click to toggle source
# File lib/lz4-ruby.rb, line 40 def self._compress(input, in_size, high_compression) in_size = input.bytesize if in_size == nil header = encode_varbyte(in_size) if high_compression return LZ4Internal.compressHC(header, input, in_size) else return LZ4Internal.compress(header, input, in_size) end end
decode_varbyte(text)
click to toggle source
# File lib/lz4-ruby.rb, line 71 def self.decode_varbyte(text) len = [text.bytesize, 5].min bytes = text[0, len].unpack("C*") varbyte_len = 0 val = 0 bytes.each do |b| val |= (b & 0x7f) << (7 * varbyte_len) varbyte_len += 1 return val, varbyte_len if b & 0x80 == 0 end return -1, -1 end
encode_varbyte(val)
click to toggle source
# File lib/lz4-ruby.rb, line 52 def self.encode_varbyte(val) varbytes = [] loop do byte = val & 0x7f val >>= 7 if val == 0 varbytes.push(byte) break else varbytes.push(byte | 0x80) end end return varbytes.pack("C*") end