inci_score 4.1.1 → 4.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,31 @@
1
+ - peg-
2
+ - ppg-
3
+ - dea-
4
+ - mipa-
5
+ - edta-
6
+ - thicone
7
+ - siloxane
8
+ - chlorexidine
9
+ - petrolatum
10
+ - paraffinum liquidum
11
+ - carbomer
12
+ - crosspolymer
13
+ - acrylate
14
+ - styrene
15
+ - copolymer
16
+ - triethanolamine
17
+ - triclosan
18
+ - dmdm
19
+ - hydantoin
20
+ - imidazolidinyl urea
21
+ - diazolidinyl urea
22
+ - formaldheyde
23
+ - methylchloroisothiazolinone
24
+ - methylisothiazolinone
25
+ - sodium hydroxymethylglycinate
26
+ - nonoxynol
27
+ - poloxamer
28
+ - trimonium
29
+ - dimonium
30
+ - glycol
31
+ - glicol
data/ext/levenshtein.c ADDED
@@ -0,0 +1,43 @@
1
+ static int call(const char* word1, int len1, const char* word2, int len2) {
2
+ int matrix[len1 + 1][len2 + 1];
3
+ int i;
4
+ for (i = 0; i <= len1; i++) {
5
+ matrix[i][0] = i;
6
+ }
7
+ for (i = 0; i <= len2; i++) {
8
+ matrix[0][i] = i;
9
+ }
10
+ for (i = 1; i <= len1; i++) {
11
+ int j;
12
+ char c1;
13
+
14
+ c1 = word1[i-1];
15
+ for (j = 1; j <= len2; j++) {
16
+ char c2;
17
+
18
+ c2 = word2[j-1];
19
+ if (c1 == c2) {
20
+ matrix[i][j] = matrix[i-1][j-1];
21
+ }
22
+ else {
23
+ int delete;
24
+ int insert;
25
+ int substitute;
26
+ int minimum;
27
+
28
+ delete = matrix[i-1][j] + 1;
29
+ insert = matrix[i][j-1] + 1;
30
+ substitute = matrix[i-1][j-1] + 1;
31
+ minimum = delete;
32
+ if (insert < minimum) {
33
+ minimum = insert;
34
+ }
35
+ if (substitute < minimum) {
36
+ minimum = substitute;
37
+ }
38
+ matrix[i][j] = minimum;
39
+ }
40
+ }
41
+ }
42
+ return matrix[len1][len2];
43
+ }
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'optparse'
4
- require 'inci_score/computer'
5
4
 
6
5
  module InciScore
7
6
  class CLI
@@ -18,7 +18,7 @@ module InciScore
18
18
  end
19
19
 
20
20
  def call
21
- Response.new(components: components.map(&:name),
21
+ Response.new(components: components,
22
22
  unrecognized: unrecognized,
23
23
  score: score,
24
24
  valid: valid?,
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'inci_score/normalizer_rules'
4
-
5
3
  module InciScore
6
4
  class Normalizer
7
5
  DEFAULT_RULES = [Rules::Replacer, Rules::Downcaser, Rules::Beheader, Rules::Separator, Rules::Tokenizer, Rules::Sanitizer, Rules::Uniquifier].freeze
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "inci_score/recognizer_rules"
4
-
5
3
  module InciScore
6
4
  class Recognizer
7
5
  DEFAULT_RULES = [Rules::Key, Rules::Levenshtein, Rules::Digits, Rules::Hazard, Rules::Tokens].freeze
@@ -1,9 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'inci_score/refinements'
4
-
5
3
  module InciScore
6
4
  using Refinements
5
+
7
6
  class Recognizer
8
7
  module Rules
9
8
  TOLERANCE = 3
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'inci_score/levenshtein'
4
-
5
3
  module InciScore
6
4
  module Refinements
7
5
  refine(String) do
@@ -16,7 +16,7 @@ module InciScore
16
16
  end
17
17
 
18
18
  def to_json
19
- data = { components: components, unrecognized: unrecognized, score: score, valid: valid, precision: precision }.freeze
19
+ data = { components: components.map(&:to_h), unrecognized: unrecognized, score: score, valid: valid, precision: precision }.freeze
20
20
  Oj.dump(data, mode: :compat)
21
21
  end
22
22
 
@@ -29,9 +29,9 @@ VALID STATE:
29
29
  PRECISION:
30
30
  \t#{precision}
31
31
  COMPONENTS:
32
- #{components.map { |c| "\t#{c}" }.join('\n')}
32
+ \t#{components.map { |c| "#{c.name} (#{c.hazard})" }.join(', ')}
33
33
  UNRECOGNIZED:
34
- #{unrecognized.map { |c| "\t#{c}" }.join('\n')}
34
+ \t#{unrecognized.join(', ')}
35
35
  }
36
36
  end
37
37
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'inci_score/score'
4
-
5
3
  module InciScore
6
4
  class Scorer
7
5
  HAZARD_PERCENT = 25
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module InciScore
4
- VERSION = '4.1.1'
4
+ VERSION = '4.1.4'
5
5
  end
data/lib/inci_score.rb CHANGED
@@ -1,10 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'inci_score/ingredient'
4
+ require 'inci_score/normalizer_rules'
4
5
  require 'inci_score/normalizer'
6
+ require 'inci_score/levenshtein'
7
+ require 'inci_score/refinements'
8
+ require "inci_score/recognizer_rules"
5
9
  require 'inci_score/recognizer'
6
10
  require 'inci_score/response'
11
+ require 'inci_score/score'
7
12
  require 'inci_score/scorer'
8
13
  require 'inci_score/version'
9
14
  require 'inci_score/config'
15
+ require 'inci_score/computer'
10
16
  require 'inci_score/cli'
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: 4.1.1
4
+ version: 4.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - costajob
@@ -98,17 +98,16 @@ description:
98
98
  email:
99
99
  - costajob@gmail.com
100
100
  executables:
101
- - inci_console
102
101
  - inci_score
103
- - setup
104
102
  extensions: []
105
103
  extra_rdoc_files: []
106
104
  files:
107
105
  - LICENSE.txt
108
106
  - README.md
109
- - bin/inci_console
110
107
  - bin/inci_score
111
- - bin/setup
108
+ - config/catalog.yml
109
+ - config/hazards.yml
110
+ - ext/levenshtein.c
112
111
  - lib/inci_score.rb
113
112
  - lib/inci_score/cli.rb
114
113
  - lib/inci_score/computer.rb
data/bin/inci_console DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'bundler/setup'
4
- require 'inci_score'
5
- require 'irb'
6
- require 'irb/completion'
7
-
8
- IRB.start
data/bin/setup DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install