Sha256: 5cadf0b2d1bab425b504ef8556385d06e0084f29e22caa18b2a928806b1ed437

Contents?: true

Size: 807 Bytes

Versions: 118

Compression:

Stored size: 807 Bytes

Contents

# 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

Version data entries

118 entries across 118 versions & 18 rubygems

Version Path
harbr-0.1.94 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.93 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.91 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.90 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.89 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.88 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.87 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.86 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.85 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.84 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.83 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.82 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.81 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.80 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.79 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.78 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.77 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.76 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.75 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-0.1.74 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb