Class: Comida::Plato
- Inherits:
-
Object
- Object
- Comida::Plato
- Defined in:
- lib/comida/plato.rb
Overview
Clase Plato la cual vamos a utilizar para almacenar una lista de alimentos que va a ser la lista que utilizamos para almacenar los alimentos del plato y la otra lista que es la de cantidades utilizadas para cada alimento
Direct Known Subclasses
Instance Attribute Summary collapse
-
#lista_alimentos ⇒ Object
readonly
Nombre del Plato, Lista con los alimentos que forman el plato, Lista con las cantidades que hay que usar de cada alimento.
-
#lista_cantidades ⇒ Object
readonly
Nombre del Plato, Lista con los alimentos que forman el plato, Lista con las cantidades que hay que usar de cada alimento.
-
#nombre_plato ⇒ Object
readonly
Nombre del Plato, Lista con los alimentos que forman el plato, Lista con las cantidades que hay que usar de cada alimento.
Instance Method Summary collapse
-
#calculo_valor_calorico_total ⇒ Object
Calculo del valor calorico del plato en funcion de las proteinas,lipidos e hidratos de carbono que contienen los alimentos usados.
-
#initialize(nombre, alimentos, cantidad) ⇒ Plato
constructor
Metodo inicializar los atributos del Plato.
-
#porcentaje_carbohidratos ⇒ Object
Metodo para calcular el porcentaje total de hidratos de carbono de todos los alimentos que se han usado para crear el plato.
-
#porcentaje_lipidos ⇒ Object
Metodo para calcular el porcentaje total de lipidos de todos los alimentos que se han usado para crear el plato.
-
#porcentaje_proteinas ⇒ Object
Metodo para calcular el porcentaje total de proteinas de todos los alimentos que se han usado para crear el plato.
-
#to_s ⇒ Object
Metodo para formatear la salida de la cantidad de cada alimento con su correspondiente alimento.
Constructor Details
#initialize(nombre, alimentos, cantidad) ⇒ Plato
Metodo inicializar los atributos del Plato
37 38 39 40 41 |
# File 'lib/comida/plato.rb', line 37 def initialize(nombre,alimentos,cantidad) @nombre_plato = nombre # Nombre del Plato @lista_alimentos = alimentos # Lista con los alimentos que forman el plato @lista_cantidades = cantidad # Lista con las cantidades que hay que usar de cada alimento end |
Instance Attribute Details
#lista_alimentos ⇒ Object (readonly)
Nombre del Plato, Lista con los alimentos que forman el plato, Lista con las cantidades que hay que usar de cada alimento
34 35 36 |
# File 'lib/comida/plato.rb', line 34 def lista_alimentos @lista_alimentos end |
#lista_cantidades ⇒ Object (readonly)
Nombre del Plato, Lista con los alimentos que forman el plato, Lista con las cantidades que hay que usar de cada alimento
34 35 36 |
# File 'lib/comida/plato.rb', line 34 def lista_cantidades @lista_cantidades end |
#nombre_plato ⇒ Object (readonly)
Nombre del Plato, Lista con los alimentos que forman el plato, Lista con las cantidades que hay que usar de cada alimento
34 35 36 |
# File 'lib/comida/plato.rb', line 34 def nombre_plato @nombre_plato end |
Instance Method Details
#calculo_valor_calorico_total ⇒ Object
Calculo del valor calorico del plato en funcion de las proteinas,lipidos e hidratos de carbono que contienen los alimentos usados
96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/comida/plato.rb', line 96 def calculo_valor_calorico_total recorrido = lista_alimentos.head cantidad = lista_cantidades.head acumulador = 0 while (recorrido != nil && cantidad != nil) acumulador = acumulador + (((recorrido.value.proteinas * cantidad.value)/1000) * 4) + (((recorrido.value.lipidos * cantidad.value)/1000) * 9) + (((recorrido.value.carbohidratos * cantidad.value)/1000) * 4) recorrido = recorrido.next cantidad = cantidad.next end acumulador.round(2) end |
#porcentaje_carbohidratos ⇒ Object
Metodo para calcular el porcentaje total de hidratos de carbono de todos los alimentos que se han usado para crear el plato
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/comida/plato.rb', line 79 def porcentaje_carbohidratos recorrido = lista_alimentos.head acumulador = 0 porcentaje = 0 while recorrido != nil acumulador = acumulador + recorrido.value.proteinas + recorrido.value.carbohidratos + recorrido.value.lipidos porcentaje = porcentaje + recorrido.value.carbohidratos recorrido = recorrido.next end ((porcentaje * 100)/acumulador).round(2) end |
#porcentaje_lipidos ⇒ Object
Metodo para calcular el porcentaje total de lipidos de todos los alimentos que se han usado para crear el plato
62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/comida/plato.rb', line 62 def porcentaje_lipidos recorrido = lista_alimentos.head acumulador = 0 porcentaje = 0 while recorrido != nil acumulador = acumulador + recorrido.value.proteinas + recorrido.value.carbohidratos + recorrido.value.lipidos porcentaje = porcentaje + recorrido.value.lipidos recorrido = recorrido.next end ((porcentaje * 100)/acumulador).round(2) end |
#porcentaje_proteinas ⇒ Object
Metodo para calcular el porcentaje total de proteinas de todos los alimentos que se han usado para crear el plato
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/comida/plato.rb', line 45 def porcentaje_proteinas recorrido = lista_alimentos.head acumulador = 0 porcentaje = 0 while recorrido != nil acumulador = acumulador + recorrido.value.proteinas + recorrido.value.carbohidratos + recorrido.value.lipidos porcentaje = porcentaje + recorrido.value.proteinas recorrido = recorrido.next end ((porcentaje * 100)/acumulador).round(2) end |
#to_s ⇒ Object
Metodo para formatear la salida de la cantidad de cada alimento con su correspondiente alimento
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/comida/plato.rb', line 112 def to_s recorrido = lista_alimentos.head cantidad = lista_cantidades.head formateo = [] while (recorrido != nil && cantidad != nil) salida = cantidad.value.to_s + "gr de " + recorrido.value.nombre formateo.push(salida) recorrido = recorrido.next cantidad = cantidad.next end formateo end |