food_ingredient_parser 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/food_ingredient_parser/loose/scanner.rb +11 -3
- data/lib/food_ingredient_parser/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41da81db767bedd583db2794f44d39d710ddef58
|
4
|
+
data.tar.gz: 9bc24f8e83d04fb608e8fba4364aa26117fd898b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7634ebb4a8f3530cab515c5b27d2782df8c2521eb79df67ecbe08945360bcc27d68456d389d69a83808792145ecfb7094b3b97b5c33cbb17119642449813df88
|
7
|
+
data.tar.gz: 3b5c5ed78b7c4e41211855523acaf2a4c519b0e021a32eb698a715f7dccf2beacde229593d8422b71ce7a5a55dc1e266347d263c6629a72cdb308556697f7d93
|
@@ -6,7 +6,7 @@ module FoodIngredientParser::Loose
|
|
6
6
|
SEP_CHARS = "|;,.".freeze
|
7
7
|
MARK_CHARS = "¹²³⁴⁵ᵃᵇᶜᵈᵉᶠᵍªº⁽⁾†‡•°#^*".freeze
|
8
8
|
PREFIX_RE = /\A\s*(ingredients|contains|ingred[iï][eë]nt(en)?(declaratie)?|bevat|dit zit er\s?in|samenstelling|zutaten)\b\s*[:;.]?\s*/i.freeze
|
9
|
-
NOTE_RE = /\A\b(dit product kan\b|deze verpakking kan\b|kan sporen\b.*?\bbevatten\b|voor allergenen\b|allergenen\b|E\s*=|gemaakt in\b|geproduceerd in\b|bevat mogelijk\b|kijk voor meer\b|allergie-info|in de fabriek\b|in dit bedrijf\b)/i.freeze
|
9
|
+
NOTE_RE = /\A\b(dit product kan\b|deze verpakking kan\b|kan sporen\b.*?\bbevatten\b|voor allergenen\b|allergenen\b|E\s*=|gemaakt in\b|geproduceerd in\b|bevat mogelijk\b|kijk voor meer\b|allergie-info|in de fabriek\b|in dit bedrijf\b|voor [0-9,.]+ (g\.?|gr\.?|ram|ml).*\bis [0-9,.]+ (g\.?|gr\.?|ram|ml).*\bgebruikt\b)/i.freeze
|
10
10
|
# Keep in sync with +abbrev+ in the +Common+ grammar, plus relevant ones from the +Amount+ grammar.
|
11
11
|
ABBREV_RE = Regexp.union(/\A(N°|°C|(ijzer|chroom|koper)\s*\(I+\)\s*[[:alnum:]]+)\b/i, *%w[
|
12
12
|
a.o.p b.g.a b.o.b c.a c.i d.e d.m.v d.o.c d.o.p d.s e.a e.g e.u f.i.l f.o.s i.a
|
@@ -107,7 +107,10 @@ module FoodIngredientParser::Loose
|
|
107
107
|
end
|
108
108
|
|
109
109
|
def scan_iteration_notes
|
110
|
-
if
|
110
|
+
if (len = abbrev_len) > 0 # defer iterations until after any abbreviation
|
111
|
+
cur # reference to record starting position
|
112
|
+
@i += len - 1
|
113
|
+
elsif is_sep?(chars: ".") # dot means new note
|
111
114
|
add_child
|
112
115
|
else
|
113
116
|
cur
|
@@ -197,7 +200,12 @@ module FoodIngredientParser::Loose
|
|
197
200
|
cur.name ||= begin
|
198
201
|
i, j = cur.interval.first, @i - 1
|
199
202
|
i += mark_len(i) # skip any mark in front
|
200
|
-
|
203
|
+
# Set name if there is any. There is one corner-case that needs to be avoided when
|
204
|
+
# a nesting was opened without a name, which would set the name to the nesting text.
|
205
|
+
# In this case, the name starts with an open-nesting symbol, which should never happen.
|
206
|
+
if j >= i && !"([:".include?(@s[i])
|
207
|
+
Node.new(@s, i .. j)
|
208
|
+
end
|
201
209
|
end
|
202
210
|
end
|
203
211
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: food_ingredient_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wvengen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: treetop
|