unicode-sequence_name 1.14.0 โ†’ 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc56290d80aa559b72e07cdb113a85785bf38408d3aa8c60cf6ab1096a7c77ab
4
- data.tar.gz: e7e6183d46725245663b546c68abe9335ae633247d7814ccea486c1cb55bd033
3
+ metadata.gz: 4f82b600e2dee51ced0f09804f15738ccbf649f9b514795e1d30d4689c53bda3
4
+ data.tar.gz: cf50ae70515d8d772eb485f93452a3abdd07218adac8a4c8bfcc8c166fe4803b
5
5
  SHA512:
6
- metadata.gz: ab8100396577cb4b360f13eef2cdb9f18ddd66436d1c39046d54d45c33aa4cbd9b6f5afc421368dfe816171b6261b0d4eaecd1cef59a0ef594a13974927da1f8
7
- data.tar.gz: 9bafbec1dac2df24e2c3b8654c76e4939b415609f8eb30989a3153486fe1d3405f83a6f885df601cc6e7dadea12f209460550faf2f7a4fbda3d2e69d55fb63dd
6
+ metadata.gz: eb6701614c710ab7abf71bd8a2a2dc6c96a0fffb777d36ba47e2951bfe76b2259eb35f473c1496ffc19544d40cea015728747926e531a33fc881b12a96ee8ac2
7
+ data.tar.gz: 8941fe7b817418e6792715340bfefd7d803ae89a9704a5bd51b830e3e31777975b5c4b52851da5d127ac4b8d379f0c671452ae5efbbd52b27ef23e069b024247
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## CHANGELOG
2
2
 
3
+ ### 1.15.0
4
+
5
+ - Include Emoji sequences which are not fully qualified (VS16 is missing) in index
6
+ - You can use the newly introduced method `Unicode::SequenceName.fully_qualified`
7
+ if you want to exclude non-fully qualified sequences
8
+
9
+ ### 1.14.1
10
+
11
+ - Fix bug that some singleton Emoji would be included in index
12
+
3
13
  ### 1.14.0
4
14
 
5
15
  - Unicode 16.0
data/Gemfile.lock CHANGED
@@ -1,24 +1,24 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- unicode-sequence_name (1.14.0)
4
+ unicode-sequence_name (1.15.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- io-console (0.6.0)
10
- irb (1.8.1)
11
- rdoc
12
- reline (>= 0.3.8)
13
- minitest (5.20.0)
14
- psych (5.1.0)
9
+ io-console (0.7.2)
10
+ irb (1.14.1)
11
+ rdoc (>= 4.0.0)
12
+ reline (>= 0.4.2)
13
+ minitest (5.25.1)
14
+ psych (5.1.2)
15
15
  stringio
16
- rake (13.0.6)
17
- rdoc (6.5.0)
16
+ rake (13.2.1)
17
+ rdoc (6.7.0)
18
18
  psych (>= 4.0.0)
19
- reline (0.3.8)
19
+ reline (0.5.10)
20
20
  io-console (~> 0.5)
21
- stringio (3.0.8)
21
+ stringio (3.1.1)
22
22
 
23
23
  PLATFORMS
24
24
  ruby
data/README.md CHANGED
@@ -10,7 +10,7 @@ IVD version: **2022-09-13** (September 2022)
10
10
 
11
11
  Supported Rubies: **3.3**, **3.2**, **3.1**, **3.0**
12
12
 
13
- Old Rubies which might still work: **2.7**, **2.6**, **2.5**, **2.4**, **2.3**, **2.X**
13
+ Old Rubies which might still work: **2.X**
14
14
 
15
15
  ## Usage
16
16
 
@@ -32,12 +32,17 @@ Unicode::SequenceName.of "๐Ÿ™‚โ€โ†”๏ธ" # => "HEAD SHAKING HORIZONTALLY"
32
32
  Unicode::SequenceName.of "โ€˜๏ธ" # => "LEFT SINGLE QUOTATION MARK (right-justified fullwidth form)"
33
33
  ```
34
34
 
35
- Names for singular codepoints are not included, you can use [unicode-name](https://github.com/janlelis/unicode-name) for that purpose.
35
+ Names for singular codepoints are not included, but you can use [unicode-name](https://github.com/janlelis/unicode-name) for that purpose. This is how you could use both libraries together to get the most relevant name of a character:
36
+
37
+ ```ruby
38
+ name = Unicode::SequenceName.of(char) || Unicode::Name.readable(char)
39
+ ```
36
40
 
37
41
  ## Also See
38
42
 
39
43
  - [uniscribe](https://github.com/janlelis/uniscribe) - cli utility that makes use of unicode_sequence-name
40
44
  - [unicode-x](https://github.com/janlelis/unicode-x) - more Unicode related micro libraries
45
+ - [unicode-name.js](https://github.com/janlelis/unicode-name.js) - JavaScript implementation of name and sequence_name
41
46
 
42
47
  ## MIT License
43
48
 
Binary file
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Unicode
4
4
  module SequenceName
5
- VERSION = "1.14.0"
5
+ VERSION = "1.15.0"
6
6
  UNICODE_VERSION = "16.0.0"
7
7
  EMOJI_VERSION = "16.0"
8
8
  IVD_VERSION = "2022-09-13"
@@ -5,7 +5,7 @@ module Unicode
5
5
  def self.sequence_name(string)
6
6
  codepoints = get_codepoint_values(string)
7
7
  require_relative "sequence_name/index" unless defined? ::Unicode::SequenceName::INDEX
8
- if res = INDEX[codepoints]
8
+ if res = INDEX[:SEQUENCES][codepoints] || INDEX[:SEQUENCES_NOT_QUALIFIED][codepoints]
9
9
  res
10
10
  else
11
11
  nil
@@ -13,6 +13,16 @@ module Unicode
13
13
  end
14
14
  class << self; alias of sequence_name; end
15
15
 
16
+ def self.fully_qualified(string)
17
+ codepoints = get_codepoint_values(string)
18
+ require_relative "sequence_name/index" unless defined? ::Unicode::SequenceName::INDEX
19
+ if res = INDEX[:SEQUENCES][codepoints]
20
+ res
21
+ else
22
+ nil
23
+ end
24
+ end
25
+
16
26
  def self.get_codepoint_values(string)
17
27
  if string.valid_encoding?
18
28
  return string.codepoints
@@ -3,7 +3,7 @@ require "minitest/autorun"
3
3
 
4
4
  describe Unicode::SequenceName do
5
5
  describe ".sequence_name (alias .of)" do
6
- it "will return name for that sequence name" do
6
+ it "will return name for that sequence" do
7
7
  assert_equal "DOUBLE EXCLAMATION MARK (text style)", Unicode::SequenceName.of("โ€ผ๏ธŽ")
8
8
  assert_equal "CJK COMPATIBILITY IDEOGRAPH-2F81F", Unicode::SequenceName.of("ใ“Ÿ๏ธ€")
9
9
  assert_equal "MYANMAR LETTER NGA (dotted form)", Unicode::SequenceName.of("แ€„๏ธ€")
@@ -19,10 +19,30 @@ describe Unicode::SequenceName do
19
19
  assert_equal "LEFT SINGLE QUOTATION MARK (right-justified fullwidth form)", Unicode::SequenceName.of("โ€˜๏ธ") # Unicode 16.0
20
20
  end
21
21
 
22
+ it "will return name for that sequence (not fully qualified: VS16 missing)" do
23
+ assert_equal "COUPLE WITH HEART: WOMAN, WOMAN, DARK SKIN TONE, MEDIUM SKIN TONE", Unicode::SequenceName.of("๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ")
24
+ assert_equal "MAN JUDGE", Unicode::SequenceName.of("๐Ÿ‘จโ€โš–")
25
+ assert_equal "WOMAN BOUNCING BALL", Unicode::SequenceName.of("โ›นโ€โ™€๏ธ") # First VS16 missing
26
+ assert_equal "WOMAN BOUNCING BALL", Unicode::SequenceName.of("โ›น๏ธโ€โ™€") # Second VS16 missing
27
+ end
28
+
22
29
  it "will return nil for characters without name" do
23
30
  assert_nil Unicode::SequenceName.of("\u{10c50}")
24
31
  assert_nil Unicode::SequenceName.of("bla")
25
32
  end
33
+
34
+ it "will return nil for single codepoints" do
35
+ assert_nil Unicode::SequenceName.of("โณ")
36
+ end
37
+ end
38
+
39
+ describe ".fully_qualified" do
40
+ it "will *not* return name for that sequence (not fully qualified: VS16 missing)" do
41
+ assert_nil Unicode::SequenceName.fully_qualified("๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ")
42
+ assert_nil Unicode::SequenceName.fully_qualified("๐Ÿ‘จโ€โš–")
43
+ assert_nil Unicode::SequenceName.fully_qualified("โ›นโ€โ™€๏ธ") # First VS16 missing
44
+ assert_nil Unicode::SequenceName.fully_qualified("โ›น๏ธโ€โ™€") # Second VS16 missing
45
+ end
26
46
  end
27
47
  end
28
48
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicode-sequence_name
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.0
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Lelis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-13 00:00:00.000000000 Z
11
+ date: 2024-10-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: "[Unicode 16.0.0][Emoji 16.0] Returns the name of a Unicode code point
14
14
  sequence, if one exists"
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  requirements: []
56
- rubygems_version: 3.5.9
56
+ rubygems_version: 3.5.21
57
57
  signing_key:
58
58
  specification_version: 4
59
59
  summary: Returns the name of a Unicode codepoint sequence, if one exists