openfoodfacts 0.0.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.
@@ -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: