nutrition data cleanup
This commit is contained in:
parent
2a5301f5d5
commit
fcb827cc77
@ -1,11 +1,11 @@
|
|||||||
class NutritionDataDecorator < BaseDecorator
|
class NutritionDataDecorator < BaseDecorator
|
||||||
|
|
||||||
NutritionData::NUTRIENTS.each do |m|
|
|
||||||
|
|
||||||
def format_number(n)
|
def format_number(n)
|
||||||
'%.1f' % n
|
'%.1f' % n
|
||||||
end
|
end
|
||||||
|
|
||||||
|
NutritionData::NUTRIENTS.keys.each do |m|
|
||||||
|
|
||||||
define_method m do
|
define_method m do
|
||||||
format_number(super())
|
format_number(super())
|
||||||
end
|
end
|
||||||
|
@ -1,38 +1,38 @@
|
|||||||
class NutritionData
|
class NutritionData
|
||||||
|
|
||||||
NUTRIENTS = [
|
NUTRIENTS = {
|
||||||
:protein,
|
protein: 'g Protein',
|
||||||
:lipids,
|
lipids: 'g Fat',
|
||||||
:kcal,
|
kcal: 'Calories',
|
||||||
:fiber,
|
fiber: 'g Fiber',
|
||||||
:sugar,
|
sugar: 'g Sugar',
|
||||||
:carbohydrates,
|
carbohydrates: 'g Carbohydrates',
|
||||||
:calcium,
|
calcium: nil,
|
||||||
:iron,
|
iron: nil,
|
||||||
:magnesium,
|
magnesium: nil,
|
||||||
:phosphorus,
|
phosphorus: nil,
|
||||||
:potassium,
|
potassium: nil,
|
||||||
:sodium,
|
sodium: 'mg Sodium',
|
||||||
:zinc,
|
zinc: nil,
|
||||||
:copper,
|
copper: nil,
|
||||||
:manganese,
|
manganese: nil,
|
||||||
:vit_c,
|
vit_c: nil,
|
||||||
:vit_b6,
|
vit_b6: nil,
|
||||||
:vit_b12,
|
vit_b12: nil,
|
||||||
:vit_a,
|
vit_a: nil,
|
||||||
:vit_e,
|
vit_e: nil,
|
||||||
:vit_d,
|
vit_d: nil,
|
||||||
:vit_k,
|
vit_k: 'µg Vitamin K',
|
||||||
:cholesterol
|
cholesterol: nil
|
||||||
]
|
}
|
||||||
|
|
||||||
attr_reader :errors
|
attr_reader :errors
|
||||||
attr_reader *NUTRIENTS
|
attr_reader *NUTRIENTS.keys
|
||||||
|
|
||||||
def initialize(recipe_ingredients)
|
def initialize(recipe_ingredients)
|
||||||
@errors = []
|
@errors = []
|
||||||
|
|
||||||
NUTRIENTS.each do |n|
|
NUTRIENTS.keys.each do |n|
|
||||||
self.instance_variable_set("@#{n}".to_sym, 0.0)
|
self.instance_variable_set("@#{n}".to_sym, 0.0)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -50,8 +50,9 @@ class NutritionData
|
|||||||
|
|
||||||
valid_ingredients.each do |i|
|
valid_ingredients.each do |i|
|
||||||
grams = i.to_grams
|
grams = i.to_grams
|
||||||
|
missing = []
|
||||||
|
|
||||||
NUTRIENTS.each do |k|
|
NUTRIENTS.each do |k, n|
|
||||||
value = i.ingredient.send(k)
|
value = i.ingredient.send(k)
|
||||||
if value.present?
|
if value.present?
|
||||||
value = value.to_f
|
value = value.to_f
|
||||||
@ -59,12 +60,17 @@ class NutritionData
|
|||||||
delta = (grams / 100.0) * value
|
delta = (grams / 100.0) * value
|
||||||
self.instance_variable_set("@#{k}".to_sym, running_total + delta)
|
self.instance_variable_set("@#{k}".to_sym, running_total + delta)
|
||||||
else
|
else
|
||||||
@errors << "#{i.name} missing #{k} data"
|
missing << k
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
NUTRIENTS.each do |k|
|
missing = missing.map { |k| NUTRIENTS[k] }.compact
|
||||||
|
unless missing.empty?
|
||||||
|
@errors << "#{i.name} missing the following nutrients: #{missing.join(', ')}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
NUTRIENTS.each do |k, n|
|
||||||
v = self.instance_variable_get("@#{k}".to_sym)
|
v = self.instance_variable_get("@#{k}".to_sym)
|
||||||
self.instance_variable_set("@#{k}".to_sym, v.round(2))
|
self.instance_variable_set("@#{k}".to_sym, v.round(2))
|
||||||
end
|
end
|
||||||
|
@ -83,9 +83,9 @@
|
|||||||
<div class="col-xs-12">
|
<div class="col-xs-12">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h3 class="panel-title">Nutrition Data</h3>
|
<h3 class="panel-title"><a href="#nutrition_panel" data-toggle="collapse">Nutrition Data</a></h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div id="nutrition_panel" class="panel-body collapse">
|
||||||
<% decorate(@recipe.nutrition_data, NutritionDataDecorator) do |nutrition_data| %>
|
<% decorate(@recipe.nutrition_data, NutritionDataDecorator) do |nutrition_data| %>
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
|
Loading…
Reference in New Issue
Block a user