Class: MejorPlato
Instance Attribute Summary
Attributes inherited from Plato
#conjuntoAlimentos, #conjuntoCantidades, #nombrePlato
Class Method Summary collapse
-
.aumentarPrecios(arrayPrecios, menu) ⇒ Array[Float]
Dado un array de platos y un array de precios, incrementa el array de los precios en base al plato con mayor Huella Nutricional del array de platos.
Instance Method Summary collapse
-
#<=>(another) ⇒ Object
Sobreescritura de la funcion <=> de la clase Comparable para comparar dos elementos.
-
#costeTerreno ⇒ Double
Cantidad de m2 que han necesitado ser utilizados para producir el plato.
-
#eficienciaEnergetica ⇒ Double
Eficiencia energética del plato (kilocalorias).
-
#emisionInvernadero ⇒ Double
Cantidad de gases de efecto invernadero liberados por el plato en cuestión.
-
#huellaNutricional ⇒ Integer
Devuelve un entero en un rango [1 - 3] que indica el impacto medioambiental del plato según su valor calórico total y sus emisiones de efecto invernadero.
-
#indicadorCarbono ⇒ Object
Vease #huellaNutricional.
-
#indicadorEnergia ⇒ Object
Vease #huellaNutricional.
-
#initialize(nombrePlato, conjuntoAlimentos, conjuntoCantidades) ⇒ MejorPlato
constructor
A new instance of MejorPlato.
Methods inherited from Plato
#alimento, #conjuntoPorcentaje, #nombre, #porCarbohidratos, #porLipidos, #porProteinas, #to_s, #valorCaloricoTotal
Constructor Details
#initialize(nombrePlato, conjuntoAlimentos, conjuntoCantidades) ⇒ MejorPlato
Returns a new instance of MejorPlato.
11 12 13 |
# File 'lib/practica6/mejorplatos.rb', line 11 def initialize(nombrePlato, conjuntoAlimentos, conjuntoCantidades) super(nombrePlato, conjuntoAlimentos, conjuntoCantidades) end |
Class Method Details
.aumentarPrecios(arrayPrecios, menu) ⇒ Array[Float]
Dado un array de platos y un array de precios, incrementa el array de los precios en base al plato con mayor Huella Nutricional del array de platos.
110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/practica6/mejorplatos.rb', line 110 def self.aumentarPrecios(arrayPrecios, ) if(.max.huellaNutricional== 1) arrayPrecios.map{ |a| a * 2} elsif(.max.huellaNutricional== 2) arrayPrecios.map{ |a| a * 3} elsif(.max.huellaNutricional== 3) arrayPrecios.map{ |a| a * 4} else return -1 end end |
Instance Method Details
#<=>(another) ⇒ Object
Sobreescritura de la funcion <=> de la clase Comparable para comparar dos elementos
96 97 98 99 100 |
# File 'lib/practica6/mejorplatos.rb', line 96 def <=>(another) if another.class== MejorPlato huellaNutricional<=> another.huellaNutricional end end |
#costeTerreno ⇒ Double
Cantidad de m2 que han necesitado ser utilizados para producir el plato.
33 34 35 36 37 38 39 |
# File 'lib/practica6/mejorplatos.rb', line 33 def costeTerreno coste= 0.0.to_d conjuntoAlimentos.size.times do |i| coste+= (conjuntoAlimentos[i].costeTerreno.to_d)* (conjuntoCantidades[i].to_d/1000.0) end return coste end |
#eficienciaEnergetica ⇒ Double
Eficiencia energética del plato (kilocalorias)
46 47 48 49 50 51 52 |
# File 'lib/practica6/mejorplatos.rb', line 46 def eficienciaEnergetica eficiencia= 0.0.to_d conjuntoAlimentos.size.times do |i| eficiencia+= (conjuntoAlimentos[i].kilocalorias.to_d)* (conjuntoCantidades[i].to_d/1000.0) end return eficiencia end |
#emisionInvernadero ⇒ Double
Cantidad de gases de efecto invernadero liberados por el plato en cuestión.
20 21 22 23 24 25 26 |
# File 'lib/practica6/mejorplatos.rb', line 20 def emisionInvernadero emision= 0.0.to_d conjuntoAlimentos.size.times do |i| emision+= (conjuntoAlimentos[i].GEI.to_d)* (conjuntoCantidades[i].to_d/100.0) end return emision end |
#huellaNutricional ⇒ Integer
Devuelve un entero en un rango [1 - 3] que indica el impacto medioambiental del plato según su valor calórico total y sus emisiones de efecto invernadero.
61 62 63 |
# File 'lib/practica6/mejorplatos.rb', line 61 def huellaNutricional return (indicadorEnergia.to_i+ indicadorCarbono.to_i)/2.to_i end |
#indicadorCarbono ⇒ Object
Vease #huellaNutricional
81 82 83 84 85 86 87 88 89 |
# File 'lib/practica6/mejorplatos.rb', line 81 def indicadorCarbono if(emisionInvernadero< 800) return 1 elsif(emisionInvernadero> 1200) return 3 else return 2 end end |
#indicadorEnergia ⇒ Object
Vease #huellaNutricional
68 69 70 71 72 73 74 75 76 |
# File 'lib/practica6/mejorplatos.rb', line 68 def indicadorEnergia if(valorCaloricoTotal< 670) return 1 elsif(valorCaloricoTotal> 830) return 3 else return 2 end end |