food_ingredient_parser 1.0.0.pre.4 → 1.0.0.pre.5

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: b180a987ae477627cd2046f967d54eeb160fc7ab
4
- data.tar.gz: '0981287cb5348c58a5fc2e0fda39c470a0b10746'
3
+ metadata.gz: 8725e4ed3763020de6b46cad6709ce05aca0b77f
4
+ data.tar.gz: fedb82af99346e8db38a3beaca5914ab44be197a
5
5
  SHA512:
6
- metadata.gz: e11033d79eff439544d71c789981361c98192d767687148cca73e02308f288aac474b84f8ffe1b2a08901df481e4a7c03c162bbcc8ed6f5c030b48f12e4ebb61
7
- data.tar.gz: a44018d0bc1c77d7907e5fa31cf5fe7e919c2e20bf5480b07bbd0de33ff2e6aec4a2a7981b8a22906c574f9140bede380cc87a7917fc84a0f6685190d26925c7
6
+ metadata.gz: 114feb403f87140f2eccc21860c9a75aff4cff3583f3046f9815299f90dc6374c73b3b9ee60d682c3a9f91b2803ab3fc6c934f3255716986a494fbb51c9e5564
7
+ data.tar.gz: 8f94825d627ab8068fb3dfd6c20f61a20fc8612f06ec6a760d33e46def103ca11497e364d9e3a7c4720647794e644a7253ba6e226d984801a55e089a5961b753
data/README.md CHANGED
@@ -124,11 +124,19 @@ puts parsed.to_html
124
124
  ```
125
125
 
126
126
  ```html
127
- <span class='name'>Saus</span> (<span class='amount'>10%</span>
128
- <span class='name'>tomaat</span><span class='mark'>*</span>,
129
- <span class='name'>zout</span>). <span class='note'>* = bio</span>
127
+ <span class='depth0'>
128
+ <span class='name'>Saus</span> (
129
+ <span class='contains depth1'>
130
+ <span class='amount'>10%</span> <span class='name'>tomaat</span><span class='mark'>*</span>,
131
+ <span class='name'>zout</span>
132
+ </span>)
133
+ </span>.
134
+ <span class='note'>* = bio</span>
130
135
  ```
131
136
 
137
+ For an example of an interactive editor, see [examples/editor.rb](examples/editor.rb).
138
+
139
+ ![editor example screenshot](examples/editor-screenshot.png)
132
140
 
133
141
  ## Test data
134
142
 
@@ -136,4 +144,3 @@ puts parsed.to_html
136
144
  real-world ingredient lists found on the Dutch market. Each line contains one ingredient
137
145
  list (newlines are encoded as `\n`, empty lines and those starting with `#` are ignored).
138
146
  Currently almost three quarter is recognized and parsed. We aim to reach at least 90%.
139
-
@@ -4,7 +4,7 @@ require 'food_ingredient_parser/version'
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'food_ingredient_parser'
6
6
  s.version = FoodIngredientParser::VERSION
7
- s.date = '2018-09-05'
7
+ s.date = FoodIngredientParser::VERSION_DATE
8
8
  s.summary = 'Parser for ingredient lists found on food products.'
9
9
  s.authors = ['wvengen']
10
10
  s.email = ['dev-ruby@willem.engen.nl']
@@ -18,7 +18,7 @@ module FoodIngredientParser::ToHtml
18
18
 
19
19
  private
20
20
 
21
- def node_to_html(node, cls=nil)
21
+ def node_to_html(node, cls=nil, depth=0)
22
22
  el_cls = {} # map of node instances to class names for contained elements
23
23
  terminal = node.terminal? # whether to look at children elements or not
24
24
 
@@ -30,12 +30,21 @@ module FoodIngredientParser::ToHtml
30
30
  elsif node.is_a?(FoodIngredientParser::Grammar::IngredientNode)
31
31
  el_cls[node.name] = "name" if node.respond_to?(:name)
32
32
  el_cls[node.mark] = "mark" if node.respond_to?(:mark)
33
+ if node.respond_to?(:contains)
34
+ el_cls[node.contains] = "contains depth#{depth}"
35
+ depth += 1
36
+ end
37
+ elsif node.is_a?(FoodIngredientParser::Grammar::RootNode)
38
+ if node.respond_to?(:contains)
39
+ el_cls[node.contains] = "depth#{depth}"
40
+ depth += 1
41
+ end
33
42
  end
34
43
 
35
44
  val = if terminal
36
45
  CGI.escapeHTML(node.text_value)
37
46
  else
38
- node.elements.map {|el| node_to_html(el, el_cls[el]) }.join("")
47
+ node.elements.map {|el| node_to_html(el, el_cls[el], depth) }.join("")
39
48
  end
40
49
 
41
50
  cls ? "<span class='#{cls}'>#{val}</span>" : val
@@ -1,3 +1,4 @@
1
1
  module FoodIngredientParser
2
- VERSION = '1.0.0.pre.4'
2
+ VERSION = '1.0.0.pre.5'
3
+ VERSION_DATE = '2018-09-07'
3
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.0.0.pre.4
4
+ version: 1.0.0.pre.5
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-05 00:00:00.000000000 Z
11
+ date: 2018-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop