openfoodfacts 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: