Class: Eficiencia_Energetica
- Includes:
- Comparable
- Defined in:
- lib/alimentacion/platos.rb
Instance Attribute Summary collapse
-
#lista_alimentos ⇒ Object
readonly
Returns the value of attribute lista_alimentos.
-
#lista_gramos ⇒ Object
readonly
Returns the value of attribute lista_gramos.
-
#nombre_plato ⇒ Object
readonly
Returns the value of attribute nombre_plato.
Instance Method Summary collapse
-
#<=>(anOther) ⇒ Object
Se utiliza el módulo Comparable, comparando los alimentos en base a su huella nutricional.
-
#emisiones_gases_anuales ⇒ Object
Se calculan las emisiones anuales de gases de efecto invernadero que produce el plato.
-
#emisiones_gases_diarios ⇒ Object
Se calculan las emisiones diarias de gases de efecto invernadero que produce el plato.
-
#huella_nutricional ⇒ Object
Se calcula la huella nutricional del plato.
-
#initialize(nombre_plato, lista_alimentos, lista_gramos) ⇒ Eficiencia_Energetica
constructor
Se asignan el nombre del plato, la lista de alimentos que lo contienen y la lista de gramos de cada alimento.
-
#to_s ⇒ Object
Se obtiene la información de gases y terreno formateada.
-
#uso_terreno ⇒ Object
Se calcula el uso del terreno anual que produce el plato.
Methods inherited from Plato
#porcentaje_hidratos, #porcentaje_lipidos, #porcentaje_proteinas, #valor_calorico
Constructor Details
#initialize(nombre_plato, lista_alimentos, lista_gramos) ⇒ Eficiencia_Energetica
Se asignan el nombre del plato, la lista de alimentos que lo contienen y la lista de gramos de cada alimento.
132 133 134 |
# File 'lib/alimentacion/platos.rb', line 132 def initialize(nombre_plato, lista_alimentos, lista_gramos) super(nombre_plato, lista_alimentos, lista_gramos) end |
Instance Attribute Details
#lista_alimentos ⇒ Object (readonly)
Returns the value of attribute lista_alimentos.
122 123 124 |
# File 'lib/alimentacion/platos.rb', line 122 def lista_alimentos @lista_alimentos end |
#lista_gramos ⇒ Object (readonly)
Returns the value of attribute lista_gramos.
122 123 124 |
# File 'lib/alimentacion/platos.rb', line 122 def lista_gramos @lista_gramos end |
#nombre_plato ⇒ Object (readonly)
Returns the value of attribute nombre_plato.
122 123 124 |
# File 'lib/alimentacion/platos.rb', line 122 def nombre_plato @nombre_plato end |
Instance Method Details
#<=>(anOther) ⇒ Object
Se utiliza el módulo Comparable, comparando los alimentos en base a su huella nutricional.
126 127 128 129 |
# File 'lib/alimentacion/platos.rb', line 126 def <=>(anOther) #self.uso_terreno <=> anOther.uso_terreno self.huella_nutricional <=> anOther.huella_nutricional end |
#emisiones_gases_anuales ⇒ Object
Se calculan las emisiones anuales de gases de efecto invernadero que produce el plato
137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/alimentacion/platos.rb', line 137 def emisiones_gases_anuales aux = @lista_alimentos.head aux2 = @lista_gramos.head suma_gases_anuales = 0 while (!aux.nil?) suma_gases_anuales += aux[:value].auxiliar(aux2[:value]) aux = aux[:next] aux2 = aux2[:next] end return suma_gases_anuales.round(2) end |
#emisiones_gases_diarios ⇒ Object
Se calculan las emisiones diarias de gases de efecto invernadero que produce el plato
151 152 153 154 |
# File 'lib/alimentacion/platos.rb', line 151 def emisiones_gases_diarios suma = (emisiones_gases_anuales / 365) return suma.round(3) end |
#huella_nutricional ⇒ Object
Se calcula la huella nutricional del plato
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/alimentacion/platos.rb', line 177 def huella_nutricional if (valor_calorico < 670) aux = 1 elsif (valor_calorico < 830) aux = 2 else aux = 3 end if (emisiones_gases_anuales < 0.8) aux2 = 1 elsif (emisiones_gases_anuales < 1.2) aux2 = 2 else aux2 = 3 end return ((aux+aux2)/2.0).round(2) end |
#to_s ⇒ Object
Se obtiene la información de gases y terreno formateada
171 172 173 174 |
# File 'lib/alimentacion/platos.rb', line 171 def to_s "( #{self.emisiones_gases_anuales}, #{self.emisiones_gases_diarios}, #{self.uso_terreno} )" end |
#uso_terreno ⇒ Object
Se calcula el uso del terreno anual que produce el plato
157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/alimentacion/platos.rb', line 157 def uso_terreno aux = @lista_alimentos.head aux2 = @lista_gramos.head suma_terreno = 0 while (!aux.nil?) suma_terreno += aux[:value].auxiliar2(aux2[:value]) aux = aux[:next] aux2 = aux2[:next] end return suma_terreno.round(2) end |