Class: Comida::PlatoHija
- Includes:
- Comparable
- Defined in:
- lib/comida/plato.rb
Overview
Clase PlatoHija la cual vamos a utilizar para almacenar una las emisiones de efecto invernadero y el valor del terreno. Al ser una clase heredada, podremos acceder a los atributos de las clase padre
Instance Attribute Summary collapse
-
#emisiones_diarias ⇒ Object
readonly
Variable para almacenar valor de efceto invernadero, variable para almacenar valor del terreno.
-
#metros_terreno ⇒ Object
readonly
Variable para almacenar valor de efceto invernadero, variable para almacenar valor del terreno.
Attributes inherited from Plato
#lista_alimentos, #lista_cantidades, #nombre_plato
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Definicion del metodo <=> utilizado para comparar la huella nutricional de platos.
-
#calculo_emisiones_diarias ⇒ Object
Metodo empleado para el calculo de las emisiones diarias de efecto invernadero.
-
#calculo_metros_terreno ⇒ Object
Metodo empleado para el calculo de los metros de terreno utilizados para la elaboracion del plato.
-
#huella_nutricional ⇒ Object
Metodo utilizado para el calculo del valor de la huella nutricional del plato, el cual se basa en el dato medio del calculo del valor calorico y el calculo de las emisiones de efecto invernadero.
-
#initialize(nombre, alimentos, cantidad) ⇒ PlatoHija
constructor
Al igual que en la clase padre, inicializacion de los atributos con los que va a trabajar la clase PlatoHija.
-
#to_s ⇒ Object
Metodo para formatear la salida de la cantidad de gases de efecto invernadero de cada alimentos ademas de los metros de terreno empleados.
Methods inherited from Plato
#calculo_valor_calorico_total, #porcentaje_carbohidratos, #porcentaje_lipidos, #porcentaje_proteinas
Constructor Details
#initialize(nombre, alimentos, cantidad) ⇒ PlatoHija
Al igual que en la clase padre, inicializacion de los atributos con los que va a trabajar la clase PlatoHija
149 150 151 152 153 |
# File 'lib/comida/plato.rb', line 149 def initialize(nombre,alimentos,cantidad) super(nombre,alimentos,cantidad) # Llamada al contructor de la clase padre @emisiones_diarias = 0 # Variable para almacenar valor de efceto invernadero @metros_terreno = 0 # variable para almacenar valor del terreno end |
Instance Attribute Details
#emisiones_diarias ⇒ Object (readonly)
Variable para almacenar valor de efceto invernadero, variable para almacenar valor del terreno
138 139 140 |
# File 'lib/comida/plato.rb', line 138 def emisiones_diarias @emisiones_diarias end |
#metros_terreno ⇒ Object (readonly)
Variable para almacenar valor de efceto invernadero, variable para almacenar valor del terreno
138 139 140 |
# File 'lib/comida/plato.rb', line 138 def metros_terreno @metros_terreno end |
Instance Method Details
#<=>(other) ⇒ Object
Definicion del metodo <=> utilizado para comparar la huella nutricional de platos
141 142 143 144 145 |
# File 'lib/comida/plato.rb', line 141 def <=>(other) comparando = self.huella_nutricional comparador = other.huella_nutricional comparando <=> comparador end |
#calculo_emisiones_diarias ⇒ Object
Metodo empleado para el calculo de las emisiones diarias de efecto invernadero
156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/comida/plato.rb', line 156 def calculo_emisiones_diarias recorrido = lista_alimentos.head cantidad = lista_cantidades.head while (recorrido != nil && cantidad != nil) @emisiones_diarias = @emisiones_diarias + ((recorrido.value.gei * cantidad.value)/1000) recorrido = recorrido.next cantidad = cantidad.next end @emisiones_diarias end |
#calculo_metros_terreno ⇒ Object
Metodo empleado para el calculo de los metros de terreno utilizados para la elaboracion del plato
172 173 174 175 176 177 178 179 180 181 182 183 184 |
# File 'lib/comida/plato.rb', line 172 def calculo_metros_terreno recorrido = lista_alimentos.head cantidad = lista_cantidades.head while (recorrido != nil && cantidad != nil) @metros_terreno = @emisiones_diarias + ((recorrido.value.terreno * cantidad.value)/1000) recorrido = recorrido.next cantidad = cantidad.next end @metros_terreno end |
#huella_nutricional ⇒ Object
Metodo utilizado para el calculo del valor de la huella nutricional del plato, el cual se basa en el dato medio del calculo del valor calorico y el calculo de las emisiones de efecto invernadero
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 |
# File 'lib/comida/plato.rb', line 210 def huella_nutricional numero1 = self.calculo_valor_calorico_total numero2 = self.calculo_emisiones_diarias if numero1 < 670 ienergia = 1 elsif numero1 <=830 ienergia = 2 else ienergia = 3 end if numero2 < 800 icarbono = 1 elsif numero2 <= 1200 icarbono = 2 else icarbono = 3 end media = (ienergia + icarbono)/2 end |
#to_s ⇒ Object
Metodo para formatear la salida de la cantidad de gases de efecto invernadero de cada alimentos
ademas de los metros de terreno empleados
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/comida/plato.rb', line 188 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.push(@emisiones_diarias) formateo.push(@metros_terreno) formateo end |