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
unicode-display_width-3.1.4 lib/unicode/display_width/index.rb
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
brakeman-7.0.0 bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/index.rb
unicode-display_width-3.1.3 lib/unicode/display_width/index.rb
unicode-display_width-3.1.2 lib/unicode/display_width/index.rb
unicode-display_width-3.1.1 lib/unicode/display_width/index.rb
unicode-display_width-3.1.0 lib/unicode/display_width/index.rb
unicode-display_width-3.0.1 lib/unicode/display_width/index.rb
unicode-display_width-3.0.0 lib/unicode/display_width/index.rb
unicode-display_width-3.0.0.pre lib/unicode/display_width/index.rb
unicode-display_width-2.6.0 lib/unicode/display_width/index.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
katalyst-govuk-formbuilder-1.9.2 vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
harbr-2.8.1 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
bison-0.1.0 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
mlh-rubocop-config-1.0.3 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
study_line-0.2.7 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
study_line-0.2.6 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
study_line-0.2.5 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb
study_line-0.2.4 vendor/bundle/ruby/3.2.0/gems/unicode-display_width-2.5.0/lib/unicode/display_width/index.rb