unicode-display_width 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b74011f05c3a5888834037aa487904d2515cddd224c9e704a00a797b84cbede0
4
- data.tar.gz: 8e86c213031df728e95b7b2341a77b568b1876baec2d750e6832e108dfede578
3
+ metadata.gz: 345a2b006bdd1a963bb87ac154e3da3c233477601fb34888d28d2328ef123e61
4
+ data.tar.gz: 9767f986e792a1edffce1c2732da3d197a70a5acdedc27dcd1258651af797e29
5
5
  SHA512:
6
- metadata.gz: 3cf9ec0dce0f94bbfaa44ffe75bc1caf51b74598437226dba6a253419a5397bd678bf1a7e9587603de2b9923970471b35d89bf7b218a891f46b0c396849fcc4b
7
- data.tar.gz: 5e5cee4b27b34d5c1b9cf74f4764b3afcf1c402230a268a9b348b84e47d225253acee2680ccb9778fedf2049944f61fbeb758bc7150f8e60c23c122308cd2540
6
+ metadata.gz: ffd9b9ade61e693a9438fb06e94e11f523dfe597d31284d7cd112e5354794c9df7be5603585aaeadecd74a34427473a080aae0a0f3e686624ae0678880d9f72b
7
+ data.tar.gz: b1299f62bf1bc55312cadeb27c26724eddd002063ca5519c650e55258a578860d561eca19bdf8b5cff9fcd84b3864d5137ad95f018efa90f765b8b8b52dfae0d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 3.3.0
4
+
5
+ - Unicode 18.0
6
+ - Fix bug that emoji handling could not be deactivated when using config object
7
+ - Fix edge case to not modify string when failing parsing binary input as UTF-8
8
+
3
9
  ## 3.2.0
4
10
 
5
11
  - Unicode 17.0
data/MIT-LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT LICENSE
2
2
 
3
- Copyright (c) 2011, 2015-2024 Jan Lelis
3
+ Copyright (c) 2011, 2015-2026 Jan Lelis
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Determines the monospace display width of a string in Ruby, which is useful for all kinds of terminal-based applications. The implementation is based on [EastAsianWidth.txt](https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt), the [Emoji specfication](https://www.unicode.org/reports/tr51/) and other data, 100% in Ruby. It does not rely on the OS vendor ([wcwidth](https://github.com/janlelis/wcswidth-ruby)) to provide an up-to-date method for measuring string width in terminals.
4
4
 
5
- Unicode version: **17.0.0** (September 2025)
5
+ Unicode version: **18.0.0** (September 2026)
6
6
 
7
7
  ## Gem Version 3 — Improved Emoji Support
8
8
 
@@ -188,7 +188,7 @@ See [unicode-x](https://github.com/janlelis/unicode-x) for more Unicode related
188
188
 
189
189
  ## Copyright & Info
190
190
 
191
- - Copyright (c) 2011, 2015-2025 Jan Lelis, https://janlelis.com, released under the MIT
191
+ - Copyright (c) 2011, 2015-2026 Jan Lelis, https://janlelis.com, released under the MIT
192
192
  license
193
193
  - Early versions based on runpaint's unicode-data interface: Copyright (c) 2009 Run Paint Run Run
194
194
  - Unicode data: https://www.unicode.org/copyright.html#Exhibit1
Binary file
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Unicode
4
4
  class DisplayWidth
5
- VERSION = "3.2.0"
6
- UNICODE_VERSION = "17.0.0"
5
+ VERSION = "3.3.0"
6
+ UNICODE_VERSION = "18.0.0"
7
7
  DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + "/../../../data/")
8
8
  INDEX_FILENAME = DATA_DIRECTORY + "/display_width.marshal.gz"
9
9
  end
@@ -17,7 +17,7 @@ module Unicode
17
17
 
18
18
  def self._recommended
19
19
  if ENV["CI"]
20
- return :rqi
20
+ return :rgi
21
21
  end
22
22
 
23
23
  case ENV["TERM_PROGRAM"]
@@ -51,9 +51,9 @@ module Unicode
51
51
  def self.of(string, ambiguous = nil, overwrite = nil, old_options = {}, **options)
52
52
  # Binary strings don't make much sense when calculating display width.
53
53
  # Assume it's valid UTF-8
54
- if string.encoding == Encoding::BINARY && !string.force_encoding(Encoding::UTF_8).valid_encoding?
55
- # Didn't work out, go back to binary
56
- string.force_encoding(Encoding::BINARY)
54
+ if string.encoding == Encoding::BINARY
55
+ utf8_string = string.dup.force_encoding(Encoding::UTF_8)
56
+ string = utf8_string if utf8_string.valid_encoding?
57
57
  end
58
58
 
59
59
  string = string.encode(Encoding::UTF_8, invalid: :replace, undef: :replace) unless string.encoding == Encoding::UTF_8
@@ -236,7 +236,7 @@ module Unicode
236
236
  {
237
237
  ambiguous: kwargs[:ambiguous] || @ambiguous,
238
238
  overwrite: kwargs[:overwrite] || @overwrite,
239
- emoji: kwargs[:emoji] || @emoji,
239
+ emoji: kwargs.fetch(:emoji, @emoji),
240
240
  }
241
241
  end
242
242
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicode-display_width
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Lelis
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-09-09 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: unicode-emoji
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '4.1'
18
+ version: '4.3'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '4.1'
25
+ version: '4.3'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: rspec
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -52,7 +51,7 @@ dependencies:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
53
  version: '13.0'
55
- description: "[Unicode 17.0.0] Determines the monospace display width of a string
54
+ description: "[Unicode 18.0.0] Determines the monospace display width of a string
56
55
  using EastAsianWidth.txt, Unicode general category, Emoji specification, and other
57
56
  data."
58
57
  email:
@@ -60,9 +59,9 @@ email:
60
59
  executables: []
61
60
  extensions: []
62
61
  extra_rdoc_files:
63
- - README.md
64
- - MIT-LICENSE.txt
65
62
  - CHANGELOG.md
63
+ - MIT-LICENSE.txt
64
+ - README.md
66
65
  files:
67
66
  - CHANGELOG.md
68
67
  - MIT-LICENSE.txt
@@ -83,7 +82,6 @@ metadata:
83
82
  source_code_uri: https://github.com/janlelis/unicode-display_width
84
83
  bug_tracker_uri: https://github.com/janlelis/unicode-display_width/issues
85
84
  rubygems_mfa_required: 'true'
86
- post_install_message:
87
85
  rdoc_options: []
88
86
  require_paths:
89
87
  - lib
@@ -98,8 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
96
  - !ruby/object:Gem::Version
99
97
  version: '0'
100
98
  requirements: []
101
- rubygems_version: 3.5.21
102
- signing_key:
99
+ rubygems_version: 4.0.20
103
100
  specification_version: 4
104
101
  summary: Determines the monospace display width of a string in Ruby.
105
102
  test_files: []