openfoodfacts 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5d8fc23706858294a3b68571f7305f68a5feaf83
4
+ data.tar.gz: 28bb3a20dbf307dac3dbc21797798231b1de22a8
5
+ SHA512:
6
+ metadata.gz: d15276c9a7f056ee2398e5ead4fb390ec3b917b0213c47b7f5639e86caaf8d34c24ee7f7283d19b670b53fb7a8c02f4e82e06557cee2e94a0ab442b4e8964980
7
+ data.tar.gz: 977af286e66baf52286ca260805cdea39674eb1f7dc5906199f26b96c4bdfc893fc410a126812e49b9969f02a4c758a92a038e1b6e90c92da960bb720d0c97d3
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Nicolas Leger
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,45 @@
1
+ # OpenFoodFacts
2
+
3
+ API Wrapper for [OpenFoodFacts](https://openfoodfacts.org/), the open database about food.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'openfoodfacts'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install openfoodfacts
20
+
21
+ ## Usage
22
+
23
+ ```ruby
24
+ require 'openfoodfacts'
25
+
26
+ barcode = "3029330003533"
27
+ product = Openfoodfacts.product(barcode)
28
+
29
+ product.product_name
30
+ product.nutriments
31
+ ```
32
+
33
+ ## Development
34
+
35
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
36
+
37
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
38
+
39
+ ## Contributing
40
+
41
+ 1. Fork it ( https://github.com/nicolasleger/openfoodfacts/fork )
42
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
43
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
44
+ 4. Push to the branch (`git push origin my-new-feature`)
45
+ 5. Create a new Pull Request
@@ -0,0 +1,19 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new do |task|
5
+ task.libs << "lib"
6
+ task.libs << "test"
7
+ task.pattern = "test/test_*.rb"
8
+ end
9
+
10
+ task default: :test
11
+
12
+ desc 'Load gem inside irb console'
13
+ task :console do
14
+ require 'irb'
15
+ require 'irb/completion'
16
+ require File.join(__FILE__, '../lib/openfoodfacts')
17
+ ARGV.clear
18
+ IRB.start
19
+ end
@@ -0,0 +1,29 @@
1
+ require_relative 'openfoodfacts/product'
2
+ require_relative 'openfoodfacts/version'
3
+
4
+ require 'json'
5
+ require 'open-uri'
6
+
7
+ module Openfoodfacts
8
+ DEFAULT_LOCALE = 'en'
9
+
10
+ class << self
11
+
12
+ # Get product
13
+ #
14
+ def product(barcode, locale: DEFAULT_LOCALE)
15
+ url = product_url(barcode, locale: locale)
16
+ json = open(url).read
17
+ hash = JSON.parse(json)
18
+
19
+ Product.new(hash["product"]) if !hash["status"].nil? && hash["status"] == 1
20
+ end
21
+
22
+ # Get product API URL
23
+ #
24
+ def product_url(barcode, locale: DEFAULT_LOCALE)
25
+ "http://#{locale}.openfoodfacts.org/api/v0/produit/#{barcode}.json"
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,5 @@
1
+ require 'hashie'
2
+
3
+ module Openfoodfacts
4
+ class Product < Hashie::Mash; end
5
+ end
@@ -0,0 +1,3 @@
1
+ module Openfoodfacts
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,345 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://en.openfoodfacts.org/api/v0/produit/3029330003533.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Sun, 22 Feb 2015 22:14:22 GMT
23
+ Server:
24
+ - Apache/2.2.20 (Unix) mod_perl/2.0.5 Perl/v5.10.1
25
+ Access-Control-Allow-Origin:
26
+ - "*"
27
+ Content-Type:
28
+ - application/json; charset=UTF-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ body:
32
+ encoding: ASCII-8BIT
33
+ string: !binary |-
34
+ eyJzdGF0dXNfdmVyYm9zZSI6InByb2R1Y3QgZm91bmQiLCJzdGF0dXMiOjEs
35
+ InByb2R1Y3QiOnsibGFiZWxzX2hpZXJhcmNoeSI6W10sIl9pZCI6IjMwMjkz
36
+ MzAwMDM1MzMiLCJjYXRlZ29yaWVzX2hpZXJhcmNoeSI6WyJlbjpwbGFudC1i
37
+ YXNlZC1mb29kcy1hbmQtYmV2ZXJhZ2VzIiwiZW46cGxhbnQtYmFzZWQtZm9v
38
+ ZHMiLCJlbjpjZXJlYWxzLWFuZC1wb3RhdG9lcyIsImVuOmJyZWFkcyIsImZy
39
+ OnBhaW5zLWRlLW1pZSIsImZyOnBhaW5zLWRlLW1pZS1jb21wbGV0Il0sInBu
40
+ bnNfZ3JvdXBzXzEiOiJDZXJlYWxzIGFuZCBwb3RhdG9lcyIsInN0YXRlc190
41
+ YWdzIjpbImVuOnRvLWJlLWNoZWNrZWQiLCJlbjpjb21wbGV0ZSIsImVuOm51
42
+ dHJpdGlvbi1mYWN0cy1jb21wbGV0ZWQiLCJlbjppbmdyZWRpZW50cy1jb21w
43
+ bGV0ZWQiLCJlbjpleHBpcmF0aW9uLWRhdGUtdG8tYmUtY29tcGxldGVkIiwi
44
+ ZW46Y2hhcmFjdGVyaXN0aWNzLWNvbXBsZXRlZCIsImVuOnBob3Rvcy12YWxp
45
+ ZGF0ZWQiLCJlbjpwaG90b3MtdXBsb2FkZWQiXSwiY2hlY2tlcnNfdGFncyI6
46
+ W10sImxhYmVsc190YWdzIjpbXSwiaW1hZ2Vfc21hbGxfdXJsIjoiaHR0cDov
47
+ L3dvcmxkLm9wZW5mb29kZmFjdHMub3JnL2ltYWdlcy9wcm9kdWN0cy8zMDIv
48
+ OTMzLzAwMC8zNTMzL2Zyb250LjkuMjAwLmpwZyIsImNvZGUiOiIzMDI5MzMw
49
+ MDAzNTMzIiwibGFuZyI6ImZyIiwidHJhY2VzX3RhZ3MiOlsibGFpdCIsIm9l
50
+ dWZzIiwic2VzYW1lIiwic29qYSJdLCJwaG90b2dyYXBoZXJzIjpbIm1hbnUx
51
+ NDAwIl0sImdlbmVyaWNfbmFtZSI6IlBhaW4gY29tcGxldCBlbiB0cmFuY2hl
52
+ IiwiaW5ncmVkaWVudHNfdGhhdF9tYXlfYmVfZnJvbV9wYWxtX29pbF90YWdz
53
+ IjpbImU0NzEtbW9uby1ldC1kaWdseWNlcmlkZXMtZC1hY2lkZXMtZ3Jhcy1h
54
+ bGltZW50YWlyZXMiXSwib2xkX2FkZGl0aXZlc190YWdzIjpbImVuOmU1NzUi
55
+ LCJlbjplMjgyIiwiZW46ZTQ3MSIsImVuOmUzMDAiXSwiX2tleXdvcmRzIjpb
56
+ InBhaW4iLCJjcm91c3RpIiwiZnJhbmNlIiwibWllIiwiZW4iLCJkZSIsIm1v
57
+ ZWxsZXV4IiwiamFjcXVldCIsImNvbXBsZXQiLCJ0cmFuY2hlIl0sInJldiI6
58
+ MTcsImVkaXRvcnMiOlsibWFudTE0MDAiLCJhbmRyZSIsInN0ZXBoYW5lIl0s
59
+ ImVtYl9jb2RlcyI6IiIsIm1heF9pbWdpZCI6IjQiLCJhZGRpdGl2ZXNfdGFn
60
+ cyI6WyJlbjplNTc1IiwiZW46ZTI4MiIsImVuOmU0NzEiLCJlbjplMzAwIl0s
61
+ ImVtYl9jb2Rlc19vcmlnIjoiIiwiaW5mb3JtZXJzX3RhZ3MiOlsiYW5kcmUi
62
+ LCJtYW51MTQwMCIsInN0ZXBoYW5lIl0sIm51dHJpZW50X2xldmVsc190YWdz
63
+ IjpbImZhdC1pbi1sb3ctcXVhbnRpdHkiLCJzYXR1cmF0ZWQtZmF0LWluLWxv
64
+ dy1xdWFudGl0eSIsInN1Z2Fycy1pbi1tb2RlcmF0ZS1xdWFudGl0eSIsInNh
65
+ bHQtaW4tbW9kZXJhdGUtcXVhbnRpdHkiXSwiYWRkaXRpdmVzX24iOjQsInBo
66
+ b3RvZ3JhcGhlcnNfdGFncyI6WyJhbmRyZSJdLCJwbm5zX2dyb3Vwc18yX3Rh
67
+ Z3MiOlsiYnJlYWQiXSwidW5rbm93bl9udXRyaWVudHNfdGFncyI6W10sInBh
68
+ Y2thZ2luZ190YWdzIjpbInNhYy1wbGFzdGlxdWUiXSwidW5pcXVlX3NjYW5z
69
+ X24iOjMsIm51dHJpbWVudHMiOnsic29kaXVtIjowLjQ0LCJzdWdhcnMiOjYu
70
+ NSwiZmF0X3VuaXQiOiJnIiwiY2FyYm9oeWRyYXRlc191bml0IjoiZyIsInBy
71
+ b3RlaW5zX3VuaXQiOiJnIiwibnV0cml0aW9uLXNjb3JlLWZyXzEwMGciOi0y
72
+ LCJmYXQiOjIuNSwicHJvdGVpbnNfc2VydmluZyI6MTIuOCwic29kaXVtX3Nl
73
+ cnZpbmciOjAuNTM1LCJwcm90ZWlucyI6MTAuNSwibnV0cml0aW9uLXNjb3Jl
74
+ LWZyIjotMiwiZmF0X3NlcnZpbmciOjMuMDQsInN1Z2Fyc191bml0IjoiZyIs
75
+ InN1Z2Fyc18xMDBnIjoiNi41Iiwic29kaXVtX3VuaXQiOiJnIiwic2F0dXJh
76
+ dGVkLWZhdF91bml0IjoiZyIsInNhdHVyYXRlZC1mYXRfc2VydmluZyI6MC42
77
+ MDgsInNvZGl1bV8xMDBnIjowLjQ0LCJmaWJlcl91bml0IjoiZyIsImVuZXJn
78
+ eSI6MTA2NywiZW5lcmd5X3VuaXQiOiJrSiIsInN1Z2Fyc19zZXJ2aW5nIjo3
79
+ LjksImNhcmJvaHlkcmF0ZXNfMTAwZyI6NDQsIm51dHJpdGlvbi1zY29yZS11
80
+ ayI6LTIsInByb3RlaW5zXzEwMGciOjEwLjUsImZpYmVyX3NlcnZpbmciOjcu
81
+ MjksImNhcmJvaHlkcmF0ZXNfc2VydmluZyI6NTMuNSwiZW5lcmd5X3NlcnZp
82
+ bmciOjEzMDAsImZhdF8xMDBnIjoiMi41Iiwic2F0dXJhdGVkLWZhdF8xMDBn
83
+ IjoiMC41IiwibnV0cml0aW9uLXNjb3JlLXVrXzEwMGciOi0yLCJmaWJlciI6
84
+ Niwic2FsdF8xMDBnIjoiMS4xMTc2IiwiY2FyYm9oeWRyYXRlcyI6NDQsImZp
85
+ YmVyXzEwMGciOjYsImVuZXJneV8xMDBnIjoxMDY3LCJzYXR1cmF0ZWQtZmF0
86
+ IjowLjV9LCJjb3VudHJpZXNfdGFncyI6WyJlbjpmcmFuY2UiXSwiaW5ncmVk
87
+ aWVudHNfZnJvbV9wYWxtX29pbF90YWdzIjpbXSwiYnJhbmRzX3RhZ3MiOlsi
88
+ amFjcXVldCJdLCJlbWJfY29kZXNfdGFncyI6W10sInB1cmNoYXNlX3BsYWNl
89
+ cyI6IiIsInBubnNfZ3JvdXBzXzIiOiJCcmVhZCIsInRyYWNlcyI6ImxhaXQs
90
+ b2V1ZnMsc8Opc2FtZSxzb2phIiwiY291bnRyaWVzX2hpZXJhcmNoeSI6WyJl
91
+ bjpmcmFuY2UiXSwiY2F0ZWdvcmllcyI6IlBhaW4gZGUgbWllIGNvbXBsZXQs
92
+ UGFpbixQYWluIGRlIG1pZSIsImluZ3JlZGllbnRzX3RleHQiOiJQYWluIGRl
93
+ IG1pZSBjb21wbGV0IDogRmFyaW5lIGNvbXBsw6h0ZSBkZSBibMOpICg2MSUp
94
+ LCBlYXUsIGxldnVyZSwgc3VjcmUsIGh1aWxlIGRlIGNvbHphLCBzZWwsIGFy
95
+ w7RtZSwgZGV4dHJvc2UsIGxldmFpbiBkZSBibMOpIGTDqXNoeWRyYXTDqSBl
96
+ dCBkw6l2aXRhbGlzw6ksIGdsdXRlbiBkZSBibMOpLCBDb3JyZWN0ZXVyIGQn
97
+ YWNpZGl0w6k6IEU1NzUsIENvbnNlcnZhdGV1cjogIEUyODIsIGZhcmluZSBk
98
+ ZSBibMOpLCDDqW11bHNpZmlhbnQ6IEU0NzEsIGZpYnJlcyB2w6lnw6l0YWxl
99
+ cyAoYXZvaW5lIGV0L291IHBvaXMgZXQvb3UgbWHDr3MpLCBBZ2VudCBkZSB0
100
+ cmFpdGVtZW50IGRlIGxhIGZhcmluZTogRTMwMC4iLCJwcm9kdWN0X25hbWUi
101
+ OiJDcm91c3RpIE1vZWxsZXV4IENvbXBsZXQiLCJjcmVhdGVkX3QiOjEzMzgw
102
+ NDY5MjUsImluZ3JlZGllbnRzX2Zyb21fb3JfdGhhdF9tYXlfYmVfZnJvbV9w
103
+ YWxtX29pbF9uIjoxLCJjcmVhdG9yIjoiYW5kcmUiLCJub19udXRyaXRpb25f
104
+ ZGF0YSI6bnVsbCwic2VydmluZ19zaXplIjoiMiB0cmFuY2hlcyAxMjEuNWci
105
+ LCJsYXN0X21vZGlmaWVkX2J5Ijoic3RlcGhhbmUiLCJjb21wbGV0ZWRfdCI6
106
+ MTM1MDU2NzUxMywibmV3X2FkZGl0aXZlc19uIjo0LCJvcmlnaW5zIjoiRnJh
107
+ bmNlIiwic3RvcmVzIjoiIiwibnV0cmllbnRfbGV2ZWxzIjp7InNhbHQiOiJt
108
+ b2RlcmF0ZSIsImZhdCI6ImxvdyIsInN1Z2FycyI6Im1vZGVyYXRlIiwic2F0
109
+ dXJhdGVkLWZhdCI6ImxvdyJ9LCJudXRyaXRpb25fZ3JhZGVfZnIiOiJhIiwi
110
+ c3RvcmVzX3RhZ3MiOltdLCJpZCI6IjMwMjkzMzAwMDM1MzMiLCJjb3VudHJp
111
+ ZXMiOiJGcmFuY2UiLCJwdXJjaGFzZV9wbGFjZXNfdGFncyI6W10sImludGVy
112
+ ZmFjZV92ZXJzaW9uX21vZGlmaWVkIjoiMjAxMjA2MjIiLCJmcnVpdHMtdmVn
113
+ ZXRhYmxlcy1udXRzXzEwMGdfZXN0aW1hdGUiOjAsInNvcnRrZXkiOjEzNTA1
114
+ NzYzNjAsImxhc3RfbW9kaWZpZWRfdCI6MTM1MDU3NjM2MCwiY291bnRyaWVz
115
+ LjIwMTMxMjI3IjpudWxsLCJudXRyaXRpb25fc2NvcmVfZGVidWciOiIgLS0g
116
+ ZW5lcmd5IDMgKyBzYXQtZmF0IDAgKyBmci1zYXQtZmF0LWZvci1mYXRzIDAg
117
+ KyBzdWdhcnMgMSArIHNvZGl1bSA0IC0gZnJ1aXRzIDAlIDAgLSBmaWJlciA1
118
+ IC0gcHJvdGVpbnMgNSAtLSBmc2EgLTIgLS0gZnIgLTIiLCJjb3JyZWN0b3Jz
119
+ X3RhZ3MiOlsiYW5kcmUiLCJtYW51MTQwMCJdLCJjb3JyZWN0b3JzIjpbIm1h
120
+ bnUxNDAwIl0sIm5ld19hZGRpdGl2ZXNfZGVidWciOiJsYzogZnIgLSAgWyBw
121
+ YWluLWRlLW1pZS1jb21wbGV0IC0+IGZyOnBhaW4tZGUtbWllLWNvbXBsZXQg
122
+ IF0gIFsgZmFyaW5lLWNvbXBsZXRlLWRlLWJsZSAtPiBmcjpmYXJpbmUtY29t
123
+ cGxldGUtZGUtYmxlICBdICBbIDYxIC0+IGZyOjYxICBdICBbIGVhdSAtPiBm
124
+ cjplYXUgIF0gIFsgbGV2dXJlIC0+IGZyOmxldnVyZSAgXSAgWyBzdWNyZSAt
125
+ PiBmcjpzdWNyZSAgXSAgWyBodWlsZS1kZS1jb2x6YSAtPiBmcjpodWlsZS1k
126
+ ZS1jb2x6YSAgXSAgWyBzZWwgLT4gZnI6c2VsICBdICBbIGFyb21lIC0+IGZy
127
+ OmFyb21lICBdICBbIGRleHRyb3NlIC0+IGZyOmRleHRyb3NlICBdICBbIGxl
128
+ dmFpbi1kZS1ibGUtZGVzaHlkcmF0ZS1ldC1kZXZpdGFsaXNlIC0+IGZyOmxl
129
+ dmFpbi1kZS1ibGUtZGVzaHlkcmF0ZS1ldC1kZXZpdGFsaXNlICBdICBbIGds
130
+ dXRlbi1kZS1ibGUgLT4gZnI6Z2x1dGVuLWRlLWJsZSAgXSAgWyBjb3JyZWN0
131
+ ZXVyIC0+IGZyOmNvcnJlY3RldXIgIF0gIFsgZTU3NSAtPiBlbjplNTc1ICAt
132
+ PiBleGlzdHMgIF0gIFsgZTI4MiAtPiBlbjplMjgyICAtPiBleGlzdHMgIF0g
133
+ IFsgZmFyaW5lLWRlLWJsZSAtPiBmcjpmYXJpbmUtZGUtYmxlICBdICBbIGU0
134
+ NzEgLT4gZW46ZTQ3MSAgLT4gZXhpc3RzICBdICBbIGZpYnJlcy12ZWdldGFs
135
+ ZXMgLT4gZnI6ZmlicmVzLXZlZ2V0YWxlcyAgXSAgWyBhdm9pbmUtZXQtb3Ut
136
+ cG9pcy1ldC1vdS1tYWlzIC0+IGZyOmF2b2luZS1ldC1vdS1wb2lzLWV0LW91
137
+ LW1haXMgIF0gIFsgYWdlbnQgLT4gZnI6YWdlbnQgIF0gIFsgZGUtbGEtZmFy
138
+ aW5lIC0+IGZyOmRlLWxhLWZhcmluZSAgXSAgWyBlMzAwIC0+IGVuOmUzMDAg
139
+ IC0+IGV4aXN0cyAgXSAgWyBsZXZhaW4tZGUtYmxlLWRlc2h5ZHJhdGUgLT4g
140
+ ZnI6bGV2YWluLWRlLWJsZS1kZXNoeWRyYXRlICBdICBbIGRldml0YWxpc2Ug
141
+ LT4gZnI6ZGV2aXRhbGlzZSAgXSAiLCJicmFuZHMiOiJKYWNxdWV0IiwiaW5n
142
+ cmVkaWVudHNfdGFncyI6WyJwYWluLWRlLW1pZS1jb21wbGV0IiwiZWF1Iiwi
143
+ bGV2dXJlIiwic3VjcmUiLCJodWlsZS1kZS1jb2x6YSIsInNlbCIsImFyb21l
144
+ IiwiZGV4dHJvc2UiLCJsZXZhaW4tZGUtYmxlLWRlc2h5ZHJhdGUtZXQtZGV2
145
+ aXRhbGlzZSIsImdsdXRlbi1kZS1ibGUiLCJjb3JyZWN0ZXVyLWQtYWNpZGl0
146
+ ZSIsImU1NzUiLCJjb25zZXJ2YXRldXIiLCJlMjgyIiwiZmFyaW5lLWRlLWJs
147
+ ZSIsImVtdWxzaWZpYW50IiwiZTQ3MSIsImZpYnJlcy12ZWdldGFsZXMiLCJh
148
+ dm9pbmUtZXQtb3UtcG9pcy1ldC1vdS1tYWlzIiwiYWdlbnQtZGUtdHJhaXRl
149
+ bWVudC1kZS1sYS1mYXJpbmUiLCJlMzAwIiwiZmFyaW5lLWNvbXBsZXRlLWRl
150
+ LWJsZSJdLCJuZXdfYWRkaXRpdmVzX3RhZ3MiOlsiZW46ZTU3NSIsImVuOmUy
151
+ ODIiLCJlbjplNDcxIiwiZW46ZTMwMCJdLCJzdGF0ZXMiOiJlbjp0by1iZS1j
152
+ aGVja2VkLCBlbjpjb21wbGV0ZSwgZW46bnV0cml0aW9uLWZhY3RzLWNvbXBs
153
+ ZXRlZCwgZW46aW5ncmVkaWVudHMtY29tcGxldGVkLCBlbjpleHBpcmF0aW9u
154
+ LWRhdGUtdG8tYmUtY29tcGxldGVkLCBlbjpjaGFyYWN0ZXJpc3RpY3MtY29t
155
+ cGxldGVkLCBlbjpwaG90b3MtdmFsaWRhdGVkLCBlbjpwaG90b3MtdXBsb2Fk
156
+ ZWQiLCJpbmZvcm1lcnMiOlsibWFudTE0MDAiLCJzdGVwaGFuZSJdLCJwYWNr
157
+ YWdpbmciOiJzYWMgcGxhc3RpcXVlIiwic2VydmluZ19xdWFudGl0eSI6IjEy
158
+ MS41Iiwib3JpZ2luc190YWdzIjpbImZyYW5jZSJdLCJudXRyaXRpb25fZGF0
159
+ YV9wZXIiOiIxMDBnIiwic2NhbnNfbiI6MjIsImxhYmVscyI6IiIsImNpdGll
160
+ c190YWdzIjpbXSwiZW1iX2NvZGVzXzIwMTQxMDE2IjoiIiwiY2F0ZWdvcmll
161
+ c190YWdzIjpbImVuOnBsYW50LWJhc2VkLWZvb2RzLWFuZC1iZXZlcmFnZXMi
162
+ LCJlbjpwbGFudC1iYXNlZC1mb29kcyIsImVuOmNlcmVhbHMtYW5kLXBvdGF0
163
+ b2VzIiwiZW46YnJlYWRzIiwiZnI6cGFpbnMtZGUtbWllIiwiZnI6cGFpbnMt
164
+ ZGUtbWllLWNvbXBsZXQiXSwicXVhbnRpdHkiOiIxMiBUcmFuY2hlcyIsImV4
165
+ cGlyYXRpb25fZGF0ZSI6IiIsInN0YXRlc19oaWVyYXJjaHkiOlsiZW46dG8t
166
+ YmUtY2hlY2tlZCIsImVuOmNvbXBsZXRlIiwiZW46bnV0cml0aW9uLWZhY3Rz
167
+ LWNvbXBsZXRlZCIsImVuOmluZ3JlZGllbnRzLWNvbXBsZXRlZCIsImVuOmV4
168
+ cGlyYXRpb24tZGF0ZS10by1iZS1jb21wbGV0ZWQiLCJlbjpjaGFyYWN0ZXJp
169
+ c3RpY3MtY29tcGxldGVkIiwiZW46cGhvdG9zLXZhbGlkYXRlZCIsImVuOnBo
170
+ b3Rvcy11cGxvYWRlZCJdLCJpbmdyZWRpZW50c190aGF0X21heV9iZV9mcm9t
171
+ X3BhbG1fb2lsX24iOjEsImVtYl9jb2RlIjoiIiwiaW5ncmVkaWVudHNfZnJv
172
+ bV9wYWxtX29pbF9uIjowLCJpbWFnZV91cmwiOiJodHRwOi8vd29ybGQub3Bl
173
+ bmZvb2RmYWN0cy5vcmcvaW1hZ2VzL3Byb2R1Y3RzLzMwMi85MzMvMDAwLzM1
174
+ MzMvZnJvbnQuOS40MDAuanBnIiwiaW5ncmVkaWVudHMiOlt7InRleHQiOiJQ
175
+ YWluIGRlIG1pZSBjb21wbGV0IiwiaWQiOiJwYWluLWRlLW1pZS1jb21wbGV0
176
+ IiwicmFuayI6MX0seyJ0ZXh0IjoiZWF1IiwiaWQiOiJlYXUiLCJyYW5rIjoy
177
+ fSx7InRleHQiOiJsZXZ1cmUiLCJpZCI6ImxldnVyZSIsInJhbmsiOjN9LHsi
178
+ dGV4dCI6InN1Y3JlIiwiaWQiOiJzdWNyZSIsInJhbmsiOjR9LHsidGV4dCI6
179
+ Imh1aWxlIGRlIGNvbHphIiwiaWQiOiJodWlsZS1kZS1jb2x6YSIsInJhbmsi
180
+ OjV9LHsidGV4dCI6InNlbCIsImlkIjoic2VsIiwicmFuayI6Nn0seyJ0ZXh0
181
+ IjoiYXLDtG1lIiwiaWQiOiJhcm9tZSIsInJhbmsiOjd9LHsidGV4dCI6ImRl
182
+ eHRyb3NlIiwiaWQiOiJkZXh0cm9zZSIsInJhbmsiOjh9LHsidGV4dCI6Imxl
183
+ dmFpbiBkZSBibMOpIGTDqXNoeWRyYXTDqSBldCBkw6l2aXRhbGlzw6kiLCJp
184
+ ZCI6ImxldmFpbi1kZS1ibGUtZGVzaHlkcmF0ZS1ldC1kZXZpdGFsaXNlIiwi
185
+ cmFuayI6OX0seyJ0ZXh0IjoiZ2x1dGVuIGRlIGJsw6kiLCJpZCI6ImdsdXRl
186
+ bi1kZS1ibGUiLCJyYW5rIjoxMH0seyJ0ZXh0IjoiQ29ycmVjdGV1ciBkJ2Fj
187
+ aWRpdMOpIiwiaWQiOiJjb3JyZWN0ZXVyLWQtYWNpZGl0ZSIsInJhbmsiOjEx
188
+ fSx7InRleHQiOiJFNTc1IiwiaWQiOiJlNTc1IiwicmFuayI6MTJ9LHsidGV4
189
+ dCI6IkNvbnNlcnZhdGV1ciIsImlkIjoiY29uc2VydmF0ZXVyIiwicmFuayI6
190
+ MTN9LHsidGV4dCI6IkUyODIiLCJpZCI6ImUyODIiLCJyYW5rIjoxNH0seyJ0
191
+ ZXh0IjoiZmFyaW5lIGRlIGJsw6kiLCJpZCI6ImZhcmluZS1kZS1ibGUiLCJy
192
+ YW5rIjoxNX0seyJ0ZXh0Ijoiw6ltdWxzaWZpYW50IiwiaWQiOiJlbXVsc2lm
193
+ aWFudCIsInJhbmsiOjE2fSx7InRleHQiOiJFNDcxIiwiaWQiOiJlNDcxIiwi
194
+ cmFuayI6MTd9LHsidGV4dCI6ImZpYnJlcyB2w6lnw6l0YWxlcyIsImlkIjoi
195
+ ZmlicmVzLXZlZ2V0YWxlcyIsInJhbmsiOjE4fSx7InRleHQiOiJhdm9pbmUg
196
+ ZXQvb3UgcG9pcyBldC9vdSBtYcOvcyIsImlkIjoiYXZvaW5lLWV0LW91LXBv
197
+ aXMtZXQtb3UtbWFpcyIsInJhbmsiOjE5fSx7InRleHQiOiJBZ2VudCBkZSB0
198
+ cmFpdGVtZW50IGRlIGxhIGZhcmluZSIsImlkIjoiYWdlbnQtZGUtdHJhaXRl
199
+ bWVudC1kZS1sYS1mYXJpbmUiLCJyYW5rIjoyMH0seyJ0ZXh0IjoiRTMwMC4i
200
+ LCJpZCI6ImUzMDAiLCJyYW5rIjoyMX0seyJ0ZXh0IjoiRmFyaW5lIGNvbXBs
201
+ w6h0ZSBkZSBibMOpIiwicGVyY2VudCI6IjYxIiwiaWQiOiJmYXJpbmUtY29t
202
+ cGxldGUtZGUtYmxlIn0seyJ0ZXh0IjoiUGFpbiBkZSBtaWUgY29tcGxldCIs
203
+ ImlkIjoicGFpbi1kZS1taWUtY29tcGxldCIsInJhbmsiOjF9LHsidGV4dCI6
204
+ ImVhdSIsImlkIjoiZWF1IiwicmFuayI6Mn0seyJ0ZXh0IjoibGV2dXJlIiwi
205
+ aWQiOiJsZXZ1cmUiLCJyYW5rIjozfSx7InRleHQiOiJzdWNyZSIsImlkIjoi
206
+ c3VjcmUiLCJyYW5rIjo0fSx7InRleHQiOiJodWlsZSBkZSBjb2x6YSIsImlk
207
+ IjoiaHVpbGUtZGUtY29semEiLCJyYW5rIjo1fSx7InRleHQiOiJzZWwiLCJp
208
+ ZCI6InNlbCIsInJhbmsiOjZ9LHsidGV4dCI6ImFyw7RtZSIsImlkIjoiYXJv
209
+ bWUiLCJyYW5rIjo3fSx7InRleHQiOiJkZXh0cm9zZSIsImlkIjoiZGV4dHJv
210
+ c2UiLCJyYW5rIjo4fSx7InRleHQiOiJsZXZhaW4gZGUgYmzDqSBkw6lzaHlk
211
+ cmF0w6kgZXQgZMOpdml0YWxpc8OpIiwiaWQiOiJsZXZhaW4tZGUtYmxlLWRl
212
+ c2h5ZHJhdGUtZXQtZGV2aXRhbGlzZSIsInJhbmsiOjl9LHsidGV4dCI6Imds
213
+ dXRlbiBkZSBibMOpIiwiaWQiOiJnbHV0ZW4tZGUtYmxlIiwicmFuayI6MTB9
214
+ LHsidGV4dCI6IkNvcnJlY3RldXIgZCdhY2lkaXTDqSIsImlkIjoiY29ycmVj
215
+ dGV1ci1kLWFjaWRpdGUiLCJyYW5rIjoxMX0seyJ0ZXh0IjoiRTU3NSIsImlk
216
+ IjoiZTU3NSIsInJhbmsiOjEyfSx7InRleHQiOiJDb25zZXJ2YXRldXIiLCJp
217
+ ZCI6ImNvbnNlcnZhdGV1ciIsInJhbmsiOjEzfSx7InRleHQiOiJFMjgyIiwi
218
+ aWQiOiJlMjgyIiwicmFuayI6MTR9LHsidGV4dCI6ImZhcmluZSBkZSBibMOp
219
+ IiwiaWQiOiJmYXJpbmUtZGUtYmxlIiwicmFuayI6MTV9LHsidGV4dCI6IsOp
220
+ bXVsc2lmaWFudCIsImlkIjoiZW11bHNpZmlhbnQiLCJyYW5rIjoxNn0seyJ0
221
+ ZXh0IjoiRTQ3MSIsImlkIjoiZTQ3MSIsInJhbmsiOjE3fSx7InRleHQiOiJm
222
+ aWJyZXMgdsOpZ8OpdGFsZXMiLCJpZCI6ImZpYnJlcy12ZWdldGFsZXMiLCJy
223
+ YW5rIjoxOH0seyJ0ZXh0IjoiYXZvaW5lIGV0L291IHBvaXMgZXQvb3UgbWHD
224
+ r3MiLCJpZCI6ImF2b2luZS1ldC1vdS1wb2lzLWV0LW91LW1haXMiLCJyYW5r
225
+ IjoxOX0seyJ0ZXh0IjoiQWdlbnQgZGUgdHJhaXRlbWVudCBkZSBsYSBmYXJp
226
+ bmUiLCJpZCI6ImFnZW50LWRlLXRyYWl0ZW1lbnQtZGUtbGEtZmFyaW5lIiwi
227
+ cmFuayI6MjB9LHsidGV4dCI6IkUzMDAuIiwiaWQiOiJlMzAwIiwicmFuayI6
228
+ MjF9LHsicGVyY2VudCI6IjYxIiwidGV4dCI6IkZhcmluZSBjb21wbMOodGUg
229
+ ZGUgYmzDqSIsImlkIjoiZmFyaW5lLWNvbXBsZXRlLWRlLWJsZSJ9LHsidGV4
230
+ dCI6IlBhaW4gZGUgbWllIGNvbXBsZXQiLCJpZCI6InBhaW4tZGUtbWllLWNv
231
+ bXBsZXQiLCJyYW5rIjoxfSx7InRleHQiOiJlYXUiLCJpZCI6ImVhdSIsInJh
232
+ bmsiOjJ9LHsidGV4dCI6ImxldnVyZSIsImlkIjoibGV2dXJlIiwicmFuayI6
233
+ M30seyJ0ZXh0Ijoic3VjcmUiLCJpZCI6InN1Y3JlIiwicmFuayI6NH0seyJ0
234
+ ZXh0IjoiaHVpbGUgZGUgY29semEiLCJpZCI6Imh1aWxlLWRlLWNvbHphIiwi
235
+ cmFuayI6NX0seyJ0ZXh0Ijoic2VsIiwiaWQiOiJzZWwiLCJyYW5rIjo2fSx7
236
+ InRleHQiOiJhcsO0bWUiLCJpZCI6ImFyb21lIiwicmFuayI6N30seyJ0ZXh0
237
+ IjoiZGV4dHJvc2UiLCJpZCI6ImRleHRyb3NlIiwicmFuayI6OH0seyJ0ZXh0
238
+ IjoibGV2YWluIGRlIGJsw6kgZMOpc2h5ZHJhdMOpIGV0IGTDqXZpdGFsaXPD
239
+ qSIsImlkIjoibGV2YWluLWRlLWJsZS1kZXNoeWRyYXRlLWV0LWRldml0YWxp
240
+ c2UiLCJyYW5rIjo5fSx7InRleHQiOiJnbHV0ZW4gZGUgYmzDqSIsImlkIjoi
241
+ Z2x1dGVuLWRlLWJsZSIsInJhbmsiOjEwfSx7InRleHQiOiJDb3JyZWN0ZXVy
242
+ IGQnYWNpZGl0w6kiLCJpZCI6ImNvcnJlY3RldXItZC1hY2lkaXRlIiwicmFu
243
+ ayI6MTF9LHsidGV4dCI6IkU1NzUiLCJpZCI6ImU1NzUiLCJyYW5rIjoxMn0s
244
+ eyJ0ZXh0IjoiQ29uc2VydmF0ZXVyIiwiaWQiOiJjb25zZXJ2YXRldXIiLCJy
245
+ YW5rIjoxM30seyJ0ZXh0IjoiRTI4MiIsImlkIjoiZTI4MiIsInJhbmsiOjE0
246
+ fSx7InRleHQiOiJmYXJpbmUgZGUgYmzDqSIsImlkIjoiZmFyaW5lLWRlLWJs
247
+ ZSIsInJhbmsiOjE1fSx7InRleHQiOiLDqW11bHNpZmlhbnQiLCJpZCI6ImVt
248
+ dWxzaWZpYW50IiwicmFuayI6MTZ9LHsidGV4dCI6IkU0NzEiLCJpZCI6ImU0
249
+ NzEiLCJyYW5rIjoxN30seyJ0ZXh0IjoiZmlicmVzIHbDqWfDqXRhbGVzIiwi
250
+ aWQiOiJmaWJyZXMtdmVnZXRhbGVzIiwicmFuayI6MTh9LHsidGV4dCI6ImF2
251
+ b2luZSBldC9vdSBwb2lzIGV0L291IG1hw69zIiwiaWQiOiJhdm9pbmUtZXQt
252
+ b3UtcG9pcy1ldC1vdS1tYWlzIiwicmFuayI6MTl9LHsidGV4dCI6IkFnZW50
253
+ IGRlIHRyYWl0ZW1lbnQgZGUgbGEgZmFyaW5lIiwiaWQiOiJhZ2VudC1kZS10
254
+ cmFpdGVtZW50LWRlLWxhLWZhcmluZSIsInJhbmsiOjIwfSx7InRleHQiOiJF
255
+ MzAwLiIsImlkIjoiZTMwMCIsInJhbmsiOjIxfSx7InRleHQiOiJGYXJpbmUg
256
+ Y29tcGzDqHRlIGRlIGJsw6kiLCJwZXJjZW50IjoiNjEiLCJpZCI6ImZhcmlu
257
+ ZS1jb21wbGV0ZS1kZS1ibGUifSx7InRleHQiOiJQYWluIGRlIG1pZSBjb21w
258
+ bGV0IiwiaWQiOiJwYWluLWRlLW1pZS1jb21wbGV0IiwicmFuayI6MX0seyJ0
259
+ ZXh0IjoiZWF1IiwiaWQiOiJlYXUiLCJyYW5rIjoyfSx7InRleHQiOiJsZXZ1
260
+ cmUiLCJpZCI6ImxldnVyZSIsInJhbmsiOjN9LHsidGV4dCI6InN1Y3JlIiwi
261
+ aWQiOiJzdWNyZSIsInJhbmsiOjR9LHsidGV4dCI6Imh1aWxlIGRlIGNvbHph
262
+ IiwiaWQiOiJodWlsZS1kZS1jb2x6YSIsInJhbmsiOjV9LHsidGV4dCI6InNl
263
+ bCIsImlkIjoic2VsIiwicmFuayI6Nn0seyJ0ZXh0IjoiYXLDtG1lIiwiaWQi
264
+ OiJhcm9tZSIsInJhbmsiOjd9LHsidGV4dCI6ImRleHRyb3NlIiwiaWQiOiJk
265
+ ZXh0cm9zZSIsInJhbmsiOjh9LHsidGV4dCI6ImxldmFpbiBkZSBibMOpIGTD
266
+ qXNoeWRyYXTDqSBldCBkw6l2aXRhbGlzw6kiLCJpZCI6ImxldmFpbi1kZS1i
267
+ bGUtZGVzaHlkcmF0ZS1ldC1kZXZpdGFsaXNlIiwicmFuayI6OX0seyJ0ZXh0
268
+ IjoiZ2x1dGVuIGRlIGJsw6kiLCJpZCI6ImdsdXRlbi1kZS1ibGUiLCJyYW5r
269
+ IjoxMH0seyJ0ZXh0IjoiQ29ycmVjdGV1ciBkJ2FjaWRpdMOpIiwiaWQiOiJj
270
+ b3JyZWN0ZXVyLWQtYWNpZGl0ZSIsInJhbmsiOjExfSx7InRleHQiOiJFNTc1
271
+ IiwiaWQiOiJlNTc1IiwicmFuayI6MTJ9LHsidGV4dCI6IkNvbnNlcnZhdGV1
272
+ ciIsImlkIjoiY29uc2VydmF0ZXVyIiwicmFuayI6MTN9LHsidGV4dCI6IkUy
273
+ ODIiLCJpZCI6ImUyODIiLCJyYW5rIjoxNH0seyJ0ZXh0IjoiZmFyaW5lIGRl
274
+ IGJsw6kiLCJpZCI6ImZhcmluZS1kZS1ibGUiLCJyYW5rIjoxNX0seyJ0ZXh0
275
+ Ijoiw6ltdWxzaWZpYW50IiwiaWQiOiJlbXVsc2lmaWFudCIsInJhbmsiOjE2
276
+ fSx7InRleHQiOiJFNDcxIiwiaWQiOiJlNDcxIiwicmFuayI6MTd9LHsidGV4
277
+ dCI6ImZpYnJlcyB2w6lnw6l0YWxlcyIsImlkIjoiZmlicmVzLXZlZ2V0YWxl
278
+ cyIsInJhbmsiOjE4fSx7InRleHQiOiJhdm9pbmUgZXQvb3UgcG9pcyBldC9v
279
+ dSBtYcOvcyIsImlkIjoiYXZvaW5lLWV0LW91LXBvaXMtZXQtb3UtbWFpcyIs
280
+ InJhbmsiOjE5fSx7InRleHQiOiJBZ2VudCBkZSB0cmFpdGVtZW50IGRlIGxh
281
+ IGZhcmluZSIsImlkIjoiYWdlbnQtZGUtdHJhaXRlbWVudC1kZS1sYS1mYXJp
282
+ bmUiLCJyYW5rIjoyMH0seyJ0ZXh0IjoiRTMwMC4iLCJpZCI6ImUzMDAiLCJy
283
+ YW5rIjoyMX0seyJwZXJjZW50IjoiNjEiLCJ0ZXh0IjoiRmFyaW5lIGNvbXBs
284
+ w6h0ZSBkZSBibMOpIiwiaWQiOiJmYXJpbmUtY29tcGxldGUtZGUtYmxlIn0s
285
+ eyJ0ZXh0IjoiUGFpbiBkZSBtaWUgY29tcGxldCIsImlkIjoicGFpbi1kZS1t
286
+ aWUtY29tcGxldCIsInJhbmsiOjF9LHsidGV4dCI6ImVhdSIsImlkIjoiZWF1
287
+ IiwicmFuayI6Mn0seyJ0ZXh0IjoibGV2dXJlIiwiaWQiOiJsZXZ1cmUiLCJy
288
+ YW5rIjozfSx7InRleHQiOiJzdWNyZSIsImlkIjoic3VjcmUiLCJyYW5rIjo0
289
+ fSx7InRleHQiOiJodWlsZSBkZSBjb2x6YSIsImlkIjoiaHVpbGUtZGUtY29s
290
+ emEiLCJyYW5rIjo1fSx7InRleHQiOiJzZWwiLCJpZCI6InNlbCIsInJhbmsi
291
+ OjZ9LHsidGV4dCI6ImFyw7RtZSIsImlkIjoiYXJvbWUiLCJyYW5rIjo3fSx7
292
+ InRleHQiOiJkZXh0cm9zZSIsImlkIjoiZGV4dHJvc2UiLCJyYW5rIjo4fSx7
293
+ InRleHQiOiJsZXZhaW4gZGUgYmzDqSBkw6lzaHlkcmF0w6kgZXQgZMOpdml0
294
+ YWxpc8OpIiwiaWQiOiJsZXZhaW4tZGUtYmxlLWRlc2h5ZHJhdGUtZXQtZGV2
295
+ aXRhbGlzZSIsInJhbmsiOjl9LHsidGV4dCI6ImdsdXRlbiBkZSBibMOpIiwi
296
+ aWQiOiJnbHV0ZW4tZGUtYmxlIiwicmFuayI6MTB9LHsidGV4dCI6IkNvcnJl
297
+ Y3RldXIgZCdhY2lkaXTDqSIsImlkIjoiY29ycmVjdGV1ci1kLWFjaWRpdGUi
298
+ LCJyYW5rIjoxMX0seyJ0ZXh0IjoiRTU3NSIsImlkIjoiZTU3NSIsInJhbmsi
299
+ OjEyfSx7InRleHQiOiJDb25zZXJ2YXRldXIiLCJpZCI6ImNvbnNlcnZhdGV1
300
+ ciIsInJhbmsiOjEzfSx7InRleHQiOiJFMjgyIiwiaWQiOiJlMjgyIiwicmFu
301
+ ayI6MTR9LHsidGV4dCI6ImZhcmluZSBkZSBibMOpIiwiaWQiOiJmYXJpbmUt
302
+ ZGUtYmxlIiwicmFuayI6MTV9LHsidGV4dCI6IsOpbXVsc2lmaWFudCIsImlk
303
+ IjoiZW11bHNpZmlhbnQiLCJyYW5rIjoxNn0seyJ0ZXh0IjoiRTQ3MSIsImlk
304
+ IjoiZTQ3MSIsInJhbmsiOjE3fSx7InRleHQiOiJmaWJyZXMgdsOpZ8OpdGFs
305
+ ZXMiLCJpZCI6ImZpYnJlcy12ZWdldGFsZXMiLCJyYW5rIjoxOH0seyJ0ZXh0
306
+ IjoiYXZvaW5lIGV0L291IHBvaXMgZXQvb3UgbWHDr3MiLCJpZCI6ImF2b2lu
307
+ ZS1ldC1vdS1wb2lzLWV0LW91LW1haXMiLCJyYW5rIjoxOX0seyJ0ZXh0Ijoi
308
+ QWdlbnQgZGUgdHJhaXRlbWVudCBkZSBsYSBmYXJpbmUiLCJpZCI6ImFnZW50
309
+ LWRlLXRyYWl0ZW1lbnQtZGUtbGEtZmFyaW5lIiwicmFuayI6MjB9LHsidGV4
310
+ dCI6IkUzMDAuIiwiaWQiOiJlMzAwIiwicmFuayI6MjF9LHsidGV4dCI6IkZh
311
+ cmluZSBjb21wbMOodGUgZGUgYmzDqSIsInBlcmNlbnQiOiI2MSIsImlkIjoi
312
+ ZmFyaW5lLWNvbXBsZXRlLWRlLWJsZSJ9LHsidGV4dCI6IlBhaW4gZGUgbWll
313
+ IGNvbXBsZXQiLCJpZCI6InBhaW4tZGUtbWllLWNvbXBsZXQiLCJyYW5rIjox
314
+ fSx7InRleHQiOiJlYXUiLCJpZCI6ImVhdSIsInJhbmsiOjJ9LHsidGV4dCI6
315
+ ImxldnVyZSIsImlkIjoibGV2dXJlIiwicmFuayI6M30seyJ0ZXh0Ijoic3Vj
316
+ cmUiLCJpZCI6InN1Y3JlIiwicmFuayI6NH0seyJ0ZXh0IjoiaHVpbGUgZGUg
317
+ Y29semEiLCJpZCI6Imh1aWxlLWRlLWNvbHphIiwicmFuayI6NX0seyJ0ZXh0
318
+ Ijoic2VsIiwiaWQiOiJzZWwiLCJyYW5rIjo2fSx7InRleHQiOiJhcsO0bWUi
319
+ LCJpZCI6ImFyb21lIiwicmFuayI6N30seyJ0ZXh0IjoiZGV4dHJvc2UiLCJp
320
+ ZCI6ImRleHRyb3NlIiwicmFuayI6OH0seyJ0ZXh0IjoibGV2YWluIGRlIGJs
321
+ w6kgZMOpc2h5ZHJhdMOpIGV0IGTDqXZpdGFsaXPDqSIsImlkIjoibGV2YWlu
322
+ LWRlLWJsZS1kZXNoeWRyYXRlLWV0LWRldml0YWxpc2UiLCJyYW5rIjo5fSx7
323
+ InRleHQiOiJnbHV0ZW4gZGUgYmzDqSIsImlkIjoiZ2x1dGVuLWRlLWJsZSIs
324
+ InJhbmsiOjEwfSx7InRleHQiOiJDb3JyZWN0ZXVyIGQnYWNpZGl0w6kiLCJp
325
+ ZCI6ImNvcnJlY3RldXItZC1hY2lkaXRlIiwicmFuayI6MTF9LHsidGV4dCI6
326
+ IkU1NzUiLCJpZCI6ImU1NzUiLCJyYW5rIjoxMn0seyJ0ZXh0IjoiQ29uc2Vy
327
+ dmF0ZXVyIiwiaWQiOiJjb25zZXJ2YXRldXIiLCJyYW5rIjoxM30seyJ0ZXh0
328
+ IjoiRTI4MiIsImlkIjoiZTI4MiIsInJhbmsiOjE0fSx7InRleHQiOiJmYXJp
329
+ bmUgZGUgYmzDqSIsImlkIjoiZmFyaW5lLWRlLWJsZSIsInJhbmsiOjE1fSx7
330
+ InRleHQiOiLDqW11bHNpZmlhbnQiLCJpZCI6ImVtdWxzaWZpYW50IiwicmFu
331
+ ayI6MTZ9LHsidGV4dCI6IkU0NzEiLCJpZCI6ImU0NzEiLCJyYW5rIjoxN30s
332
+ eyJ0ZXh0IjoiZmlicmVzIHbDqWfDqXRhbGVzIiwiaWQiOiJmaWJyZXMtdmVn
333
+ ZXRhbGVzIiwicmFuayI6MTh9LHsidGV4dCI6ImF2b2luZSBldC9vdSBwb2lz
334
+ IGV0L291IG1hw69zIiwiaWQiOiJhdm9pbmUtZXQtb3UtcG9pcy1ldC1vdS1t
335
+ YWlzIiwicmFuayI6MTl9LHsidGV4dCI6IkFnZW50IGRlIHRyYWl0ZW1lbnQg
336
+ ZGUgbGEgZmFyaW5lIiwiaWQiOiJhZ2VudC1kZS10cmFpdGVtZW50LWRlLWxh
337
+ LWZhcmluZSIsInJhbmsiOjIwfSx7InRleHQiOiJFMzAwLiIsImlkIjoiZTMw
338
+ MCIsInJhbmsiOjIxfSx7InBlcmNlbnQiOiI2MSIsInRleHQiOiJGYXJpbmUg
339
+ Y29tcGzDqHRlIGRlIGJsw6kiLCJpZCI6ImZhcmluZS1jb21wbGV0ZS1kZS1i
340
+ bGUifV0sImxjIjoiZnIiLCJwbm5zX2dyb3Vwc18xX3RhZ3MiOlsiY2VyZWFs
341
+ cy1hbmQtcG90YXRvZXMiXSwiY2hlY2tlcnMiOltdLCJjb21wbGV0ZSI6MX0s
342
+ ImNvZGUiOiIzMDI5MzMwMDAzNTMzIn0=
343
+ http_version:
344
+ recorded_at: Sun, 22 Feb 2015 22:11:38 GMT
345
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'openfoodfacts'
3
+
4
+ require 'minitest/autorun'
5
+
6
+ require 'webmock/minitest'
7
+ require 'vcr'
8
+
9
+ VCR.configure do |c|
10
+ c.cassette_library_dir = "test/fixtures"
11
+ c.hook_into :webmock
12
+ end
@@ -0,0 +1,14 @@
1
+ require 'minitest_helper'
2
+
3
+ class TestOpenfoodfacts < Minitest::Test
4
+ def test_that_it_has_a_version_number
5
+ refute_nil ::Openfoodfacts::VERSION
6
+ end
7
+
8
+ def test_it_fetch_product
9
+ product_code = "3029330003533"
10
+ VCR.use_cassette("product_#{product_code}") do
11
+ assert_equal ::Openfoodfacts.product(product_code).code, product_code
12
+ end
13
+ end
14
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: openfoodfacts
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Nicolas Leger
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2015-02-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: hashie
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: vcr
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: OpenFoodFacts API Wrapper, the open database about food.
98
+ email:
99
+ - nicolas.leger@nleger.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - LICENSE.txt
105
+ - README.md
106
+ - Rakefile
107
+ - lib/openfoodfacts.rb
108
+ - lib/openfoodfacts/product.rb
109
+ - lib/openfoodfacts/version.rb
110
+ - test/fixtures/product_3029330003533.yml
111
+ - test/minitest_helper.rb
112
+ - test/test_openfoodfacts.rb
113
+ homepage: https://github.com/nicolasleger/openfoodfacts-ruby
114
+ licenses:
115
+ - MIT
116
+ metadata: {}
117
+ post_install_message:
118
+ rdoc_options: []
119
+ require_paths:
120
+ - lib
121
+ required_ruby_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '2.0'
126
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ requirements: []
132
+ rubyforge_project:
133
+ rubygems_version: 2.4.5
134
+ signing_key:
135
+ specification_version: 4
136
+ summary: OpenFoodFacts API Wrapper
137
+ test_files: []
138
+ has_rdoc: