food_ingredient_parser 1.1.0 → 1.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 629792af43b06c646b98c2ab8ee136895123e3e5
4
- data.tar.gz: 6abbe88e79943cedb8b8776146aab6fdffd427e1
3
+ metadata.gz: 41da81db767bedd583db2794f44d39d710ddef58
4
+ data.tar.gz: 9bc24f8e83d04fb608e8fba4364aa26117fd898b
5
5
  SHA512:
6
- metadata.gz: c1728c6edc995f6a5a18b82eae0e217fa18814c75f1b34d33d52abc4f593428020ba6a425ea526519036a5d4a412a80b43aae55147b2a07bae0e0979394b26bd
7
- data.tar.gz: a9f43ad8e20ab867293e1db59aeb5b7bd6147a6e560adb58159f345d441c6445be453b7eb4ba01bdd4169ae951444e4bf90a6e7873cf85cfa7557b4ac4859d36
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 is_sep?(chars: ".") # dot means new note
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
- Node.new(@s, i .. j) if j >= i
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
 
@@ -1,4 +1,4 @@
1
1
  module FoodIngredientParser
2
- VERSION = '1.1.0'
3
- VERSION_DATE = '2018-09-24'
2
+ VERSION = '1.1.1'
3
+ VERSION_DATE = '2018-09-25'
4
4
  end
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.0
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-24 00:00:00.000000000 Z
11
+ date: 2018-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop