Class: Plato
Overview
Representa un plato (conjunto de alimentos)
Modo de uso
carne = Alimento.new(1,2,3,4,5,6) papas = Alimento.new(6,5,4,3,2,1) lista = List.new lista.insert(carne) lista.insert(papas) Plato.new(“carne con papas”, lista)
Direct Known Subclasses
Instance Attribute Summary collapse
-
#nombre ⇒ Object
readonly
Returns the value of attribute nombre.
-
#total_nutricional ⇒ Object
readonly
Returns the value of attribute total_nutricional.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Permite comparar platos por su valor nutricional.
-
#carbohidratos ⇒ Object
Develve los carbohidratos del plato.
-
#initialize(nombre, ingredientes) ⇒ Plato
constructor
Construye un objeto Plato.
-
#kcalorias ⇒ Object
Devuelve las kilocalorías del plato.
-
#lipidos ⇒ Object
Devuelve los lipidos del plato.
-
#proteinas ⇒ Object
Devuelve las proteinas del plato.
-
#to_s ⇒ Object
Devuelve el plato formateado.
Constructor Details
#initialize(nombre, ingredientes) ⇒ Plato
Construye un objeto Plato
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/FoodImpact/plato.rb', line 17 def initialize(nombre,ingredientes) @nombre = nombre @ingredientes = ingredientes food = @ingredientes.head @total_nutricional = 0.0 while food != nil do @total_nutricional += food[:value].proteinas * (food[:value].gramos / 1000.0) @total_nutricional += food[:value].carbohidratos * (food[:value].gramos / 1000.0) @total_nutricional += food[:value].lipidos * (food[:value].gramos / 1000.0) food = food[:next] end end |
Instance Attribute Details
#nombre ⇒ Object (readonly)
Returns the value of attribute nombre.
14 15 16 |
# File 'lib/FoodImpact/plato.rb', line 14 def nombre @nombre end |
#total_nutricional ⇒ Object (readonly)
Returns the value of attribute total_nutricional.
14 15 16 |
# File 'lib/FoodImpact/plato.rb', line 14 def total_nutricional @total_nutricional end |
Instance Method Details
#<=>(other) ⇒ Object
Permite comparar platos por su valor nutricional
86 87 88 |
# File 'lib/FoodImpact/plato.rb', line 86 def <=>(other) @total_nutricional <=> other.total_nutricional end |
#carbohidratos ⇒ Object
Develve los carbohidratos del plato
42 43 44 45 46 47 48 49 50 |
# File 'lib/FoodImpact/plato.rb', line 42 def carbohidratos food = @ingredientes.head carbos = 0.0 while food != nil do carbos += food[:value].carbohidratos * (food[:value].gramos / 1000.0) food = food[:next] end carbos * (100.0 / @total_nutricional) end |
#kcalorias ⇒ Object
Devuelve las kilocalorías del plato
64 65 66 67 68 69 70 71 72 |
# File 'lib/FoodImpact/plato.rb', line 64 def kcalorias food = @ingredientes.head calorias = 0.0 while food != nil do calorias += food[:value].valor_energetico food = food[:next] end calorias end |
#lipidos ⇒ Object
Devuelve los lipidos del plato
53 54 55 56 57 58 59 60 61 |
# File 'lib/FoodImpact/plato.rb', line 53 def lipidos food = @ingredientes.head lipidos = 0.0 while food != nil do lipidos += food[:value].lipidos * (food[:value].gramos / 1000.0) food = food[:next] end lipidos * (100.0 / @total_nutricional) end |
#proteinas ⇒ Object
Devuelve las proteinas del plato
31 32 33 34 35 36 37 38 39 |
# File 'lib/FoodImpact/plato.rb', line 31 def proteinas food = @ingredientes.head protein = 0.0 while food != nil do protein += food[:value].proteinas * (food[:value].gramos / 1000.0) food = food[:next] end protein * (100.0 / @total_nutricional) end |
#to_s ⇒ Object
Devuelve el plato formateado
75 76 77 78 79 80 81 82 83 |
# File 'lib/FoodImpact/plato.rb', line 75 def to_s format = "#{nombre}: " food = @ingredientes.head while food != @ingredientes.tail do format += "#{food[:value].nombre}, " food = food[:next] end format += "#{@ingredientes.tail[:value].nombre}" end |