ndb-ruby 0.2.0

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.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +11 -0
  3. data/.gitignore +9 -0
  4. data/.rubocop.yml +1055 -0
  5. data/.travis.yml +4 -0
  6. data/CODE_OF_CONDUCT.md +13 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +80 -0
  10. data/Rakefile +4 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +7 -0
  13. data/lib/ndb-ruby.rb +41 -0
  14. data/lib/ndb/food_report.rb +13 -0
  15. data/lib/ndb/list.rb +21 -0
  16. data/lib/ndb/nutrient_report.rb +21 -0
  17. data/lib/ndb/search.rb +24 -0
  18. data/lib/ndb/version.rb +3 -0
  19. data/ndb-ruby.gemspec +32 -0
  20. data/spec/fixtures/vcr_cassettes/food_report_ndbno.yml +766 -0
  21. data/spec/fixtures/vcr_cassettes/food_report_type.yml +1278 -0
  22. data/spec/fixtures/vcr_cassettes/list_max.yml +574 -0
  23. data/spec/fixtures/vcr_cassettes/list_offset.yml +324 -0
  24. data/spec/fixtures/vcr_cassettes/list_sort.yml +324 -0
  25. data/spec/fixtures/vcr_cassettes/list_type.yml +324 -0
  26. data/spec/fixtures/vcr_cassettes/nutrient_report_food_group.yml +829 -0
  27. data/spec/fixtures/vcr_cassettes/nutrient_report_max.yml +1576 -0
  28. data/spec/fixtures/vcr_cassettes/nutrient_report_ndbno.yml +89 -0
  29. data/spec/fixtures/vcr_cassettes/nutrient_report_nutrients.yml +824 -0
  30. data/spec/fixtures/vcr_cassettes/nutrient_report_offset.yml +824 -0
  31. data/spec/fixtures/vcr_cassettes/nutrient_report_subset.yml +826 -0
  32. data/spec/fixtures/vcr_cassettes/search_all_foods.yml +375 -0
  33. data/spec/fixtures/vcr_cassettes/search_food_group.yml +375 -0
  34. data/spec/fixtures/vcr_cassettes/search_max_rows.yml +675 -0
  35. data/spec/fixtures/vcr_cassettes/search_query.yml +375 -0
  36. data/spec/fixtures/vcr_cassettes/search_sort_name.yml +213 -0
  37. data/spec/ndb/food_report_spec.rb +19 -0
  38. data/spec/ndb/list_spec.rb +33 -0
  39. data/spec/ndb/nutrient_report_spec.rb +49 -0
  40. data/spec/ndb/search_spec.rb +59 -0
  41. data/spec/ndb_spec.rb +13 -0
  42. data/spec/spec_helper.rb +21 -0
  43. metadata +211 -0
@@ -0,0 +1,324 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.nal.usda.gov/ndb/list?api_key=DEMO_KEY&format=JSON&lt=f&max=50&offset=1&sort=n
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Accept-Ranges:
22
+ - bytes
23
+ Access-Control-Allow-Credentials:
24
+ - 'true'
25
+ Access-Control-Allow-Headers:
26
+ - DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type
27
+ Access-Control-Allow-Methods:
28
+ - GET, POST, OPTIONS
29
+ Access-Control-Allow-Origin:
30
+ - "*"
31
+ Age:
32
+ - '0'
33
+ Content-Type:
34
+ - application/json;charset=UTF-8
35
+ Date:
36
+ - Sun, 27 Sep 2015 00:52:09 GMT
37
+ Location:
38
+ - ''
39
+ Server:
40
+ - nginx
41
+ Vary:
42
+ - Accept-Encoding
43
+ Via:
44
+ - 1.1 varnish-v4
45
+ X-Cache:
46
+ - MISS
47
+ X-Ratelimit-Limit:
48
+ - '1000'
49
+ X-Ratelimit-Remaining:
50
+ - '981'
51
+ X-Varnish:
52
+ - '41905939'
53
+ Transfer-Encoding:
54
+ - chunked
55
+ Connection:
56
+ - keep-alive
57
+ body:
58
+ encoding: ASCII-8BIT
59
+ string: |-
60
+ {
61
+ "list": {
62
+ "lt": "f",
63
+ "start": 1,
64
+ "end": 50,
65
+ "total": 50,
66
+ "sr": "27",
67
+ "sort": "n",
68
+ "item": [
69
+ {
70
+ "offset": 1,
71
+ "id": "09002",
72
+ "name": "Acerola juice, raw"
73
+ },
74
+ {
75
+ "offset": 2,
76
+ "id": "09001",
77
+ "name": "Acerola, (west indian cherry), raw"
78
+ },
79
+ {
80
+ "offset": 3,
81
+ "id": "35182",
82
+ "name": "Acorn stew (Apache)"
83
+ },
84
+ {
85
+ "offset": 4,
86
+ "id": "35193",
87
+ "name": "Agave, cooked (Southwest)"
88
+ },
89
+ {
90
+ "offset": 5,
91
+ "id": "35194",
92
+ "name": "Agave, dried (Southwest)"
93
+ },
94
+ {
95
+ "offset": 6,
96
+ "id": "35192",
97
+ "name": "Agave, raw (Southwest)"
98
+ },
99
+ {
100
+ "offset": 7,
101
+ "id": "35225",
102
+ "name": "Agutuk, fish with shortening (Alaskan ice cream) (Alaska Native)"
103
+ },
104
+ {
105
+ "offset": 8,
106
+ "id": "35001",
107
+ "name": "Agutuk, fish/berry with seal oil (Alaskan ice cream) (Alaska Native)"
108
+ },
109
+ {
110
+ "offset": 9,
111
+ "id": "35003",
112
+ "name": "Agutuk, meat-caribou (Alaskan ice cream) (Alaska Native)"
113
+ },
114
+ {
115
+ "offset": 10,
116
+ "id": "14006",
117
+ "name": "Alcoholic beverage, beer, light"
118
+ },
119
+ {
120
+ "offset": 11,
121
+ "id": "14007",
122
+ "name": "Alcoholic beverage, beer, light, BUD LIGHT"
123
+ },
124
+ {
125
+ "offset": 12,
126
+ "id": "14005",
127
+ "name": "Alcoholic beverage, beer, light, BUDWEISER SELECT"
128
+ },
129
+ {
130
+ "offset": 13,
131
+ "id": "14013",
132
+ "name": "Alcoholic beverage, beer, light, MICHELOB ULTRA"
133
+ },
134
+ {
135
+ "offset": 14,
136
+ "id": "14003",
137
+ "name": "Alcoholic beverage, beer, regular, all"
138
+ },
139
+ {
140
+ "offset": 15,
141
+ "id": "14004",
142
+ "name": "Alcoholic beverage, beer, regular, BUDWEISER"
143
+ },
144
+ {
145
+ "offset": 16,
146
+ "id": "14034",
147
+ "name": "Alcoholic beverage, creme de menthe, 72 proof"
148
+ },
149
+ {
150
+ "offset": 17,
151
+ "id": "14009",
152
+ "name": "Alcoholic beverage, daiquiri, canned"
153
+ },
154
+ {
155
+ "offset": 18,
156
+ "id": "14010",
157
+ "name": "Alcoholic beverage, daiquiri, prepared-from-recipe"
158
+ },
159
+ {
160
+ "offset": 19,
161
+ "id": "14533",
162
+ "name": "Alcoholic beverage, distilled, all (gin, rum, vodka, whiskey) 100 proof"
163
+ },
164
+ {
165
+ "offset": 20,
166
+ "id": "14037",
167
+ "name": "Alcoholic beverage, distilled, all (gin, rum, vodka, whiskey) 80 proof"
168
+ },
169
+ {
170
+ "offset": 21,
171
+ "id": "14550",
172
+ "name": "Alcoholic beverage, distilled, all (gin, rum, vodka, whiskey) 86 proof"
173
+ },
174
+ {
175
+ "offset": 22,
176
+ "id": "14551",
177
+ "name": "Alcoholic beverage, distilled, all (gin, rum, vodka, whiskey) 90 proof"
178
+ },
179
+ {
180
+ "offset": 23,
181
+ "id": "14532",
182
+ "name": "Alcoholic beverage, distilled, all (gin, rum, vodka, whiskey) 94 proof"
183
+ },
184
+ {
185
+ "offset": 24,
186
+ "id": "14049",
187
+ "name": "Alcoholic beverage, distilled, gin, 90 proof"
188
+ },
189
+ {
190
+ "offset": 25,
191
+ "id": "14050",
192
+ "name": "Alcoholic beverage, distilled, rum, 80 proof"
193
+ },
194
+ {
195
+ "offset": 26,
196
+ "id": "14051",
197
+ "name": "Alcoholic beverage, distilled, vodka, 80 proof"
198
+ },
199
+ {
200
+ "offset": 27,
201
+ "id": "14052",
202
+ "name": "Alcoholic beverage, distilled, whiskey, 86 proof"
203
+ },
204
+ {
205
+ "offset": 28,
206
+ "id": "14415",
207
+ "name": "Alcoholic beverage, liqueur, coffee with cream, 34 proof"
208
+ },
209
+ {
210
+ "offset": 29,
211
+ "id": "14414",
212
+ "name": "Alcoholic beverage, liqueur, coffee, 53 proof"
213
+ },
214
+ {
215
+ "offset": 30,
216
+ "id": "14534",
217
+ "name": "Alcoholic beverage, liqueur, coffee, 63 proof"
218
+ },
219
+ {
220
+ "offset": 31,
221
+ "id": "14015",
222
+ "name": "Alcoholic beverage, pina colada, canned"
223
+ },
224
+ {
225
+ "offset": 32,
226
+ "id": "14017",
227
+ "name": "Alcoholic beverage, pina colada, prepared-from-recipe"
228
+ },
229
+ {
230
+ "offset": 33,
231
+ "id": "43479",
232
+ "name": "Alcoholic beverage, rice (sake)"
233
+ },
234
+ {
235
+ "offset": 34,
236
+ "id": "14019",
237
+ "name": "Alcoholic beverage, tequila sunrise, canned"
238
+ },
239
+ {
240
+ "offset": 35,
241
+ "id": "14027",
242
+ "name": "Alcoholic beverage, whiskey sour, canned"
243
+ },
244
+ {
245
+ "offset": 36,
246
+ "id": "14029",
247
+ "name": "Alcoholic beverage, whiskey sour, prepared from item 14028"
248
+ },
249
+ {
250
+ "offset": 37,
251
+ "id": "14025",
252
+ "name": "Alcoholic beverage, whiskey sour, prepared with water, whiskey and powder mix"
253
+ },
254
+ {
255
+ "offset": 38,
256
+ "id": "43154",
257
+ "name": "Alcoholic beverage, wine, cooking"
258
+ },
259
+ {
260
+ "offset": 39,
261
+ "id": "14536",
262
+ "name": "Alcoholic beverage, wine, dessert, dry"
263
+ },
264
+ {
265
+ "offset": 40,
266
+ "id": "14057",
267
+ "name": "Alcoholic beverage, wine, dessert, sweet"
268
+ },
269
+ {
270
+ "offset": 41,
271
+ "id": "43155",
272
+ "name": "Alcoholic beverage, wine, light"
273
+ },
274
+ {
275
+ "offset": 42,
276
+ "id": "14084",
277
+ "name": "Alcoholic beverage, wine, table, all"
278
+ },
279
+ {
280
+ "offset": 43,
281
+ "id": "14096",
282
+ "name": "Alcoholic beverage, wine, table, red"
283
+ },
284
+ {
285
+ "offset": 44,
286
+ "id": "14101",
287
+ "name": "Alcoholic Beverage, wine, table, red, Barbera"
288
+ },
289
+ {
290
+ "offset": 45,
291
+ "id": "14152",
292
+ "name": "Alcoholic Beverage, wine, table, red, Burgundy"
293
+ },
294
+ {
295
+ "offset": 46,
296
+ "id": "14098",
297
+ "name": "Alcoholic Beverage, wine, table, red, Cabernet Franc"
298
+ },
299
+ {
300
+ "offset": 47,
301
+ "id": "14097",
302
+ "name": "Alcoholic Beverage, wine, table, red, Cabernet Sauvignon"
303
+ },
304
+ {
305
+ "offset": 48,
306
+ "id": "14109",
307
+ "name": "Alcoholic Beverage, wine, table, red, Carignane"
308
+ },
309
+ {
310
+ "offset": 49,
311
+ "id": "14105",
312
+ "name": "Alcoholic Beverage, wine, table, red, Claret"
313
+ },
314
+ {
315
+ "offset": 50,
316
+ "id": "14158",
317
+ "name": "Alcoholic Beverage, wine, table, red, Gamay"
318
+ }
319
+ ]
320
+ }
321
+ }
322
+ http_version:
323
+ recorded_at: Sun, 27 Sep 2015 00:52:09 GMT
324
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,324 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.nal.usda.gov/ndb/list?api_key=DEMO_KEY&format=JSON&lt=f&max=50&offset=0&sort=id
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Accept-Ranges:
22
+ - bytes
23
+ Access-Control-Allow-Credentials:
24
+ - 'true'
25
+ Access-Control-Allow-Headers:
26
+ - DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type
27
+ Access-Control-Allow-Methods:
28
+ - GET, POST, OPTIONS
29
+ Access-Control-Allow-Origin:
30
+ - "*"
31
+ Age:
32
+ - '0'
33
+ Content-Type:
34
+ - application/json;charset=UTF-8
35
+ Date:
36
+ - Sun, 27 Sep 2015 00:52:08 GMT
37
+ Location:
38
+ - ''
39
+ Server:
40
+ - nginx
41
+ Vary:
42
+ - Accept-Encoding
43
+ Via:
44
+ - 1.1 varnish-v4
45
+ X-Cache:
46
+ - MISS
47
+ X-Ratelimit-Limit:
48
+ - '1000'
49
+ X-Ratelimit-Remaining:
50
+ - '983'
51
+ X-Varnish:
52
+ - '41867633'
53
+ Transfer-Encoding:
54
+ - chunked
55
+ Connection:
56
+ - keep-alive
57
+ body:
58
+ encoding: ASCII-8BIT
59
+ string: |-
60
+ {
61
+ "list": {
62
+ "lt": "f",
63
+ "start": 0,
64
+ "end": 50,
65
+ "total": 50,
66
+ "sr": "27",
67
+ "sort": "id",
68
+ "item": [
69
+ {
70
+ "offset": 0,
71
+ "id": "01001",
72
+ "name": "Butter, salted"
73
+ },
74
+ {
75
+ "offset": 1,
76
+ "id": "01002",
77
+ "name": "Butter, whipped, with salt"
78
+ },
79
+ {
80
+ "offset": 2,
81
+ "id": "01003",
82
+ "name": "Butter oil, anhydrous"
83
+ },
84
+ {
85
+ "offset": 3,
86
+ "id": "01004",
87
+ "name": "Cheese, blue"
88
+ },
89
+ {
90
+ "offset": 4,
91
+ "id": "01005",
92
+ "name": "Cheese, brick"
93
+ },
94
+ {
95
+ "offset": 5,
96
+ "id": "01006",
97
+ "name": "Cheese, brie"
98
+ },
99
+ {
100
+ "offset": 6,
101
+ "id": "01007",
102
+ "name": "Cheese, camembert"
103
+ },
104
+ {
105
+ "offset": 7,
106
+ "id": "01008",
107
+ "name": "Cheese, caraway"
108
+ },
109
+ {
110
+ "offset": 8,
111
+ "id": "01009",
112
+ "name": "Cheese, cheddar"
113
+ },
114
+ {
115
+ "offset": 9,
116
+ "id": "01010",
117
+ "name": "Cheese, cheshire"
118
+ },
119
+ {
120
+ "offset": 10,
121
+ "id": "01011",
122
+ "name": "Cheese, colby"
123
+ },
124
+ {
125
+ "offset": 11,
126
+ "id": "01012",
127
+ "name": "Cheese, cottage, creamed, large or small curd"
128
+ },
129
+ {
130
+ "offset": 12,
131
+ "id": "01013",
132
+ "name": "Cheese, cottage, creamed, with fruit"
133
+ },
134
+ {
135
+ "offset": 13,
136
+ "id": "01014",
137
+ "name": "Cheese, cottage, nonfat, uncreamed, dry, large or small curd"
138
+ },
139
+ {
140
+ "offset": 14,
141
+ "id": "01015",
142
+ "name": "Cheese, cottage, lowfat, 2% milkfat"
143
+ },
144
+ {
145
+ "offset": 15,
146
+ "id": "01016",
147
+ "name": "Cheese, cottage, lowfat, 1% milkfat"
148
+ },
149
+ {
150
+ "offset": 16,
151
+ "id": "01017",
152
+ "name": "Cheese, cream"
153
+ },
154
+ {
155
+ "offset": 17,
156
+ "id": "01018",
157
+ "name": "Cheese, edam"
158
+ },
159
+ {
160
+ "offset": 18,
161
+ "id": "01019",
162
+ "name": "Cheese, feta"
163
+ },
164
+ {
165
+ "offset": 19,
166
+ "id": "01020",
167
+ "name": "Cheese, fontina"
168
+ },
169
+ {
170
+ "offset": 20,
171
+ "id": "01021",
172
+ "name": "Cheese, gjetost"
173
+ },
174
+ {
175
+ "offset": 21,
176
+ "id": "01022",
177
+ "name": "Cheese, gouda"
178
+ },
179
+ {
180
+ "offset": 22,
181
+ "id": "01023",
182
+ "name": "Cheese, gruyere"
183
+ },
184
+ {
185
+ "offset": 23,
186
+ "id": "01024",
187
+ "name": "Cheese, limburger"
188
+ },
189
+ {
190
+ "offset": 24,
191
+ "id": "01025",
192
+ "name": "Cheese, monterey"
193
+ },
194
+ {
195
+ "offset": 25,
196
+ "id": "01026",
197
+ "name": "Cheese, mozzarella, whole milk"
198
+ },
199
+ {
200
+ "offset": 26,
201
+ "id": "01027",
202
+ "name": "Cheese, mozzarella, whole milk, low moisture"
203
+ },
204
+ {
205
+ "offset": 27,
206
+ "id": "01028",
207
+ "name": "Cheese, mozzarella, part skim milk"
208
+ },
209
+ {
210
+ "offset": 28,
211
+ "id": "01029",
212
+ "name": "Cheese, mozzarella, low moisture, part-skim"
213
+ },
214
+ {
215
+ "offset": 29,
216
+ "id": "01030",
217
+ "name": "Cheese, muenster"
218
+ },
219
+ {
220
+ "offset": 30,
221
+ "id": "01031",
222
+ "name": "Cheese, neufchatel"
223
+ },
224
+ {
225
+ "offset": 31,
226
+ "id": "01032",
227
+ "name": "Cheese, parmesan, grated"
228
+ },
229
+ {
230
+ "offset": 32,
231
+ "id": "01033",
232
+ "name": "Cheese, parmesan, hard"
233
+ },
234
+ {
235
+ "offset": 33,
236
+ "id": "01034",
237
+ "name": "Cheese, port de salut"
238
+ },
239
+ {
240
+ "offset": 34,
241
+ "id": "01035",
242
+ "name": "Cheese, provolone"
243
+ },
244
+ {
245
+ "offset": 35,
246
+ "id": "01036",
247
+ "name": "Cheese, ricotta, whole milk"
248
+ },
249
+ {
250
+ "offset": 36,
251
+ "id": "01037",
252
+ "name": "Cheese, ricotta, part skim milk"
253
+ },
254
+ {
255
+ "offset": 37,
256
+ "id": "01038",
257
+ "name": "Cheese, romano"
258
+ },
259
+ {
260
+ "offset": 38,
261
+ "id": "01039",
262
+ "name": "Cheese, roquefort"
263
+ },
264
+ {
265
+ "offset": 39,
266
+ "id": "01040",
267
+ "name": "Cheese, swiss"
268
+ },
269
+ {
270
+ "offset": 40,
271
+ "id": "01041",
272
+ "name": "Cheese, tilsit"
273
+ },
274
+ {
275
+ "offset": 41,
276
+ "id": "01042",
277
+ "name": "Cheese, pasteurized process, American, fortified with vitamin D"
278
+ },
279
+ {
280
+ "offset": 42,
281
+ "id": "01043",
282
+ "name": "Cheese, pasteurized process, pimento"
283
+ },
284
+ {
285
+ "offset": 43,
286
+ "id": "01044",
287
+ "name": "Cheese, pasteurized process, swiss"
288
+ },
289
+ {
290
+ "offset": 44,
291
+ "id": "01045",
292
+ "name": "Cheese food, cold pack, American"
293
+ },
294
+ {
295
+ "offset": 45,
296
+ "id": "01046",
297
+ "name": "Cheese food, pasteurized process, American, vitamin D fortified"
298
+ },
299
+ {
300
+ "offset": 46,
301
+ "id": "01047",
302
+ "name": "Cheese food, pasteurized process, swiss"
303
+ },
304
+ {
305
+ "offset": 47,
306
+ "id": "01048",
307
+ "name": "Cheese spread, pasteurized process, American"
308
+ },
309
+ {
310
+ "offset": 48,
311
+ "id": "01049",
312
+ "name": "Cream, fluid, half and half"
313
+ },
314
+ {
315
+ "offset": 49,
316
+ "id": "01050",
317
+ "name": "Cream, fluid, light (coffee cream or table cream)"
318
+ }
319
+ ]
320
+ }
321
+ }
322
+ http_version:
323
+ recorded_at: Sun, 27 Sep 2015 00:52:08 GMT
324
+ recorded_with: VCR 2.9.3