openfoodfacts 0.0.1 → 0.0.2

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: 5d8fc23706858294a3b68571f7305f68a5feaf83
4
- data.tar.gz: 28bb3a20dbf307dac3dbc21797798231b1de22a8
3
+ metadata.gz: 0a5db0450c605034b7a96588b749f92a6b14eabd
4
+ data.tar.gz: 242e45ad4c401cf145af4984d9846dbe13284d7f
5
5
  SHA512:
6
- metadata.gz: d15276c9a7f056ee2398e5ead4fb390ec3b917b0213c47b7f5639e86caaf8d34c24ee7f7283d19b670b53fb7a8c02f4e82e06557cee2e94a0ab442b4e8964980
7
- data.tar.gz: 977af286e66baf52286ca260805cdea39674eb1f7dc5906199f26b96c4bdfc893fc410a126812e49b9969f02a4c758a92a038e1b6e90c92da960bb720d0c97d3
6
+ metadata.gz: 489b5122285777084af53f6945977fe4d5380789540b8e149ff582938afa3a819b4166e6833296d9eaa74a090945ad6ded3bbc2e10a3352fcc9f1762b4180e31
7
+ data.tar.gz: 877e43d12c2fa5eb2d5eeda20e00aff268f0fc74c7897bd38e5368b2d3d7b3c77d138117ecdd60cdcbc7a9a1a34eb3bdbc74943f7976143f57b8f97acd9bd0dd
data/README.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # OpenFoodFacts
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/openfoodfacts.svg)](http://badge.fury.io/rb/openfoodfacts)
4
+ [![Build Status](https://travis-ci.org/nicolasleger/openfoodfacts-ruby.svg)](https://travis-ci.org/nicolasleger/openfoodfacts-ruby)
5
+ [![Dependency Status](https://gemnasium.com/nicolasleger/openfoodfacts-ruby.svg)](https://gemnasium.com/nicolasleger/openfoodfacts-ruby)
6
+ [![Code Climate](https://codeclimate.com/github/nicolasleger/openfoodfacts-ruby/badges/gpa.svg)](https://codeclimate.com/github/nicolasleger/openfoodfacts-ruby)
7
+ [![Coverage Status](https://coveralls.io/repos/nicolasleger/openfoodfacts-ruby/badge.svg)](https://coveralls.io/r/nicolasleger/openfoodfacts-ruby)
8
+
3
9
  API Wrapper for [OpenFoodFacts](https://openfoodfacts.org/), the open database about food.
4
10
 
5
11
  ## Installation
@@ -27,7 +33,13 @@ barcode = "3029330003533"
27
33
  product = Openfoodfacts.product(barcode)
28
34
 
29
35
  product.product_name
30
- product.nutriments
36
+ # => "Crousti Moelleux Complet"
37
+
38
+ product.nutriments.to_hash
39
+ # => {"sodium"=>"0.44", "sugars"=>6.5, "fat_unit"=>"g", "carbohydrates_unit"=>"g", "proteins_unit"=>"g", "nutrition-score-fr_100g"=>-2, "fat"=>2.5, "proteins_serving"=>12.8, "sodium_serving"=>0.535, "salt"=>1.1176, "proteins"=>10.5, "nutrition-score-uk_serving"=>-2, "nutrition-score-fr"=>-2, "fat_serving"=>3.04, "sugars_unit"=>"g", "sugars_100g"=>"6.5", "sodium_unit"=>"g", "saturated-fat_unit"=>"g", "saturated-fat_serving"=>0.608, "sodium_100g"=>0.44, "fiber_unit"=>"g", "energy"=>1067, "energy_unit"=>"kJ", "sugars_serving"=>7.9, "carbohydrates_100g"=>44, "nutrition-score-uk"=>-2, "proteins_100g"=>10.5, "fiber_serving"=>7.29, "carbohydrates_serving"=>53.5, "nutrition-score-fr_serving"=>-2, "energy_serving"=>1300, "fat_100g"=>"2.5", "saturated-fat_100g"=>"0.5", "nutrition-score-uk_100g"=>-2, "fiber"=>6, "salt_serving"=>1.36, "salt_100g"=>"1.1176", "carbohydrates"=>44, "fiber_100g"=>6, "energy_100g"=>1067, "saturated-fat"=>0.5}
40
+
41
+ Openfoodfacts.locales
42
+ # => ["ad", "ad-es", "ad-fr", "ad-pt", "ae", "al", "am", "ar", "at", "au", "ax", "az", "bd", "be", "be-de", "be-fr", "bf", "bg", "bi", "bi-rn", "bn", "br", "by", "by-be", "bz", "ca", "ca-fr", "cg", "ch", "ch-fr", "ch-it", "ci", "cl", "cn", "co", "cr", "cu", "cy", "cy-tr", "cz", "de", "dk", "do", "dz", "dz-fr", "ec", "eg", "es", "es-ca", "es-eu", "es-gl", "fi", "fi-sv", "fr", "ga", "gf", "gn", "gp", "gr", "hk", "hr", "hu", "id", "ie", "ie-ga", "il", "il-ar", "il-ru", "in", "iq", "iq-ku", "ir", "is", "it", "jp", "ke", "ke-sw", "kh", "kr", "kw", "kz", "kz-kk", "lb", "lk", "lk-ta", "lu", "lu-de", "lu-lb", "lv", "ma", "ma-es", "ma-fr", "mc", "md", "mf", "ml", "mn", "mo", "mo-zh", "mq", "mr", "mt", "mt-mt", "mu", "mx", "my", "nc", "nl", "no", "nz", "nz-mi", "pa", "pe", "pf", "ph", "ph-tl", "pl", "pm", "pt", "qa", "re", "ro", "rs", "ru", "sa", "se", "sg", "sg-ms", "sg-ta", "sg-zh", "si", "sk", "sn", "sy", "th", "tn", "tr", "tw", "tz", "tz-sw", "ua", "uk", "us", "ve", "vn", "vu", "vu-bi", "world", "ye", "yt", "za", "za-af", "za-nr", "za-ss", "za-st", "za-tn", "za-ts", "za-ve", "za-xh", "za-zu"]
31
43
  ```
32
44
 
33
45
  ## Development
data/lib/openfoodfacts.rb CHANGED
@@ -2,6 +2,7 @@ require_relative 'openfoodfacts/product'
2
2
  require_relative 'openfoodfacts/version'
3
3
 
4
4
  require 'json'
5
+ require 'nokogiri'
5
6
  require 'open-uri'
6
7
 
7
8
  module Openfoodfacts
@@ -9,6 +10,18 @@ module Openfoodfacts
9
10
 
10
11
  class << self
11
12
 
13
+ # Get locales
14
+ #
15
+ def locales
16
+ url = "http://openfoodfacts.org/"
17
+ body = open(url).read
18
+ dom = Nokogiri.parse(body)
19
+
20
+ dom.css('ul li a').map { |locale_link|
21
+ locale_link.attr('href')[/^https?:\/\/([^.]+)\./i,1]
22
+ }.uniq.sort
23
+ end
24
+
12
25
  # Get product
13
26
  #
14
27
  def product(barcode, locale: DEFAULT_LOCALE)
@@ -1,3 +1,3 @@
1
1
  module Openfoodfacts
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -5,7 +5,16 @@ class TestOpenfoodfacts < Minitest::Test
5
5
  refute_nil ::Openfoodfacts::VERSION
6
6
  end
7
7
 
8
- def test_it_fetch_product
8
+ def test_it_fetches_product
9
+ VCR.use_cassette("index") do
10
+ locales = ::Openfoodfacts::locales
11
+ assert_includes locales, "world"
12
+ assert_includes locales, "fr"
13
+ assert_includes locales, "be-fr"
14
+ end
15
+ end
16
+
17
+ def test_it_fetches_product
9
18
  product_code = "3029330003533"
10
19
  VCR.use_cassette("product_#{product_code}") do
11
20
  assert_equal ::Openfoodfacts.product(product_code).code, product_code
metadata CHANGED
@@ -1,99 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openfoodfacts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicolas Leger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-02-22 00:00:00.000000000 Z
11
+ date: 2015-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.6.6
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 1.6.6
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ~>
32
46
  - !ruby/object:Gem::Version
33
47
  version: '1.8'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ~>
39
53
  - !ruby/object:Gem::Version
40
54
  version: '1.8'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ~>
46
60
  - !ruby/object:Gem::Version
47
61
  version: '10.0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ~>
53
67
  - !ruby/object:Gem::Version
54
68
  version: '10.0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: minitest
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
73
+ - - ~>
60
74
  - !ruby/object:Gem::Version
61
- version: '0'
75
+ version: '5.5'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - "~>"
80
+ - - ~>
67
81
  - !ruby/object:Gem::Version
68
- version: '0'
82
+ version: '5.5'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: vcr
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - ~>
74
88
  - !ruby/object:Gem::Version
75
- version: '0'
89
+ version: '2.9'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - ~>
81
95
  - !ruby/object:Gem::Version
82
- version: '0'
96
+ version: '2.9'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: webmock
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - "~>"
101
+ - - ~>
88
102
  - !ruby/object:Gem::Version
89
- version: '0'
103
+ version: '1.20'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - "~>"
108
+ - - ~>
95
109
  - !ruby/object:Gem::Version
96
- version: '0'
110
+ version: '1.20'
97
111
  description: OpenFoodFacts API Wrapper, the open database about food.
98
112
  email:
99
113
  - nicolas.leger@nleger.com
@@ -101,15 +115,15 @@ executables: []
101
115
  extensions: []
102
116
  extra_rdoc_files: []
103
117
  files:
104
- - LICENSE.txt
105
- - README.md
106
118
  - Rakefile
107
- - lib/openfoodfacts.rb
108
119
  - lib/openfoodfacts/product.rb
109
120
  - lib/openfoodfacts/version.rb
121
+ - lib/openfoodfacts.rb
110
122
  - test/fixtures/product_3029330003533.yml
111
123
  - test/minitest_helper.rb
112
124
  - test/test_openfoodfacts.rb
125
+ - README.md
126
+ - LICENSE.txt
113
127
  homepage: https://github.com/nicolasleger/openfoodfacts-ruby
114
128
  licenses:
115
129
  - MIT
@@ -120,19 +134,18 @@ require_paths:
120
134
  - lib
121
135
  required_ruby_version: !ruby/object:Gem::Requirement
122
136
  requirements:
123
- - - "~>"
137
+ - - '>='
124
138
  - !ruby/object:Gem::Version
125
139
  version: '2.0'
126
140
  required_rubygems_version: !ruby/object:Gem::Requirement
127
141
  requirements:
128
- - - ">="
142
+ - - '>='
129
143
  - !ruby/object:Gem::Version
130
144
  version: '0'
131
145
  requirements: []
132
146
  rubyforge_project:
133
- rubygems_version: 2.4.5
147
+ rubygems_version: 2.0.14
134
148
  signing_key:
135
149
  specification_version: 4
136
150
  summary: OpenFoodFacts API Wrapper
137
151
  test_files: []
138
- has_rdoc: