Sha256: 20446779bc6f9527a831ee52544dddffa982b32c12126fcd03edf12c968ebff6

Contents?: true

Size: 788 Bytes

Versions: 4

Compression:

Stored size: 788 Bytes

Contents

# frozen_string_literal: true

require 'lzfse'
require 'lzma'
require 'compress/lzss'

module MooTool
  # The magic Apple decompressor (as in it uses magics)
  class Decompressor
    COMPRESSION_LZSS = 'lzss'
    COMPRESSION_LZVN = 'lzvn'
    COMPRESSION_LZFSE = 'bvx2'
    COMPRESSION_LZMA = 'lzma'

    attr_reader :value

    def initialize(data)
      @value = case data[0..3]
               when COMPRESSION_LZFSE
                 LZFSE.lzfse_decompress(data)
               when COMPRESSION_LZVN
                 LZFSE.lzvn_decompress(data)
               when COMPRESSION_LZSS
                 Compress::LZSS.decompress(data)
               when COMPRESSION_LZMA
                 LZMA.decompress(data)
               else
                 data
               end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mootool-0.2.7 lib/mootool/models/decompressor.rb
mootool-0.2.6 lib/mootool/models/decompressor.rb
mootool-0.2.5 lib/mootool/models/decompressor.rb
mootool-0.2.4 lib/mootool/models/decompressor.rb