usda-nutrient-database 0.3.0 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 831e4c2f89dfafdc47775cc8dec3cebdbcd1914c
4
- data.tar.gz: 785a041f065074cdc8dd8b66167821f01767cf71
3
+ metadata.gz: 4a1a20a7ca11fed27457609ba81d0247479c4b90
4
+ data.tar.gz: 1e7911deeb66f62d4e5c36cc669d73b8b1f1b340
5
5
  SHA512:
6
- metadata.gz: 2cd55cae7aaa1fd439d8ae4e94753ade9517b923c39cc8122edd8e7630159130469c35862668609f1150d6359669b33cc37d150f5b6a02bbd7376e42c1ab0fa7
7
- data.tar.gz: 6dee23c9fa9c7090ff540fa80e5e5570a8306539146c530c569bbfa0c09b66e217180e98fe93afd03e01ee4c1fecac0ce7fce7fd84f515a48563d3b3376b3538
6
+ metadata.gz: 9ea25431873fbaaedab58f4f24ae48c8c8f8962cb86d8b4853e6ced769c7f4e64517416a8680fc636f977dad04038dcdf256ca2db487c68691fd998f0a9bdd74
7
+ data.tar.gz: 6e4715beb8efd19a3cbe94a5f3387cda8f78924d06fe8980eb260a00e2ad1b999197a315f2451d879b6d87e1210590ac14cd408cf08d06f30949ba91dbde49af
@@ -0,0 +1,11 @@
1
+ class CreateFootnotes < ActiveRecord::Migration
2
+ def change
3
+ create_table :usda_footnotes do |t|
4
+ t.string :nutrient_databank_number, null: false, index: true
5
+ t.string :footnote_number, null: false, index: true
6
+ t.string :footnote_type, null: false, index: true
7
+ t.string :nutrient_number, index: true
8
+ t.string :footnote_text, null: false
9
+ end
10
+ end
11
+ end
@@ -3,6 +3,7 @@ require 'usda_nutrient_database/configuration'
3
3
  require 'usda_nutrient_database/engine' if defined?(Rails)
4
4
  require 'usda_nutrient_database/food_group'
5
5
  require 'usda_nutrient_database/food'
6
+ require 'usda_nutrient_database/footnote'
6
7
  require 'usda_nutrient_database/nutrient'
7
8
  require 'usda_nutrient_database/foods_nutrient'
8
9
  require 'usda_nutrient_database/importer'
@@ -11,6 +12,7 @@ require 'usda_nutrient_database/import/downloader'
11
12
  require 'usda_nutrient_database/import/food_groups'
12
13
  require 'usda_nutrient_database/import/foods'
13
14
  require 'usda_nutrient_database/import/foods_nutrients'
15
+ require 'usda_nutrient_database/import/footnotes'
14
16
  require 'usda_nutrient_database/import/nutrients'
15
17
  require 'usda_nutrient_database/import/weights'
16
18
  require 'usda_nutrient_database/railtie' if defined?(Rails)
@@ -9,6 +9,8 @@ module UsdaNutrientDatabase
9
9
  validates :long_description, presence: true
10
10
  validates :short_description, presence: true
11
11
 
12
+ has_many :footnotes, class_name: 'UsdaNutrientDatabase::Footnote'
13
+
12
14
  belongs_to :food_group, class_name: 'UsdaNutrientDatabase::FoodGroup',
13
15
  foreign_key: :food_group_code
14
16
  end
@@ -0,0 +1,15 @@
1
+ module UsdaNutrientDatabase
2
+ class Footnote < ActiveRecord::Base
3
+ self.table_name = 'usda_footnotes'
4
+
5
+ validates :nutrient_databank_number, presence: true
6
+ validates :footnote_number, presence: true
7
+ validates :footnote_type, presence: true
8
+ validates :footnote_text, presence: true
9
+
10
+ belongs_to :food, class_name: 'UsdaNutrientDatabase::Food',
11
+ foreign_key: :nutrient_databank_number
12
+ belongs_to :nutrient, class_name: 'UsdaNutrientDatabase::Nutrient',
13
+ foreign_key: :nutrient_number
14
+ end
15
+ end
@@ -0,0 +1,34 @@
1
+ module UsdaNutrientDatabase
2
+ module Import
3
+ class Footnotes < Base
4
+ def import
5
+ CSV.open(
6
+ "#{directory}/FOOTNOTE.txt", 'r:iso-8859-1:utf-8', csv_options
7
+ ) do |csv|
8
+ csv.each { |row| extract_row(row) }
9
+ end
10
+ end
11
+
12
+ private
13
+
14
+ def extract_row(row)
15
+ UsdaNutrientDatabase::Footnote.create! extract_row_data(row)
16
+ end
17
+
18
+ def extract_row_data(row)
19
+ {}.tap do |attrs|
20
+ columns.each_with_index do |col, index|
21
+ attrs.merge!(col => row[index])
22
+ end
23
+ end
24
+ end
25
+
26
+ def columns
27
+ [
28
+ :nutrient_databank_number, :footnote_number, :footnote_type,
29
+ :nutrient_number, :footnote_text
30
+ ]
31
+ end
32
+ end
33
+ end
34
+ end
@@ -14,5 +14,7 @@ module UsdaNutrientDatabase
14
14
  has_many :foods_nutrients,
15
15
  class_name: 'UsdaNutrientDatabase::FoodsNutrient',
16
16
  dependent: :destroy
17
+
18
+ has_many :footnotes, class_name: 'UsdaNutrientDatabase::Footnote'
17
19
  end
18
20
  end
@@ -1,3 +1,3 @@
1
1
  module UsdaNutrientDatabase
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe UsdaNutrientDatabase::Footnote do
4
+ it { should validate_presence_of(:nutrient_databank_number) }
5
+ it { should validate_presence_of(:footnote_number) }
6
+ it { should validate_presence_of(:footnote_type) }
7
+ it { should validate_presence_of(:footnote_text) }
8
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe UsdaNutrientDatabase::Import::Footnotes do
4
+ let(:importer) { described_class.new('spec/support/sr25') }
5
+
6
+ describe '#import' do
7
+ before { importer.import }
8
+
9
+ it { expect(UsdaNutrientDatabase::Footnote.count).to eql(4) }
10
+ end
11
+ end
@@ -59,4 +59,12 @@ ActiveRecord::Schema.define version: 0 do
59
59
  t.integer :num_data_points
60
60
  t.float :standard_deviation
61
61
  end
62
+
63
+ create_table :usda_footnotes, force: true do |t|
64
+ t.string :nutrient_databank_number, null: false, index: true
65
+ t.string :footnote_number, null: false, index: true
66
+ t.string :footnote_type, null: false, index: true
67
+ t.string :nutrient_number, index: true
68
+ t.string :footnote_text, null: false
69
+ end
62
70
  end
@@ -0,0 +1,4 @@
1
+ ~02009~^~01~^~D~^~~^~Mix of chili pepper, other spices and salt~
2
+ ~02030~^~01~^~N~^~204~^~Total proximates do not equal 100% because piperine was subtracted from lipid value.~
3
+ ~02032~^~01~^~N~^~204~^~Total proximates do not equal 100% because piperine was subtracted from lipid value.~
4
+ ~02033~^~01~^~D~^~~^~Other phytosterols = 38.4 mg/100g; these include delta 5-avenasterol (17.7), campestanol (2.6), and other minor phytosterols (18.1 mg).~
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usda-nutrient-database
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Beedle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-24 00:00:00.000000000 Z
11
+ date: 2013-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -197,6 +197,7 @@ files:
197
197
  - db/migrate/3_create_usda_foods_nutrients.rb
198
198
  - db/migrate/4_create_usda_nutrients.rb
199
199
  - db/migrate/5_create_usda_weights.rb
200
+ - db/migrate/6_create_footnotes.rb
200
201
  - lib/tasks/usda_nutrient_database.rake
201
202
  - lib/usda-nutrient-database.rb
202
203
  - lib/usda_nutrient_database/configuration.rb
@@ -204,11 +205,13 @@ files:
204
205
  - lib/usda_nutrient_database/food.rb
205
206
  - lib/usda_nutrient_database/food_group.rb
206
207
  - lib/usda_nutrient_database/foods_nutrient.rb
208
+ - lib/usda_nutrient_database/footnote.rb
207
209
  - lib/usda_nutrient_database/import/base.rb
208
210
  - lib/usda_nutrient_database/import/downloader.rb
209
211
  - lib/usda_nutrient_database/import/food_groups.rb
210
212
  - lib/usda_nutrient_database/import/foods.rb
211
213
  - lib/usda_nutrient_database/import/foods_nutrients.rb
214
+ - lib/usda_nutrient_database/import/footnotes.rb
212
215
  - lib/usda_nutrient_database/import/nutrients.rb
213
216
  - lib/usda_nutrient_database/import/weights.rb
214
217
  - lib/usda_nutrient_database/importer.rb
@@ -220,10 +223,12 @@ files:
220
223
  - spec/lib/usda_nutrient_database/food_group_spec.rb
221
224
  - spec/lib/usda_nutrient_database/food_spec.rb
222
225
  - spec/lib/usda_nutrient_database/foods_nutrient_spec.rb
226
+ - spec/lib/usda_nutrient_database/footnote_spec.rb
223
227
  - spec/lib/usda_nutrient_database/import/downloader_spec.rb
224
228
  - spec/lib/usda_nutrient_database/import/food_groups_spec.rb
225
229
  - spec/lib/usda_nutrient_database/import/foods_nutrients_spec.rb
226
230
  - spec/lib/usda_nutrient_database/import/foods_spec.rb
231
+ - spec/lib/usda_nutrient_database/import/footnotes_spec.rb
227
232
  - spec/lib/usda_nutrient_database/import/nutrients_spec.rb
228
233
  - spec/lib/usda_nutrient_database/import/weights_spec.rb
229
234
  - spec/lib/usda_nutrient_database/importer_spec.rb
@@ -234,6 +239,7 @@ files:
234
239
  - spec/support/sr25.zip
235
240
  - spec/support/sr25/FD_GROUP.txt
236
241
  - spec/support/sr25/FOOD_DES.txt
242
+ - spec/support/sr25/FOOTNOTE.txt
237
243
  - spec/support/sr25/NUTR_DEF.txt
238
244
  - spec/support/sr25/NUT_DATA.txt
239
245
  - spec/support/sr25/WEIGHT.txt
@@ -258,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
264
  version: '0'
259
265
  requirements: []
260
266
  rubyforge_project:
261
- rubygems_version: 2.1.5
267
+ rubygems_version: 2.0.3
262
268
  signing_key:
263
269
  specification_version: 4
264
270
  summary: A gem to include all the USDA nutrient data quickly into a ruby project
@@ -267,10 +273,12 @@ test_files:
267
273
  - spec/lib/usda_nutrient_database/food_group_spec.rb
268
274
  - spec/lib/usda_nutrient_database/food_spec.rb
269
275
  - spec/lib/usda_nutrient_database/foods_nutrient_spec.rb
276
+ - spec/lib/usda_nutrient_database/footnote_spec.rb
270
277
  - spec/lib/usda_nutrient_database/import/downloader_spec.rb
271
278
  - spec/lib/usda_nutrient_database/import/food_groups_spec.rb
272
279
  - spec/lib/usda_nutrient_database/import/foods_nutrients_spec.rb
273
280
  - spec/lib/usda_nutrient_database/import/foods_spec.rb
281
+ - spec/lib/usda_nutrient_database/import/footnotes_spec.rb
274
282
  - spec/lib/usda_nutrient_database/import/nutrients_spec.rb
275
283
  - spec/lib/usda_nutrient_database/import/weights_spec.rb
276
284
  - spec/lib/usda_nutrient_database/importer_spec.rb
@@ -281,6 +289,7 @@ test_files:
281
289
  - spec/support/sr25.zip
282
290
  - spec/support/sr25/FD_GROUP.txt
283
291
  - spec/support/sr25/FOOD_DES.txt
292
+ - spec/support/sr25/FOOTNOTE.txt
284
293
  - spec/support/sr25/NUTR_DEF.txt
285
294
  - spec/support/sr25/NUT_DATA.txt
286
295
  - spec/support/sr25/WEIGHT.txt