unicode-name 1.1.0 → 1.2.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
  SHA1:
3
- metadata.gz: f3a8de48e9b0cde71e28b66a905775a415258861
4
- data.tar.gz: ce9bb0b4e85c1b456ae79a62287ce0e48e4ba238
3
+ metadata.gz: e822a1e4a2633c877133bdfae948fe8a55d17de5
4
+ data.tar.gz: 68275ded458adc208f387824efab0b44b3bb0ac6
5
5
  SHA512:
6
- metadata.gz: 97265bf800a36c2207ae3e2bb74d24473ed91f399e726ae5e1136eacbbdf16be87007fd5fc277f3d0024e339f8c80adfc4c22160fc862c5bcb4a6bfb96b2e68e
7
- data.tar.gz: 2a140e46907de2e489279970763b49d5b9ec87059b621af60338835ca69fec7097a02550ccd8d25c778e0ac8678cab38af04f36f681e4c293e1a35212d2e56b7
6
+ metadata.gz: 5f1bb82a0b9b9a45c2e62016ee2942b9b7dea94e9094622a9b58c64bd740afa75cbb9b5230bd4af3fda6512011ffc01b9e9713652334b915be39890d2431a44d
7
+ data.tar.gz: c82bf02c6c09ad07caad0857c1a5ce40b833c23e2a1146c82614cb4042298547efd37e3b889a5b9e29c61599161768eaefce26819dc18774fb23c867c8f83de9
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## CHANGELOG
2
2
 
3
+ ### 1.2.0
4
+
5
+ * Support CJK Ideographs
6
+
3
7
  ### 1.1.0
4
8
 
5
9
  * Support codepoint labels
data/README.md CHANGED
@@ -14,6 +14,7 @@ require "unicode/name"
14
14
  # Name
15
15
  Unicode::Name.of "A" # => "LATIN CAPITAL LETTER A"
16
16
  Unicode::Name.of "🚡" # => "AERIAL TRAMWAY"
17
+ Unicode::Name.of "丁" # => "CJK UNIFIED IDEOGRAPH-4E01"
17
18
 
18
19
  # Aliases, by type
19
20
  Unicode::Name.aliases "\t" # => {:control=>["CHARACTER TABULATION", "HORIZONTAL TABULATION"],
@@ -37,6 +38,10 @@ Unicode::Name.readable("\u{FFFFD}") # => "<private-use-FFFFD>"
37
38
 
38
39
  See [unicode-x](https://github.com/janlelis/unicode-x) for more Unicode related micro libraries.
39
40
 
41
+ ## Todo
42
+
43
+ * Hangul syllable names
44
+
40
45
  ## MIT License
41
46
 
42
47
  - Copyright (C) 2016 Jan Lelis <http://janlelis.com>. Released under the MIT license.
data/data/name.marshal.gz CHANGED
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  module Unicode
2
2
  module Name
3
- VERSION = "1.1.0".freeze
3
+ VERSION = "1.2.0".freeze
4
4
  UNICODE_VERSION = "8.0.0".freeze
5
5
  DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + '/../../../data/').freeze
6
6
  INDEX_FILENAME = (DATA_DIRECTORY + '/name.marshal.gz').freeze
data/lib/unicode/name.rb CHANGED
@@ -6,7 +6,15 @@ module Unicode
6
6
  def self.unicode_name(char)
7
7
  codepoint = char.unpack("U")[0]
8
8
  require_relative "name/index" unless defined? ::Unicode::Name::INDEX
9
- INDEX[:NAMES][codepoint]
9
+ if res = INDEX[:NAMES][codepoint]
10
+ res
11
+ elsif INDEX[:CJK].any?{ |cjk_range| codepoint >= cjk_range[0] && codepoint <= cjk_range[1] }
12
+ "CJK UNIFIED IDEOGRAPH-%.4X" % codepoint
13
+ elsif codepoint >= INDEX[:HANGUL][0][0] && codepoint <= INDEX[:HANGUL][0][1]
14
+ "HANGUL SYLLABLE-%.4X" % codepoint
15
+ else
16
+ nil
17
+ end
10
18
  end
11
19
  class << self; alias of unicode_name; end
12
20
 
@@ -16,7 +24,7 @@ module Unicode
16
24
  if correction = INDEX[:ALIASES][codepoint] && INDEX[:ALIASES][codepoint][:correction][-1]
17
25
  correction
18
26
  else
19
- INDEX[:NAMES][codepoint]
27
+ unicode_name(char)
20
28
  end
21
29
  end
22
30
 
Binary file
@@ -9,6 +9,14 @@ describe Unicode::Name do
9
9
  assert_equal "REPLACEMENT CHARACTER", Unicode::Name.of("�")
10
10
  end
11
11
 
12
+ it "works for CJK Ideographs" do
13
+ assert_equal "CJK UNIFIED IDEOGRAPH-4E01", Unicode::Name.of("丁")
14
+ end
15
+
16
+ # it "works for Hangul Syllables" do
17
+ # assert_equal "HANGUL SYLLABLE GAG", Unicode::Name.of("각")
18
+ # end
19
+
12
20
  it "will return nil for characters without name" do
13
21
  assert_equal nil, Unicode::Name.of("\u{10c50}")
14
22
  assert_equal nil, Unicode::Name.of("\0")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unicode-name
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Lelis
@@ -46,10 +46,12 @@ files:
46
46
  - README.md
47
47
  - Rakefile
48
48
  - data/name.marshal.gz
49
+ - lib/unicode/.name.rb.swp
49
50
  - lib/unicode/name.rb
50
51
  - lib/unicode/name/constants.rb
51
52
  - lib/unicode/name/index.rb
52
53
  - lib/unicode/name/string_ext.rb
54
+ - spec/.unicode_name_spec.rb.swp
53
55
  - spec/unicode_name_spec.rb
54
56
  - unicode-name.gemspec
55
57
  homepage: https://github.com/janlelis/unicode-name
@@ -77,5 +79,6 @@ signing_key:
77
79
  specification_version: 4
78
80
  summary: Returns name/aliases/label of a Unicode codepoint
79
81
  test_files:
82
+ - spec/.unicode_name_spec.rb.swp
80
83
  - spec/unicode_name_spec.rb
81
84
  has_rdoc: