tr39_confusables 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/tr39_confusables.rb +20 -0
  3. metadata +61 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: be44109a10269fb5fe16896070a62cf63fc14433
4
+ data.tar.gz: 1902a663e170f3445248bb8f2f21dbe244bbc310
5
+ SHA512:
6
+ metadata.gz: 46a3de9c679c3c6076c0d78f9654efa57d160930eee6dfb6e9c411b6506ab817128c88518c90c74f95d7611a24c0d775ccb153983b39eecf975f93a7b8ab6a6e
7
+ data.tar.gz: 7fbad993dd2a4a516792b29b78595d8a851d3049f0a06b625ce042bd6568f99f625a6812755e1451be70bd7343636775c36b2a0b46cf8dcf2c0dab662f381f00
@@ -0,0 +1,20 @@
1
+ require 'unf'
2
+
3
+ module Tr39Confusables
4
+ @@table = Marshal.load(File.open("lib/confusables", "r"))
5
+
6
+ def self.skeleton(string)
7
+ string = UNF::Normalizer.normalize(string, :nfc)
8
+ UNF::Normalizer.normalize(mapping(string), :nfc)
9
+ end
10
+
11
+ def self.is_confusable?(a, b)
12
+ skeleton(a) == skeleton(b)
13
+ end
14
+
15
+ private
16
+
17
+ def self.mapping(string)
18
+ string.chars.map { |c| @@table.fetch(c, c) }.join
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tr39_confusables
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Erick Guan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: unf
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
27
+ description: Rubygem implements Skeleton algorithm from Unicode TR39 to dectect Unicode
28
+ confusables.
29
+ email: fantasticfears@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/tr39_confusables.rb
35
+ homepage: https://github.com/fantasticfears/tr39_confusables
36
+ licenses:
37
+ - MIT
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 2.4.7
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: Rubygem implements Skeleton algorithm from Unicode TR39 to dectect Unicode
59
+ confusables.
60
+ test_files: []
61
+ has_rdoc: