inci_score 2.0.1 → 2.0.2

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: 5970cfdecac8492dbfd510dce7a24488e543233c
4
- data.tar.gz: fb5b1171f1fcab479e24b33dc7d7f37582b93741
3
+ metadata.gz: 64259796b3d4a9d134999b66cdbd9bf869340ee5
4
+ data.tar.gz: ab5a536ebc4841ab86d3f3a3e5d70a88c146b81b
5
5
  SHA512:
6
- metadata.gz: 42624a99c66bc3fcfb53cff14ebe6a153b220901df9b9e5f49f3d8ec2c9378436cd7090446bb449fefc7320c8ff61fdd5375b551b015312858fac8b8bfa8b66c
7
- data.tar.gz: 2f6bcc48dd8727a6b2b9665882cd3a809b849a7876a7a5303b7a8c3438c373fb3e25c28545889f70fcc14aa1724ea5febfbb5a78a555456ec99e44b5ca9de329
6
+ metadata.gz: a03e0a913ab6c41350a2305de482801abafa191a249e5fe73437e2a444e0e25c0be9f8479f7c442134ca7ed663d8fef63ef7f985d43aeb05d62e33706fe29f42
7
+ data.tar.gz: 3be018bbc1b8e64cae32bd810161237f50187a1f3e430489968ad865b771450b150ea28b59e3aea841a3c92d31b5f30bebd28c9e8b25ec8c4acf1de5a26565ae
data/.travis.yml CHANGED
@@ -1,4 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 2.2.2
4
+ - 2.3.0
3
5
  - 2.4.0
4
6
  before_install: gem install bundler -v 1.11.2
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](#https://blog.heroku.com/ruby-2-4-features-hashes-integers-rounding) is the driving reason.
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, give it a try!
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.4"
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"
@@ -44,12 +44,3 @@ module InciScore
44
44
  end
45
45
  end
46
46
 
47
- String::class_eval do
48
- def distance_utf8(t)
49
- InciScore::Levenshtein.new(self, t).call
50
- end
51
-
52
- def distance(t)
53
- InciScore::LevenshteinC.new.call(self.downcase, self.size, t.downcase, t.size)
54
- end
55
- end
@@ -1,6 +1,7 @@
1
- require 'inci_score/levenshtein'
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.match?(/^#{Regexp::escape(digits)}/)
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.match?(/\b#{Regexp.escape(token)}\b/)
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
@@ -1,3 +1,3 @@
1
1
  module InciScore
2
- VERSION = "2.0.1"
2
+ VERSION = "2.0.2"
3
3
  end
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.1
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: '2.4'
174
+ version: 2.2.2
174
175
  required_rubygems_version: !ruby/object:Gem::Requirement
175
176
  requirements:
176
177
  - - ">="