Class: PlatoHuellaAmbiental

Inherits:
PlatoHuellaNutricional show all
Includes:
Comparable
Defined in:
lib/huella_nutricional/PlatoHuellaAmbiental.rb

Instance Attribute Summary

Attributes inherited from PlatoHuellaNutricional

#acc_cantidad_alimentos, #alimentos, #lista_alimentos, #nombre

Instance Method Summary collapse

Methods inherited from PlatoHuellaNutricional

#alimento, #descripcion, #porcentaje_carbohidratos, #porcentaje_lipidos, #porcentaje_proteinas, #valor_calorico_total

Constructor Details

#initialize(nombre, lista_alimentos, acc_cantidad_alimentos) ⇒ PlatoHuellaAmbiental

Crear un plato (eficiencia energetica)

Parameters:

  • nombre (String)
  • lista_alimentos (Lista)
  • acc_cantidad_alimentos (Float)


19
20
21
22
23
# File 'lib/huella_nutricional/PlatoHuellaAmbiental.rb', line 19

def initialize(nombre,lista_alimentos,acc_cantidad_alimentos)
	super(nombre,lista_alimentos,acc_cantidad_alimentos)
	@emisiones_gei = 0
	@area_terreno_m2 = 0
end

Instance Method Details

#<=>(other) ⇒ true, false

Comparar dos platos segun la huella_nutricional

Parameters:

Returns:

  • (true, false)

    el resultado de la comparaciĆ³n



87
88
89
90
91
# File 'lib/huella_nutricional/PlatoHuellaAmbiental.rb', line 87

def <=> (other)
	if other.is_a? PlatoHuellaNutricional
   		huella_nutricional_plato <=> other.huella_nutricional_plato
   	end
end

#area_terrenoObject

Calcular el area de terreno usada en metros cuadrados



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/huella_nutricional/PlatoHuellaAmbiental.rb', line 48

def area_terreno

	if @area_terreno_m2 == 0

		@lista_alimentos.each do |alimento|

			@area_terreno_m2 += alimento.area_terreno
		end

		@area_terreno_m2 = @area_terreno_m2.round(2)
	end

	@area_terreno_m2
end

#emisiones_geiObject

Calcular las emisiones de gases de efecto invernadero del plato



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/huella_nutricional/PlatoHuellaAmbiental.rb', line 28

def emisiones_gei

	if @emisiones_gei == 0

		@lista_alimentos.each do |alimento|

			@emisiones_gei += alimento.kg_gei
		end

		@emisiones_gei = @emisiones_gei.round(2)
	end


	@emisiones_gei
end

#huella_nutricional_platoObject

indice de impacto de la huella nutricional del plato



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/huella_nutricional/PlatoHuellaAmbiental.rb', line 97

def huella_nutricional_plato

	energia_plato = valor_calorico_total

	ii_energia_plato = 0
	range_energia = [670,830]

	if energia_plato <= range_energia.first
		ii_energia_plato = 1
	elsif energia_plato > range_energia.first && energia_plato <= range_energia.last
		ii_energia_plato = 2
	elsif energia_plato > range_energia.last
		ii_energia_plato = 3
	end

	gei_plato = emisiones_gei

	ii_gei_plato = 0

	range_gei = [800,1200]

	if gei_plato <= range_gei.first
		ii_gei_plato = 1
	elsif gei_plato > range_gei.first && gei_plato <= range_gei.last
		ii_gei_plato = 2
	elsif gei_plato > range_gei.last
		ii_gei_plato = 3
	end
		
	hn_plato = ((ii_gei_plato + ii_energia_plato) / 2).round

end

#parent_to_sObject

Mostrar la salida de la clase formateada

llama al metodo to_s de la clase padre



66
# File 'lib/huella_nutricional/PlatoHuellaAmbiental.rb', line 66

alias parent_to_s to_s

#to_sObject

Mostrar la salida de la clase formateada



72
73
74
75
76
77
78
79
80
# File 'lib/huella_nutricional/PlatoHuellaAmbiental.rb', line 72

def to_s
	s = ""
	
       s += super + "\n\n"

       s += "Emisiones de gases en kg CO2 " + emisiones_gei.to_s + "\n"

       s+= "Cantidad de terreno empleado en m2 " + area_terreno.to_s + "\n"
end