inci_score 2.0.1 → 2.0.2
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/.travis.yml +2 -0
- data/README.md +2 -2
- data/inci_score.gemspec +1 -1
- data/lib/inci_score/levenshtein.rb +0 -9
- data/lib/inci_score/recognizer_rules.rb +4 -3
- data/lib/inci_score/refinements.rb +20 -0
- data/lib/inci_score/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64259796b3d4a9d134999b66cdbd9bf869340ee5
|
4
|
+
data.tar.gz: ab5a536ebc4841ab86d3f3a3e5d70a88c146b81b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a03e0a913ab6c41350a2305de482801abafa191a249e5fe73437e2a444e0e25c0be9f8479f7c442134ca7ed663d8fef63ef7f985d43aeb05d62e33706fe29f42
|
7
|
+
data.tar.gz: 3be018bbc1b8e64cae32bd810161237f50187a1f3e430489968ad865b771450b150ea28b59e3aea841a3c92d31b5f30bebd28c9e8b25ec8c4acf1de5a26565ae
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -146,6 +146,6 @@ wrk -t 4 -c 100 -d 30s --timeout 2000 http://127.0.0.1:9292/?src=<list_of_ingred
|
|
146
146
|
| exact matching | aqua,parfum,zeolite | 48863.58 | 0.31/0.55/10.82 |
|
147
147
|
|
148
148
|
## Ruby 2.4
|
149
|
-
After upgrading to Ruby 2.4 i doubled the throughput of the matcher: i assume Ruby optimization to the [Hash access](
|
149
|
+
After upgrading to Ruby 2.4 i doubled the throughput of the matcher (24008.11 vs 48863.58 req/s): i assume Ruby optimization to the [Hash access](https://blog.heroku.com/ruby-2-4-features-hashes-integers-rounding) is the driving reason.
|
150
150
|
I also adopted the new #match? method to avoid creating a MatchData object when i am just checking for predicate.
|
151
|
-
In the end Ruby upgrade is a big deal for my gem
|
151
|
+
In the end Ruby upgrade is a big deal for my gem and i recommend to give it a try!
|
data/inci_score.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.executables << "inci_score"
|
15
15
|
s.require_paths = ["lib"]
|
16
16
|
s.license = "MIT"
|
17
|
-
s.required_ruby_version = ">= 2.
|
17
|
+
s.required_ruby_version = ">= 2.2.2"
|
18
18
|
|
19
19
|
s.add_runtime_dependency "nokogiri", "~> 1.6"
|
20
20
|
s.add_runtime_dependency "puma", "~> 3"
|
@@ -1,6 +1,7 @@
|
|
1
|
-
require 'inci_score/
|
1
|
+
require 'inci_score/refinements'
|
2
2
|
|
3
3
|
module InciScore
|
4
|
+
using Refinements
|
4
5
|
class Recognizer
|
5
6
|
module Rules
|
6
7
|
class Base
|
@@ -47,7 +48,7 @@ module InciScore
|
|
47
48
|
return if @src.size < TOLERANCE
|
48
49
|
digits = @src[0, MIN_MEANINGFUL]
|
49
50
|
@catalog.detect do |component, _|
|
50
|
-
component.
|
51
|
+
component.matches?(/^#{Regexp::escape(digits)}/)
|
51
52
|
end.to_a.first
|
52
53
|
end
|
53
54
|
end
|
@@ -58,7 +59,7 @@ module InciScore
|
|
58
59
|
def call
|
59
60
|
tokens.each do |token|
|
60
61
|
@catalog.each do |component, _|
|
61
|
-
return component if component.
|
62
|
+
return component if component.matches?(/\b#{Regexp.escape(token)}\b/)
|
62
63
|
end
|
63
64
|
end
|
64
65
|
nil
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'inci_score/levenshtein'
|
2
|
+
|
3
|
+
module InciScore
|
4
|
+
module Refinements
|
5
|
+
refine(String) do
|
6
|
+
def distance_utf8(t)
|
7
|
+
InciScore::Levenshtein.new(self, t).call
|
8
|
+
end
|
9
|
+
|
10
|
+
def distance(t)
|
11
|
+
InciScore::LevenshteinC.new.call(self.downcase, self.size, t.downcase, t.size)
|
12
|
+
end
|
13
|
+
|
14
|
+
def matches?(re)
|
15
|
+
return match?(re) if defined?("".match?)
|
16
|
+
match(re)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/inci_score/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inci_score
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- costajob
|
@@ -153,6 +153,7 @@ files:
|
|
153
153
|
- lib/inci_score/normalizer_rules.rb
|
154
154
|
- lib/inci_score/recognizer.rb
|
155
155
|
- lib/inci_score/recognizer_rules.rb
|
156
|
+
- lib/inci_score/refinements.rb
|
156
157
|
- lib/inci_score/response.rb
|
157
158
|
- lib/inci_score/score.rb
|
158
159
|
- lib/inci_score/scorer.rb
|
@@ -170,7 +171,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
170
171
|
requirements:
|
171
172
|
- - ">="
|
172
173
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
174
|
+
version: 2.2.2
|
174
175
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
176
|
requirements:
|
176
177
|
- - ">="
|