tanuki_emoji 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +1 -1
- data/lib/tanuki_emoji/character.rb +1 -1
- data/lib/tanuki_emoji/db/unicode_ordering.rb +47 -0
- data/lib/tanuki_emoji/db.rb +1 -0
- data/lib/tanuki_emoji/index.rb +1 -0
- data/lib/tanuki_emoji/version.rb +1 -1
- data/vendor/unicode/emoji-ordering.txt +3810 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 813531e905727359e63b0cc535a5c2e7f4f418536d1aa22c1fc93515f47fbbe9
|
4
|
+
data.tar.gz: fa5fe7bbeddee299620bc45ba7fe1fb387ae963b2e0d4f5c9b26d229732631e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c0268dbd2f81f2994171dfc6aa42373537824fd7ce4568555a60ee8a5608241ace1386e6f2e063997e7d148261c386174427793d46ef4dd53675c57add48928
|
7
|
+
data.tar.gz: 46c771d114d9f0529dfcd47b161988ccf57f1f73674b12253b1d28241ca75445ce1e678aa801cdc96547cbf9a9e37911b0007a45421ddaa25df2d1f7600c3eaa
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## 0.9.0 (2023-10-17)
|
8
|
+
|
9
|
+
### Added (1 change)
|
10
|
+
|
11
|
+
- [Added ordering information to to `Character`](gitlab-org/ruby/gems/tanuki_emoji@c618fae04409067a38ddc454d3dfaee4678da520) ([merge request](gitlab-org/ruby/gems/tanuki_emoji!61))
|
12
|
+
|
7
13
|
## 0.8.0 (2023-09-15)
|
8
14
|
|
9
15
|
### Changed (1 change)
|
data/Gemfile.lock
CHANGED
@@ -23,7 +23,7 @@ module TanukiEmoji
|
|
23
23
|
|
24
24
|
attr_reader :name, :codepoints, :codepoints_alternates, :alpha_code, :aliases, :ascii_aliases, :description, :category
|
25
25
|
|
26
|
-
attr_accessor :unicode_version
|
26
|
+
attr_accessor :unicode_version, :sort_key
|
27
27
|
|
28
28
|
# @param [String] name
|
29
29
|
# @param [String] codepoints
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TanukiEmoji
|
4
|
+
module Db
|
5
|
+
# Emoji Unicode Ordering database
|
6
|
+
class UnicodeOrdering
|
7
|
+
DATA_FILE = 'vendor/unicode/emoji-ordering.txt'
|
8
|
+
|
9
|
+
def self.data_file
|
10
|
+
File.expand_path(File.join(__dir__, '../../../', DATA_FILE))
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_reader :data_file
|
14
|
+
|
15
|
+
def initialize(index:, data_file: nil)
|
16
|
+
@data_file = data_file || self.class.data_file
|
17
|
+
@index = index
|
18
|
+
end
|
19
|
+
|
20
|
+
def load!
|
21
|
+
db = {}
|
22
|
+
File.readlines(data_file, mode: 'r:UTF-8').each_with_index do |line, line_number|
|
23
|
+
next if line.start_with?('#')
|
24
|
+
|
25
|
+
tokens = line.split
|
26
|
+
semicolon_offset = tokens.index(';')
|
27
|
+
next if semicolon_offset.nil?
|
28
|
+
|
29
|
+
codepoints_array = tokens[0...semicolon_offset].map do |token|
|
30
|
+
token[2...token.length].hex
|
31
|
+
end
|
32
|
+
codepoints = codepoints_array.pack('U*')
|
33
|
+
|
34
|
+
db[codepoints] = line_number
|
35
|
+
end
|
36
|
+
|
37
|
+
db.each do |codepoints, sort_key|
|
38
|
+
emoji = @index.find_by_codepoints(codepoints)
|
39
|
+
|
40
|
+
next unless emoji
|
41
|
+
|
42
|
+
emoji.sort_key = sort_key
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/tanuki_emoji/db.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
module TanukiEmoji
|
4
4
|
module Db
|
5
5
|
autoload :Gemojione, 'tanuki_emoji/db/gemojione'
|
6
|
+
autoload :UnicodeOrdering, 'tanuki_emoji/db/unicode_ordering'
|
6
7
|
autoload :UnicodeVersion, 'tanuki_emoji/db/unicode_version'
|
7
8
|
autoload :EmojiData, 'tanuki_emoji/db/emoji_data'
|
8
9
|
autoload :EmojiDataParser, 'tanuki_emoji/db/emoji_data_parser'
|
data/lib/tanuki_emoji/index.rb
CHANGED
@@ -114,6 +114,7 @@ module TanukiEmoji
|
|
114
114
|
def load_data_files
|
115
115
|
Db::Gemojione.new(index: self).load!
|
116
116
|
Db::UnicodeVersion.new(index: self).load!
|
117
|
+
Db::UnicodeOrdering.new(index: self).load!
|
117
118
|
end
|
118
119
|
|
119
120
|
# Order the codepoints to match the most specific (longest) sequences first,
|
data/lib/tanuki_emoji/version.rb
CHANGED