diet 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- data/features/diet_committees.feature +20 -1
- data/lib/diet.rb +0 -10
- data/lib/diet/carbon_model.rb +2 -2
- metadata +8 -10
- data/lib/test_support/db/schema.rb +0 -27
@@ -1,7 +1,7 @@
|
|
1
1
|
Feature: Diet Committee Calculations
|
2
2
|
The diet model should generate correct committee calculations
|
3
3
|
|
4
|
-
Scenario Outline:
|
4
|
+
Scenario Outline: Intensity committee from diet class
|
5
5
|
Given a diet emitter
|
6
6
|
And a characteristic "diet_class.name" of "<diet_class>"
|
7
7
|
When the "intensity" committee is calculated
|
@@ -11,3 +11,22 @@
|
|
11
11
|
| standard | 3.78 |
|
12
12
|
| vegan | 2.57 |
|
13
13
|
| vegetarian | 3.01 |
|
14
|
+
|
15
|
+
Scenario Outline: Intensity committee from food groups
|
16
|
+
Given a diet emitter
|
17
|
+
And a characteristic "red_meat_share" of "<meat>"
|
18
|
+
And a characteristic "poultry_share" of "<poultry>"
|
19
|
+
And a characteristic "fish_share" of "<fish>"
|
20
|
+
And a characteristic "eggs_share" of "<eggs>"
|
21
|
+
And a characteristic "nuts_share" of "<nuts>"
|
22
|
+
And a characteristic "dairy_share" of "<dairy>"
|
23
|
+
And a characteristic "cereals_and_grains_share" of "<cereals>"
|
24
|
+
And a characteristic "fruit_share" of "<fruit>"
|
25
|
+
And a characteristic "vegetables_share" of "<veg>"
|
26
|
+
And a characteristic "oils_and_sugars_share" of "<oil>"
|
27
|
+
When the "intensity" committee is calculated
|
28
|
+
Then the committee should have used quorum "from food groups"
|
29
|
+
And the conclusion of the committee should be "<intensity>"
|
30
|
+
Examples:
|
31
|
+
| meat | poultry | fish | eggs | nuts | dairy | cereals | fruit | veg | oil | intensity |
|
32
|
+
| 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 5 |
|
data/lib/diet.rb
CHANGED
@@ -3,15 +3,5 @@ require 'emitter'
|
|
3
3
|
module BrighterPlanet
|
4
4
|
module Diet
|
5
5
|
extend BrighterPlanet::Emitter
|
6
|
-
|
7
|
-
def self.diet_model
|
8
|
-
if Object.const_defined? 'Diet'
|
9
|
-
::Diet
|
10
|
-
elsif Object.const_defined? 'DietRecord'
|
11
|
-
DietRecord
|
12
|
-
else
|
13
|
-
raise 'There is no diet model'
|
14
|
-
end
|
15
|
-
end
|
16
6
|
end
|
17
7
|
end
|
data/lib/diet/carbon_model.rb
CHANGED
@@ -15,8 +15,8 @@ module BrighterPlanet
|
|
15
15
|
|
16
16
|
committee :intensity do # returns grams CO2 / kcal food
|
17
17
|
quorum 'from food groups', :needs => [:red_meat_share, :poultry_share, :fish_share, :eggs_share, :nuts_share, :dairy_share, :cereals_and_grains_share, :fruit_share, :vegetables_share, :oils_and_sugars_share] do |characteristics|
|
18
|
-
[:
|
19
|
-
characteristics[group] * FoodGroup[group].intensity
|
18
|
+
[:red_meat, :poultry, :fish, :eggs, :nuts, :dairy, :cereals_and_grains, :fruit, :vegetables, :oils_and_sugars].sum do |group|
|
19
|
+
characteristics["#{group}_share".to_sym].to_f * FoodGroup[group].intensity.to_f
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 15
|
10
|
+
version: 0.0.15
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andy Rossmeissl
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date: 2010-09-
|
22
|
+
date: 2010-09-27 00:00:00 -04:00
|
23
23
|
default_executable:
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
@@ -141,12 +141,12 @@ dependencies:
|
|
141
141
|
requirements:
|
142
142
|
- - ~>
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
hash:
|
144
|
+
hash: 23
|
145
145
|
segments:
|
146
146
|
- 0
|
147
|
-
-
|
148
|
-
-
|
149
|
-
version: 0.
|
147
|
+
- 2
|
148
|
+
- 0
|
149
|
+
version: 0.2.0
|
150
150
|
requirement: *id008
|
151
151
|
- !ruby/object:Gem::Dependency
|
152
152
|
type: :runtime
|
@@ -181,7 +181,6 @@ files:
|
|
181
181
|
- lib/diet/characterization.rb
|
182
182
|
- lib/diet/data.rb
|
183
183
|
- lib/diet/summarization.rb
|
184
|
-
- lib/test_support/db/schema.rb
|
185
184
|
- lib/test_support/diet_record.rb
|
186
185
|
- features/support/env.rb
|
187
186
|
- features/diet_committees.feature
|
@@ -224,5 +223,4 @@ test_files:
|
|
224
223
|
- features/support/env.rb
|
225
224
|
- features/diet_committees.feature
|
226
225
|
- features/diet_emissions.feature
|
227
|
-
- lib/test_support/db/schema.rb
|
228
226
|
- lib/test_support/diet_record.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'sniff/database'
|
2
|
-
|
3
|
-
Sniff::Database.define_schema do
|
4
|
-
create_table "diet_records", :force => true do |t|
|
5
|
-
t.string "name"
|
6
|
-
t.integer "profile_id"
|
7
|
-
t.integer "diet_class_id"
|
8
|
-
t.float "proximity"
|
9
|
-
t.float "conventionality"
|
10
|
-
t.integer "size"
|
11
|
-
t.float "intensity"
|
12
|
-
t.datetime "created_at"
|
13
|
-
t.datetime "updated_at"
|
14
|
-
t.float "red_meat_share"
|
15
|
-
t.float "poultry_share"
|
16
|
-
t.float "fish_share"
|
17
|
-
t.float "eggs_share"
|
18
|
-
t.float "nuts_share"
|
19
|
-
t.float "dairy_share"
|
20
|
-
t.float "cereals_and_grains_share"
|
21
|
-
t.float "fruit_share"
|
22
|
-
t.float "vegetables_share"
|
23
|
-
t.float "oils_and_sugars_share"
|
24
|
-
t.date "start_date"
|
25
|
-
t.date "end_date"
|
26
|
-
end
|
27
|
-
end
|