usda-nutrient-database 1.0.0 → 1.0.1

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: 9ca876c3b4ec8508dd27dbc60a016c0e2ce56e7b
4
- data.tar.gz: f7d7ba3c4c77d2a25cdcaf282c635f23e786358a
3
+ metadata.gz: 96482305951055aefdd578c867660a91161857c8
4
+ data.tar.gz: 9fd2e0ae747263dd13b83c289d8438e7d30460bd
5
5
  SHA512:
6
- metadata.gz: f9df68143bd1cba24a4f4e81a990c3c6942921fb6360c71f47f4aaf4d11c935e37f77a1f8d1109364ac23c314a87b6ad7477a9683f6786775153be6242502ac7
7
- data.tar.gz: 59d438d54e7e9952030b416edd1e36fc48e618f012ffc47c7efac1a8b7d7ee5c9955a41b13f95e5cbee9a119bbf168ca3ea7448385cebac186ffb63610164d6d
6
+ metadata.gz: 1e3538708c3edda458fab78344858f947701d96df77aa5be766be7f16e900128ddb76b46a06134c5995340f23bb86afc58bd6686150f3c18ace1772402df1015
7
+ data.tar.gz: 41692f998af17c5cf8ca1a776893228f92a392da20253fd1dbb7242c6dd181db754eca55d1ad3e221ee30a9a718cbbc5acbdc87d138328865a43338cb77610d5
data/.travis.yml ADDED
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
5
+ - jruby-19mode
6
+ before_install:
7
+ - gem update --system
8
+ - gem install bundler
9
+ - gem install rake
10
+ script:
11
+ - bundle exec rspec spec/
data/README.md CHANGED
@@ -1,3 +1,15 @@
1
+ [![Stories in Ready](https://badge.waffle.io/mattbeedle/usda-nutrient-database.png?label=ready)](https://waffle.io/mattbeedle/usda-nutrient-database)
2
+ [![Code
3
+ Climate](https://codeclimate.com/github/mattbeedle/usda-nutrient-database.png)](https://codeclimate.com/github/mattbeedle/usda-nutrient-database)
4
+ [![Build
5
+ Status](https://travis-ci.org/mattbeedle/usda-nutrient-database.png?branch=master)](https://travis-ci.org/mattbeedle/usda-nutrient-database)
6
+ [![Coverage
7
+ Status](https://coveralls.io/repos/mattbeedle/usda-nutrient-database/badge.png)](https://coveralls.io/r/mattbeedle/usda-nutrient-database)
8
+ [![Dependency
9
+ Status](https://gemnasium.com/mattbeedle/usda-nutrient-database.png)](https://gemnasium.com/mattbeedle/usda-nutrient-database)
10
+ [![Gem
11
+ Version](https://badge.fury.io/rb/usda-nutrient-database.png)](http://badge.fury.io/rb/usda-nutrient-database)
12
+
1
13
  # USDA Nutrient Database
2
14
 
3
15
  The USDA nutrition database is a great source of nutrition information. However,
@@ -9,7 +9,15 @@ 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'
12
+ has_many :footnotes, class_name: 'UsdaNutrientDatabase::Footnote',
13
+ foreign_key: :nutrient_databank_number
14
+ has_many :weights, class_name: 'UsdaNutrientDatabase::Weight',
15
+ foreign_key: :nutrient_databank_number
16
+ has_many :foods_nutrients,
17
+ class_name: 'UsdaNutrientDatabase::FoodsNutrient',
18
+ foreign_key: :nutrient_databank_number, dependent: :nullify
19
+ has_many :nutrients, class_name: 'UsdaNutrientDatabase::Nutrient',
20
+ through: :foods_nutrients
13
21
 
14
22
  belongs_to :food_group, class_name: 'UsdaNutrientDatabase::FoodGroup',
15
23
  foreign_key: :food_group_code
@@ -7,6 +7,6 @@ module UsdaNutrientDatabase
7
7
  validates :description, presence: true
8
8
 
9
9
  has_many :foods, class_name: 'UsdaNutrientDatabase::Food',
10
- dependent: :destroy
10
+ dependent: :destroy, foreign_key: :food_group_code
11
11
  end
12
12
  end
@@ -13,8 +13,11 @@ module UsdaNutrientDatabase
13
13
 
14
14
  has_many :foods_nutrients,
15
15
  class_name: 'UsdaNutrientDatabase::FoodsNutrient',
16
- dependent: :destroy
17
-
18
- has_many :footnotes, class_name: 'UsdaNutrientDatabase::Footnote'
16
+ dependent: :destroy, foreign_key: :nutrient_number,
17
+ dependent: :nullify
18
+ has_many :foods, class_name: 'UsdaNutrientDatabase::Food',
19
+ through: :foods_nutrients
20
+ has_many :footnotes, class_name: 'UsdaNutrientDatabase::Footnote',
21
+ foreign_key: :nutrient_number
19
22
  end
20
23
  end
@@ -1,3 +1,3 @@
1
1
  module UsdaNutrientDatabase
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
@@ -9,5 +9,8 @@ module UsdaNutrientDatabase
9
9
  validates :amount, presence: true
10
10
  validates :measurement_description, presence: true
11
11
  validates :gram_weight, presence: true
12
+
13
+ belongs_to :food, class_name: 'UsdaNutrientDatabase::Food',
14
+ foreign_key: :nutrient_databank_number
12
15
  end
13
16
  end
data/spec/spec_helper.rb CHANGED
@@ -4,11 +4,15 @@ require 'logger'
4
4
 
5
5
  Bundler.setup
6
6
 
7
+ require 'coveralls'
8
+ Coveralls.wear!
9
+
7
10
  require 'active_record'
8
11
  require 'database_cleaner'
9
12
  require 'usda-nutrient-database'
10
13
  require 'shoulda-matchers'
11
14
  require 'webmock/rspec'
15
+ require_relative 'support/database'
12
16
 
13
17
  UsdaNutrientDatabase.configure do |config|
14
18
  config.perform_logging = false
@@ -24,6 +28,8 @@ RSpec.configure do |config|
24
28
  config.run_all_when_everything_filtered = true
25
29
  config.filter_run :focus
26
30
 
31
+ include Database
32
+
27
33
  # Run specs in random order to surface order dependencies. If you find an
28
34
  # order dependency and want to debug it, you can fix the order by providing
29
35
  # the seed, which is printed after each run.
@@ -37,6 +43,8 @@ RSpec.configure do |config|
37
43
  ActiveRecord::Base.configurations = YAML.load_file(database_yml)
38
44
  db_config = ActiveRecord::Base.configurations[db_name]
39
45
 
46
+ setup_database(db_name, db_config)
47
+
40
48
  begin
41
49
  ActiveRecord::Base.establish_connection(db_name)
42
50
  ActiveRecord::Base.connection
@@ -0,0 +1,28 @@
1
+ module Database
2
+ def setup_database(db_name, db_config)
3
+ setup_pg(db_name, db_config) if RUBY_PLATFORM == 'ruby'
4
+ setup_jdbc(db_name, db_config) if RUBY_PLATFORM == 'java'
5
+ end
6
+
7
+ def setup_pg(db_name, db_config)
8
+ begin
9
+ ActiveRecord::Base.establish_connection(db_name)
10
+ ActiveRecord::Base.connection
11
+ rescue PG::ConnectionBad
12
+ ActiveRecord::Base.establish_connection db_config.merge('database' => nil)
13
+ ActiveRecord::Base.connection.create_database db_config['database']
14
+ ActiveRecord::Base.establish_connection db_config
15
+ end
16
+ end
17
+
18
+ def setup_jdbc(db_name, db_config)
19
+ begin
20
+ ActiveRecord::Base.establish_connection(db_name)
21
+ ActiveRecord::Base.connection
22
+ rescue ActiveRecord::JDBCError
23
+ ActiveRecord::Base.establish_connection db_config.merge('database' => nil)
24
+ ActiveRecord::Base.connection.create_database db_config['database']
25
+ ActiveRecord::Base.establish_connection db_config
26
+ end
27
+ end
28
+ end
@@ -22,11 +22,15 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency 'faraday'
23
23
  spec.add_runtime_dependency 'rubyzip'
24
24
 
25
+ if RUBY_PLATFORM == 'java'
26
+ spec.add_development_dependency 'activerecord-jdbcpostgresql-adapter'
27
+ end
25
28
  spec.add_development_dependency 'bundler', '~> 1.3'
29
+ spec.add_development_dependency 'coveralls'
26
30
  spec.add_development_dependency 'database_cleaner'
27
31
  spec.add_development_dependency 'guard'
28
32
  spec.add_development_dependency 'guard-rspec'
29
- spec.add_development_dependency 'pg'
33
+ spec.add_development_dependency 'pg' if RUBY_PLATFORM != 'java'
30
34
  spec.add_development_dependency 'rake'
31
35
  spec.add_development_dependency 'rspec'
32
36
  spec.add_development_dependency 'shoulda-matchers'
metadata CHANGED
@@ -1,181 +1,195 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usda-nutrient-database
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
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-27 00:00:00.000000000 Z
11
+ date: 2013-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.0.0
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.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubyzip
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: coveralls
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'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: database_cleaner
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - '>='
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: '0'
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
96
  version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: guard
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - '>='
101
+ - - ">="
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
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
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: guard-rspec
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - '>='
115
+ - - ">="
102
116
  - !ruby/object:Gem::Version
103
117
  version: '0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - '>='
122
+ - - ">="
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: pg
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - '>='
129
+ - - ">="
116
130
  - !ruby/object:Gem::Version
117
131
  version: '0'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - '>='
136
+ - - ">="
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: rake
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - '>='
143
+ - - ">="
130
144
  - !ruby/object:Gem::Version
131
145
  version: '0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - '>='
150
+ - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: rspec
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - '>='
157
+ - - ">="
144
158
  - !ruby/object:Gem::Version
145
159
  version: '0'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - '>='
164
+ - - ">="
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: shoulda-matchers
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - '>='
171
+ - - ">="
158
172
  - !ruby/object:Gem::Version
159
173
  version: '0'
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - '>='
178
+ - - ">="
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: webmock
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - '>='
185
+ - - ">="
172
186
  - !ruby/object:Gem::Version
173
187
  version: '0'
174
188
  type: :development
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
- - - '>='
192
+ - - ">="
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0'
181
195
  description: A gem to include all the USDA nutrient data quickly into a ruby project
@@ -185,8 +199,9 @@ executables: []
185
199
  extensions: []
186
200
  extra_rdoc_files: []
187
201
  files:
188
- - .gitignore
189
- - .rspec
202
+ - ".gitignore"
203
+ - ".rspec"
204
+ - ".travis.yml"
190
205
  - CHANGELOG.md
191
206
  - Gemfile
192
207
  - Guardfile
@@ -242,6 +257,7 @@ files:
242
257
  - spec/lib/usda_nutrient_database/weight_spec.rb
243
258
  - spec/schema.rb
244
259
  - spec/spec_helper.rb
260
+ - spec/support/database.rb
245
261
  - spec/support/sr25.zip
246
262
  - spec/support/sr25/FD_GROUP.txt
247
263
  - spec/support/sr25/FOOD_DES.txt
@@ -261,17 +277,17 @@ require_paths:
261
277
  - lib
262
278
  required_ruby_version: !ruby/object:Gem::Requirement
263
279
  requirements:
264
- - - '>='
280
+ - - ">="
265
281
  - !ruby/object:Gem::Version
266
282
  version: '0'
267
283
  required_rubygems_version: !ruby/object:Gem::Requirement
268
284
  requirements:
269
- - - '>='
285
+ - - ">="
270
286
  - !ruby/object:Gem::Version
271
287
  version: '0'
272
288
  requirements: []
273
289
  rubyforge_project:
274
- rubygems_version: 2.0.3
290
+ rubygems_version: 2.2.0.rc.1
275
291
  signing_key:
276
292
  specification_version: 4
277
293
  summary: A gem to include all the USDA nutrient data quickly into a ruby project
@@ -295,6 +311,7 @@ test_files:
295
311
  - spec/lib/usda_nutrient_database/weight_spec.rb
296
312
  - spec/schema.rb
297
313
  - spec/spec_helper.rb
314
+ - spec/support/database.rb
298
315
  - spec/support/sr25.zip
299
316
  - spec/support/sr25/FD_GROUP.txt
300
317
  - spec/support/sr25/FOOD_DES.txt