This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "zlib"
|
||||
require_relative "constants"
|
||||
|
||||
module Unicode
|
||||
class DisplayWidth
|
||||
File.open(INDEX_FILENAME, "rb") do |file|
|
||||
serialized_data = Zlib::GzipReader.new(file).read
|
||||
serialized_data.force_encoding Encoding::BINARY
|
||||
INDEX = Marshal.load(serialized_data)
|
||||
end
|
||||
|
||||
def self.decompress_index(index, level)
|
||||
index.flat_map{ |value|
|
||||
if level > 0
|
||||
if value.instance_of?(Array)
|
||||
value[15] ||= nil
|
||||
decompress_index(value, level - 1)
|
||||
else
|
||||
decompress_index([value] * 16, level - 1)
|
||||
end
|
||||
else
|
||||
if value.instance_of?(Array)
|
||||
value[15] ||= nil
|
||||
value
|
||||
else
|
||||
[value] * 16
|
||||
end
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user