Class: PlatoAmbiental
Overview
platoAmbiental.rb
- Autor
-
Himar Manuel Barquín Carrasco
- Web
Descripción
Clase que hereda de la clase Plato, y que incorpora los atributos gei y terreno, que nos informan de los gases de efecto invernadero y el terreno en metros cuadrados que son necesarios para producir este plato
Métodos
-
to_s
-
calc_vct
-
nutritional_footprint
-
calc_gei
-
calc_terrain
-
<=>
Instance Attribute Summary collapse
-
#gei ⇒ Object
readonly
Returns the value of attribute gei.
-
#terrain ⇒ Object
readonly
Returns the value of attribute terrain.
Attributes inherited from Plato
#food, #name, #percentage_carbohydrates, #percentage_lipids, #percentage_proteins, #quantities, #vct
Instance Method Summary collapse
-
#<=>(another) ⇒ Object
- Permite la comparación de dos ‘platos ambientales’ mediante la huella nutricional Parámetros
- another: objeto PlatoAmbiental que comparar con el objeto invocante Devuelve
-
‘true’ si la comparación es verdadera.
-
#calc_gei ⇒ Object
- Calcula el gas de efecto invernadero que se produce al crear el plato Devuelve
-
GEI del plato.
-
#calc_terrain ⇒ Object
- Calcula el terreno consumido por la producción del plato Devuelve
-
Valor del terreno.
-
#initialize(name, alimentos = [], gramos = []) ⇒ PlatoAmbiental
constructor
- Constructor de la clase PlatoAmbiental Parámetros
-
name: Nombre del plato * alimentos: Conjunto de alimentos que componen el plato * gramos: Cantidades en gramos de cada alimento del plato.
-
-
#nutritional_footprint ⇒ Object
- Calcula la huella nutricional del plato Devuelve
-
Valor de la huella nutricional.
-
#to_s ⇒ Object
- Imprime la información de la clase Plato y le añade la información del GEI y el terreno Devuelve
-
Cadena de texto con la información del plato de la clase Plato y la información del GEI y el terreno.
Methods inherited from Plato
#calc_perc_carbohydrates, #calc_perc_lipids, #calc_perc_proteins, #calc_vct
Constructor Details
#initialize(name, alimentos = [], gramos = []) ⇒ PlatoAmbiental
Constructor de la clase PlatoAmbiental
- Parámetros
-
name: Nombre del plato
-
alimentos: Conjunto de alimentos que componen el plato
-
gramos: Cantidades en gramos de cada alimento del plato
28 29 30 31 32 33 |
# File 'lib/tddAlimentos/platoAmbiental.rb', line 28 def initialize (name, alimentos = [], gramos = []) super(name, alimentos, gramos) @gei = calc_gei @terrain = calc_terrain end |
Instance Attribute Details
#gei ⇒ Object (readonly)
Returns the value of attribute gei.
21 22 23 |
# File 'lib/tddAlimentos/platoAmbiental.rb', line 21 def gei @gei end |
#terrain ⇒ Object (readonly)
Returns the value of attribute terrain.
21 22 23 |
# File 'lib/tddAlimentos/platoAmbiental.rb', line 21 def terrain @terrain end |
Instance Method Details
#<=>(another) ⇒ Object
Permite la comparación de dos ‘platos ambientales’ mediante la huella nutricional
- Parámetros
-
another: objeto PlatoAmbiental que comparar con el objeto invocante
- Devuelve
-
‘true’ si la comparación es verdadera. ‘false’ en otro caso
104 105 106 |
# File 'lib/tddAlimentos/platoAmbiental.rb', line 104 def <=> (another) self.nutritional_footprint <=> another.nutritional_footprint end |
#calc_gei ⇒ Object
Calcula el gas de efecto invernadero que se produce al crear el plato
- Devuelve
-
GEI del plato
74 75 76 77 78 79 80 81 82 83 |
# File 'lib/tddAlimentos/platoAmbiental.rb', line 74 def calc_gei datos = @food.collect { |x| x.gei } gramos = @quantities.collect { |x| x/100.0 } result = 0.0 for i in 0...datos.size result += datos[i] * gramos[i] end result end |
#calc_terrain ⇒ Object
Calcula el terreno consumido por la producción del plato
- Devuelve
-
Valor del terreno
88 89 90 91 92 93 94 95 96 97 |
# File 'lib/tddAlimentos/platoAmbiental.rb', line 88 def calc_terrain datos = @food.collect { |x| x.terrain } gramos = @quantities.collect { |x| x/100.0 } result = 0.0 for i in 0...datos.size result += datos[i] * gramos[i] end result end |
#nutritional_footprint ⇒ Object
Calcula la huella nutricional del plato
- Devuelve
-
Valor de la huella nutricional
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/tddAlimentos/platoAmbiental.rb', line 49 def nutritional_footprint kcal_impact = 0 if @vct < 670 kcal_impact = 1 elsif @vct > 830 kcal_impact = 3 else kcal_impact = 2 end gei_impact = 0 if @gei < 800 gei_impact = 1 elsif @gei > 1200 gei_impact = 3 else gei_impact = 2 end (kcal_impact + gei_impact) / 2.0 end |
#to_s ⇒ Object
Imprime la información de la clase Plato y le añade la información del GEI y el terreno
- Devuelve
-
Cadena de texto con la información del plato de la clase Plato y la información del GEI y el terreno
38 39 40 41 42 43 44 |
# File 'lib/tddAlimentos/platoAmbiental.rb', line 38 def to_s result = "" result += super.to_s result += "\nGEI: #{@gei.round(2)} kgCO2eq" result += "\nTerreno: #{@terrain.round(2)} m2 / año" end |