inci_score 2.5.1 → 3.0.3
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/Gemfile.lock +34 -0
- data/README.md +14 -25
- data/config/catalog.yml +3 -4
- data/config.ru +2 -2
- data/inci_score.gemspec +2 -3
- data/lib/inci_score/{app.rb → api.rb} +1 -1
- data/lib/inci_score/cli.rb +4 -14
- data/lib/inci_score/computer.rb +15 -6
- data/lib/inci_score/ingredient.rb +45 -0
- data/lib/inci_score/normalizer.rb +1 -1
- data/lib/inci_score/normalizer_rules.rb +0 -24
- data/lib/inci_score/recognizer.rb +25 -7
- data/lib/inci_score/recognizer_rules.rb +19 -22
- data/lib/inci_score/refinements.rb +1 -1
- data/lib/inci_score/response.rb +1 -1
- data/lib/inci_score/score.rb +1 -3
- data/lib/inci_score/scorer.rb +7 -9
- data/lib/inci_score/version.rb +1 -1
- data/lib/inci_score.rb +4 -5
- data/spec/bench/levenshtein_bench.rb +17 -0
- data/spec/bench/normalizer_rules_bench.rb +40 -0
- data/spec/bench/recognizer_rules_bench.rb +24 -0
- data/spec/helper.rb +6 -0
- data/spec/integration/api_spec.rb +23 -0
- data/spec/stubs.rb +170 -0
- data/spec/unit/catalog_spec.rb +7 -0
- data/spec/unit/cli_spec.rb +29 -0
- data/spec/unit/computer_spec.rb +31 -0
- data/spec/unit/ingredient_spec.rb +34 -0
- data/spec/unit/levenshtein_spec.rb +19 -0
- data/spec/unit/normalizer_rules_spec.rb +58 -0
- data/spec/unit/normalizer_spec.rb +31 -0
- data/spec/unit/recognizer_rules_spec.rb +46 -0
- data/spec/unit/recognizer_spec.rb +49 -0
- data/spec/unit/response_spec.rb +8 -0
- data/spec/unit/score_spec.rb +12 -0
- data/spec/unit/scorer_spec.rb +11 -0
- data/spec/unit/server_spec.rb +30 -0
- metadata +24 -23
- data/.gitignore +0 -13
- data/.travis.yml +0 -6
- data/bin/console +0 -7
- data/bin/setup +0 -6
- data/lib/inci_score/fetcher.rb +0 -41
- data/log/.gitignore +0 -4
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inci_score
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- costajob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: nokogiri
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.6'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.6'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: puma
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,24 +116,21 @@ executables:
|
|
130
116
|
extensions: []
|
131
117
|
extra_rdoc_files: []
|
132
118
|
files:
|
133
|
-
- ".gitignore"
|
134
|
-
- ".travis.yml"
|
135
119
|
- Gemfile
|
120
|
+
- Gemfile.lock
|
136
121
|
- README.md
|
137
122
|
- Rakefile
|
138
|
-
- bin/console
|
139
123
|
- bin/inci_score
|
140
|
-
- bin/setup
|
141
124
|
- config.ru
|
142
125
|
- config/catalog.yml
|
143
126
|
- ext/levenshtein.c
|
144
127
|
- inci_score.gemspec
|
145
128
|
- lib/inci_score.rb
|
146
|
-
- lib/inci_score/
|
129
|
+
- lib/inci_score/api.rb
|
147
130
|
- lib/inci_score/catalog.rb
|
148
131
|
- lib/inci_score/cli.rb
|
149
132
|
- lib/inci_score/computer.rb
|
150
|
-
- lib/inci_score/
|
133
|
+
- lib/inci_score/ingredient.rb
|
151
134
|
- lib/inci_score/levenshtein.rb
|
152
135
|
- lib/inci_score/normalizer.rb
|
153
136
|
- lib/inci_score/normalizer_rules.rb
|
@@ -159,7 +142,25 @@ files:
|
|
159
142
|
- lib/inci_score/scorer.rb
|
160
143
|
- lib/inci_score/server.rb
|
161
144
|
- lib/inci_score/version.rb
|
162
|
-
-
|
145
|
+
- spec/bench/levenshtein_bench.rb
|
146
|
+
- spec/bench/normalizer_rules_bench.rb
|
147
|
+
- spec/bench/recognizer_rules_bench.rb
|
148
|
+
- spec/helper.rb
|
149
|
+
- spec/integration/api_spec.rb
|
150
|
+
- spec/stubs.rb
|
151
|
+
- spec/unit/catalog_spec.rb
|
152
|
+
- spec/unit/cli_spec.rb
|
153
|
+
- spec/unit/computer_spec.rb
|
154
|
+
- spec/unit/ingredient_spec.rb
|
155
|
+
- spec/unit/levenshtein_spec.rb
|
156
|
+
- spec/unit/normalizer_rules_spec.rb
|
157
|
+
- spec/unit/normalizer_spec.rb
|
158
|
+
- spec/unit/recognizer_rules_spec.rb
|
159
|
+
- spec/unit/recognizer_spec.rb
|
160
|
+
- spec/unit/response_spec.rb
|
161
|
+
- spec/unit/score_spec.rb
|
162
|
+
- spec/unit/scorer_spec.rb
|
163
|
+
- spec/unit/server_spec.rb
|
163
164
|
homepage: https://github.com/costajob/inci_score.git
|
164
165
|
licenses:
|
165
166
|
- MIT
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/bin/console
DELETED
data/bin/setup
DELETED
data/lib/inci_score/fetcher.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require "nokogiri"
|
2
|
-
|
3
|
-
module InciScore
|
4
|
-
class Fetcher
|
5
|
-
BIODIZIO_URI = "http://www.biodizionario.it/biodizio.php"
|
6
|
-
SEMAPHORES = %w[vv v g r rr]
|
7
|
-
CSS_QUERY = %q{table[width="751"] > tr > td img}
|
8
|
-
|
9
|
-
def initialize(src = nil)
|
10
|
-
@src = src || Thread.new { open(BIODIZIO_URI) }
|
11
|
-
end
|
12
|
-
|
13
|
-
def call
|
14
|
-
@components ||= Nokogiri::HTML(doc).css(CSS_QUERY).inject({}) do |acc, img|
|
15
|
-
hazard = semaphore(img.attr("src"))
|
16
|
-
name = img.next_sibling.next_sibling
|
17
|
-
desc = name.next_sibling.next_sibling
|
18
|
-
name, desc = desc, name if swap?(desc.text)
|
19
|
-
acc[normalize(name)] = SEMAPHORES.index(hazard)
|
20
|
-
acc
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
private def doc
|
25
|
-
@src.respond_to?(:value) ? @src.value : @src
|
26
|
-
end
|
27
|
-
|
28
|
-
private def semaphore(src)
|
29
|
-
src.match(/(#{SEMAPHORES.join("|")}).gif$/)[1]
|
30
|
-
end
|
31
|
-
|
32
|
-
private def normalize(node)
|
33
|
-
node.text.strip.downcase
|
34
|
-
end
|
35
|
-
|
36
|
-
private def swap?(desc)
|
37
|
-
return false if desc.empty?
|
38
|
-
desc == desc.upcase
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
data/log/.gitignore
DELETED