unicode-confusable 1.4.0 → 1.8.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 +4 -4
- data/CHANGELOG.md +16 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +8 -2
- data/MIT-LICENSE.txt +1 -1
- data/README.md +11 -9
- data/Rakefile +1 -1
- data/data/confusable.marshal.gz +0 -0
- data/lib/unicode/confusable/constants.rb +6 -4
- data/sig/unicode-confusable.rbs +14 -0
- data/unicode-confusable.gemspec +3 -3
- metadata +8 -9
- data/.travis.yml +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75b8aaeac1757b067675420ceef3882d9846935bfb27678bf67575fb2d8fcbaf
|
4
|
+
data.tar.gz: 950e1ddbe829d6af8b4389bfa7ca3b63cc71f472fcab4e6ddbd1b3eeaf60ad10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 262ac3a5adfc105a5ca348b102627839048dff3977aa680e4516a82f7e365256f4438c44e3211daf449833710dd43d80b1ab182626214883f0df95db94d35060
|
7
|
+
data.tar.gz: 63642a6f211f5a8ea512080ee1fe1e21ec45f40b7ec68fce4949748ceaac8e57536ed5c5c3cacd9e480921ca3ea35f306293d5d9c004f5ebd57049395f4c72cc
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,21 +1,27 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
unicode-confusable (1.
|
4
|
+
unicode-confusable (1.7.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
io-console (0.5.6)
|
10
|
+
irb (1.2.9)
|
11
|
+
reline (>= 0.1.5)
|
9
12
|
minitest (5.10.2)
|
10
13
|
rake (12.0.0)
|
14
|
+
reline (0.1.10)
|
15
|
+
io-console (~> 0.5)
|
11
16
|
|
12
17
|
PLATFORMS
|
13
18
|
ruby
|
14
19
|
|
15
20
|
DEPENDENCIES
|
21
|
+
irb
|
16
22
|
minitest
|
17
23
|
rake
|
18
24
|
unicode-confusable!
|
19
25
|
|
20
26
|
BUNDLED WITH
|
21
|
-
1.
|
27
|
+
2.1.4
|
data/MIT-LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
# Unicode::Confusable [![[version]](https://badge.fury.io/rb/unicode-confusable.svg)](
|
1
|
+
# Unicode::Confusable [![[version]](https://badge.fury.io/rb/unicode-confusable.svg)](https://badge.fury.io/rb/unicode-confusable) [![[ci]](https://github.com/janlelis/unicode-confusable/workflows/Test/badge.svg)](https://github.com/janlelis/unicode-confusable/actions?query=workflow%3ATest)
|
2
2
|
|
3
|
-
Compares two strings if they are visually confusable as described in [Unicode® Technical Standard #39](
|
3
|
+
Compares two strings if they are visually confusable as described in [Unicode® Technical Standard #39](https://www.unicode.org/reports/tr39/#Confusable_Detection): Both strings get transformed into a skeleton format before comparing them. The skeleton is generated by normalizing the string ([NFD](http://unicode.org/reports/tr15/#Norm_Forms)), replacing [confusable characters](https://unicode.org/Public/security/12.1.0/confusables.txt), and normalizing the string again.
|
4
4
|
|
5
|
-
Unicode version: **
|
5
|
+
Unicode version: **14.0.0**\* (September 2021)
|
6
6
|
|
7
|
-
|
7
|
+
\* The Unicode normalization [depends on your Ruby version](https://idiosyncratic-ruby.com/73-unicode-version-mapping.html)
|
8
8
|
|
9
|
-
|
9
|
+
Supported Rubies: **3.0**, **2.7**
|
10
|
+
|
11
|
+
Old Rubies which might still work: **2.6**, **2.5**, **2.4**, **2.3**, **2.2**
|
10
12
|
|
11
13
|
## Usage
|
12
14
|
|
@@ -29,11 +31,11 @@ Unicode::Confusable.confusable? "⁇", "??" # => true
|
|
29
31
|
Unicode::Confusable.skeleton "ℜ𝘂ᖯʏ" # => "Ruby"
|
30
32
|
```
|
31
33
|
|
32
|
-
**Please note:** The skeleton is an intermediate representation, not meant for any other use than testing confusability, [according to the standard](
|
34
|
+
**Please note:** The skeleton is an intermediate representation, not meant for any other use than testing confusability, [according to the standard](https://www.unicode.org/reports/tr39/#Confusable_Detection).
|
33
35
|
|
34
36
|
### List
|
35
37
|
|
36
|
-
List all confusables of specific character:
|
38
|
+
List all confusables of a specific character:
|
37
39
|
|
38
40
|
```ruby
|
39
41
|
Unicode::Confusable.list("o", false)
|
@@ -61,5 +63,5 @@ See [unicode-x](https://github.com/janlelis/unicode-x) for more Unicode related
|
|
61
63
|
|
62
64
|
## MIT License
|
63
65
|
|
64
|
-
- Copyright (C) 2016-
|
65
|
-
- Unicode data:
|
66
|
+
- Copyright (C) 2016-2021 Jan Lelis <https://janlelis.com>. Released under the MIT license.
|
67
|
+
- Unicode data: https://www.unicode.org/copyright.html#Exhibit1
|
data/Rakefile
CHANGED
data/data/confusable.marshal.gz
CHANGED
Binary file
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Unicode
|
2
4
|
module Confusable
|
3
|
-
VERSION = "1.
|
4
|
-
UNICODE_VERSION = "
|
5
|
-
DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) +
|
6
|
-
INDEX_FILENAME = (DATA_DIRECTORY +
|
5
|
+
VERSION = "1.8.0"
|
6
|
+
UNICODE_VERSION = "14.0.0"
|
7
|
+
DATA_DIRECTORY = File.expand_path(File.dirname(__FILE__) + "/../../../data/").freeze
|
8
|
+
INDEX_FILENAME = (DATA_DIRECTORY + "/confusable.marshal.gz").freeze
|
7
9
|
end
|
8
10
|
end
|
9
11
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# Classes
|
2
|
+
module Unicode
|
3
|
+
module Confusable
|
4
|
+
VERSION: String
|
5
|
+
UNICODE_VERSION: String
|
6
|
+
DATA_DIRECTORY: String
|
7
|
+
INDEX_FILENAME: String
|
8
|
+
INDEX: Hash
|
9
|
+
|
10
|
+
def self.confusable?: (String string1, String string2) -> bool
|
11
|
+
def self.skeleton: (String string) -> String
|
12
|
+
def self.list: (String char, ?bool partial_mapping_allowed) -> Array
|
13
|
+
end
|
14
|
+
end
|
data/unicode-confusable.gemspec
CHANGED
@@ -6,9 +6,9 @@ Gem::Specification.new do |gem|
|
|
6
6
|
gem.name = "unicode-confusable"
|
7
7
|
gem.version = Unicode::Confusable::VERSION
|
8
8
|
gem.summary = "Detect characters that look visually similar."
|
9
|
-
gem.description = "[Unicode #{Unicode::Confusable::UNICODE_VERSION}] Compares two strings if they are visually confusable as described in Unicode® Technical Standard #39: Both strings get transformed into a skeleton format before comparing them. The skeleton is generated by normalizing the string, replacing confusable characters, and normalizing the string again."
|
9
|
+
gem.description = "[Unicode #{Unicode::Confusable::UNICODE_VERSION}] Compares two strings if they are visually confusable as described in Unicode® Technical Standard #39: Both strings get transformed into a skeleton format before comparing them. The skeleton is generated by normalizing the string, replacing confusable characters, and then normalizing the string again."
|
10
10
|
gem.authors = ["Jan Lelis"]
|
11
|
-
gem.email = ["
|
11
|
+
gem.email = ["hi@ruby.consulting"]
|
12
12
|
gem.homepage = "https://github.com/janlelis/unicode-confusable"
|
13
13
|
gem.license = "MIT"
|
14
14
|
|
@@ -17,5 +17,5 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.required_ruby_version = "
|
20
|
+
gem.required_ruby_version = ">= 2.2"
|
21
21
|
end
|
metadata
CHANGED
@@ -1,27 +1,26 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unicode-confusable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.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:
|
11
|
+
date: 2021-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description: "[Unicode
|
13
|
+
description: "[Unicode 14.0.0] Compares two strings if they are visually confusable
|
14
14
|
as described in Unicode® Technical Standard #39: Both strings get transformed into
|
15
15
|
a skeleton format before comparing them. The skeleton is generated by normalizing
|
16
|
-
the string, replacing confusable characters, and normalizing the string again."
|
16
|
+
the string, replacing confusable characters, and then normalizing the string again."
|
17
17
|
email:
|
18
|
-
-
|
18
|
+
- hi@ruby.consulting
|
19
19
|
executables: []
|
20
20
|
extensions: []
|
21
21
|
extra_rdoc_files: []
|
22
22
|
files:
|
23
23
|
- ".gitignore"
|
24
|
-
- ".travis.yml"
|
25
24
|
- CHANGELOG.md
|
26
25
|
- CODE_OF_CONDUCT.md
|
27
26
|
- Gemfile
|
@@ -34,6 +33,7 @@ files:
|
|
34
33
|
- lib/unicode/confusable/constants.rb
|
35
34
|
- lib/unicode/confusable/index.rb
|
36
35
|
- lib/unicode/confusable/string_ext.rb
|
36
|
+
- sig/unicode-confusable.rbs
|
37
37
|
- spec/unicode_confusable_spec.rb
|
38
38
|
- unicode-confusable.gemspec
|
39
39
|
homepage: https://github.com/janlelis/unicode-confusable
|
@@ -46,7 +46,7 @@ require_paths:
|
|
46
46
|
- lib
|
47
47
|
required_ruby_version: !ruby/object:Gem::Requirement
|
48
48
|
requirements:
|
49
|
-
- - "
|
49
|
+
- - ">="
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
version: '2.2'
|
52
52
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -55,8 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0'
|
57
57
|
requirements: []
|
58
|
-
|
59
|
-
rubygems_version: 2.7.6
|
58
|
+
rubygems_version: 3.2.3
|
60
59
|
signing_key:
|
61
60
|
specification_version: 4
|
62
61
|
summary: Detect characters that look visually similar.
|
data/.travis.yml
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
language: ruby
|
3
|
-
|
4
|
-
script: bundle exec ruby spec/unicode_confusable_spec.rb
|
5
|
-
|
6
|
-
rvm:
|
7
|
-
- 2.5.1
|
8
|
-
- 2.4.4
|
9
|
-
- 2.3.7
|
10
|
-
- 2.2
|
11
|
-
- ruby-head
|
12
|
-
- jruby-head
|
13
|
-
- jruby-9.1.16.0
|
14
|
-
|
15
|
-
matrix:
|
16
|
-
allow_failures:
|
17
|
-
- rvm: 2.2
|
18
|
-
- rvm: jruby-head
|