Class: Eficiencia_Energetica

Inherits:
Plato
  • Object
show all
Includes:
Comparable
Defined in:
lib/alimentacion/platos.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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_alimentosObject (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_gramosObject (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_platoObject (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_anualesObject

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_diariosObject

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_nutricionalObject

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_sObject

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_terrenoObject

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