inci_score 2.5.1 → 3.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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