rubyzip/lib/zip/constants.rb

120 lines
3.8 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
module Zip
RUNNING_ON_WINDOWS = RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/i
2013-06-03 02:33:03 +08:00
CENTRAL_DIRECTORY_ENTRY_SIGNATURE = 0x02014b50
CDIR_ENTRY_STATIC_HEADER_LENGTH = 46
LOCAL_ENTRY_SIGNATURE = 0x04034b50
LOCAL_ENTRY_STATIC_HEADER_LENGTH = 30
LOCAL_ENTRY_TRAILING_DESCRIPTOR_LENGTH = 4 + 4 + 4
VERSION_MADE_BY = 52 # this library's version
2013-06-03 02:33:03 +08:00
VERSION_NEEDED_TO_EXTRACT = 20
VERSION_NEEDED_TO_EXTRACT_ZIP64 = 45
2013-06-03 02:33:03 +08:00
SPLIT_FILE_SIGNATURE = 0x08074b50
2017-06-29 10:57:12 +08:00
FILE_TYPE_FILE = 0o10
FILE_TYPE_DIR = 0o04
FILE_TYPE_SYMLINK = 0o12
FSTYPE_FAT = 0
FSTYPE_AMIGA = 1
FSTYPE_VMS = 2
FSTYPE_UNIX = 3
FSTYPE_VM_CMS = 4
FSTYPE_ATARI = 5
FSTYPE_HPFS = 6
FSTYPE_MAC = 7
FSTYPE_Z_SYSTEM = 8
FSTYPE_CPM = 9
FSTYPE_TOPS20 = 10
FSTYPE_NTFS = 11
FSTYPE_QDOS = 12
FSTYPE_ACORN = 13
FSTYPE_VFAT = 14
FSTYPE_MVS = 15
FSTYPE_BEOS = 16
FSTYPE_TANDEM = 17
FSTYPE_THEOS = 18
FSTYPE_MAC_OSX = 19
FSTYPE_ATHEOS = 30
2013-06-03 02:33:03 +08:00
FSTYPES = {
FSTYPE_FAT => 'FAT',
FSTYPE_AMIGA => 'Amiga',
FSTYPE_VMS => 'VMS (Vax or Alpha AXP)',
FSTYPE_UNIX => 'Unix',
FSTYPE_VM_CMS => 'VM/CMS',
FSTYPE_ATARI => 'Atari ST',
FSTYPE_HPFS => 'OS/2 or NT HPFS',
FSTYPE_MAC => 'Macintosh',
FSTYPE_Z_SYSTEM => 'Z-System',
FSTYPE_CPM => 'CP/M',
FSTYPE_TOPS20 => 'TOPS-20',
FSTYPE_NTFS => 'NTFS',
FSTYPE_QDOS => 'SMS/QDOS',
FSTYPE_ACORN => 'Acorn RISC OS',
FSTYPE_VFAT => 'Win32 VFAT',
FSTYPE_MVS => 'MVS',
FSTYPE_BEOS => 'BeOS',
FSTYPE_TANDEM => 'Tandem NSK',
FSTYPE_THEOS => 'Theos',
FSTYPE_MAC_OSX => 'Mac OS/X (Darwin)',
FSTYPE_ATHEOS => 'AtheOS'
2013-06-03 02:33:03 +08:00
}.freeze
2019-12-29 23:07:16 +08:00
COMPRESSION_METHOD_STORE = 0
COMPRESSION_METHOD_SHRINK = 1
COMPRESSION_METHOD_REDUCE_1 = 2
COMPRESSION_METHOD_REDUCE_2 = 3
COMPRESSION_METHOD_REDUCE_3 = 4
COMPRESSION_METHOD_REDUCE_4 = 5
COMPRESSION_METHOD_IMPLODE = 6
# RESERVED = 7
COMPRESSION_METHOD_DEFLATE = 8
COMPRESSION_METHOD_DEFLATE_64 = 9
COMPRESSION_METHOD_PKWARE_DCLI = 10
# RESERVED = 11
COMPRESSION_METHOD_BZIP2 = 12
# RESERVED = 13
COMPRESSION_METHOD_LZMA = 14
# RESERVED = 15
COMPRESSION_METHOD_IBM_CMPSC = 16
# RESERVED = 17
COMPRESSION_METHOD_IBM_TERSE = 18
COMPRESSION_METHOD_IBM_LZ77 = 19
COMPRESSION_METHOD_JPEG = 96
COMPRESSION_METHOD_WAVPACK = 97
COMPRESSION_METHOD_PPMD = 98
COMPRESSION_METHOD_AES = 99
COMPRESSION_METHODS = {
2020-02-09 21:25:04 +08:00
COMPRESSION_METHOD_STORE => 'Store (no compression)',
COMPRESSION_METHOD_SHRINK => 'Shrink',
COMPRESSION_METHOD_REDUCE_1 => 'Reduce with compression factor 1',
COMPRESSION_METHOD_REDUCE_2 => 'Reduce with compression factor 2',
COMPRESSION_METHOD_REDUCE_3 => 'Reduce with compression factor 3',
COMPRESSION_METHOD_REDUCE_4 => 'Reduce with compression factor 4',
COMPRESSION_METHOD_IMPLODE => 'Implode',
2019-12-29 23:07:16 +08:00
# RESERVED = 7
2020-02-09 21:25:04 +08:00
COMPRESSION_METHOD_DEFLATE => 'Deflate',
COMPRESSION_METHOD_DEFLATE_64 => 'Deflate64(tm)',
2019-12-29 23:07:16 +08:00
COMPRESSION_METHOD_PKWARE_DCLI => 'PKWARE Data Compression Library Imploding (old IBM TERSE)',
# RESERVED = 11
2020-02-09 21:25:04 +08:00
COMPRESSION_METHOD_BZIP2 => 'BZIP2',
2019-12-29 23:07:16 +08:00
# RESERVED = 13
2020-02-09 21:25:04 +08:00
COMPRESSION_METHOD_LZMA => 'LZMA',
2019-12-29 23:07:16 +08:00
# RESERVED = 15
2020-02-09 21:25:04 +08:00
COMPRESSION_METHOD_IBM_CMPSC => 'IBM z/OS CMPSC Compression',
2019-12-29 23:07:16 +08:00
# RESERVED = 17
2020-02-09 21:25:04 +08:00
COMPRESSION_METHOD_IBM_TERSE => 'IBM TERSE (new)',
COMPRESSION_METHOD_IBM_LZ77 => 'IBM LZ77 z Architecture (PFS)',
COMPRESSION_METHOD_JPEG => 'JPEG variant',
COMPRESSION_METHOD_WAVPACK => 'WavPack compressed data',
COMPRESSION_METHOD_PPMD => 'PPMd version I, Rev 1',
COMPRESSION_METHOD_AES => 'AES encryption'
2019-12-29 23:07:16 +08:00
}.freeze
end