Class: Food
Instance Attribute Summary collapse
-
#amount ⇒ Object
Devuelve el valor del atributo.
-
#carbohydrates ⇒ Object
Devuelve el valor del atributo.
-
#eficiencia_energetica ⇒ Object
readonly
Returns the value of attribute eficiencia_energetica.
-
#gei ⇒ Object
Devuelve el valor del atributo.
-
#ground ⇒ Object
Devuelve el valor del atributo.
-
#lipids ⇒ Object
Devuelve el valor del atributo.
-
#name ⇒ Object
Devuelve el valor del atributo.
-
#proteins ⇒ Object
Devuelve el valor del atributo.
Instance Method Summary collapse
-
#<=>(other) ⇒ Boolean
Se redefine la comparación para que se realice en base a la eficiencia energética.
-
#calculate_kcal ⇒ Float
Calcula la cantidad de kcal que produce el alimento.
-
#calculate_kcal_ground ⇒ Float
Calcula las kcal que produce el alimento por m² utilizado (kcal/m²) mediante la siguiente regla de tres: uso de terreno m² —–> kcal que produce el alimento 1m² —–> ?kcal/m².
-
#get_amount ⇒ Float
Devuelve la cantidad de alimento.
-
#get_carbohydrates ⇒ Float
Devuelve la cantidad de carbohidratos del alimento.
-
#get_eficiencia_energetica ⇒ Float
Se calcula la eficiencia energética del alimento mediante las kcal generadas y los gases de efecto invernadero por metro² necesarios para generar dichas kcal.
-
#get_gei ⇒ Float
Devuelve la cantidad de gases de efecto invernadero que genera el alimento.
-
#get_gei_ground ⇒ Float
Se calculan los gases de efecto invernadero generados por kcal por m².
-
#get_gei_kcal ⇒ Float
Se calculan los gases de efecto invernadero generados por kcal.
-
#get_ground ⇒ Float
Devuelve la cantidad de uso del terreno para generar el alimento.
-
#get_kcal ⇒ Float
Devuelve la cantidad de kcal que aporta el alimento.
-
#get_kcal_ground ⇒ Float
Devuelve la cantidad de kcal generadas por m² del alimento.
-
#get_lipids ⇒ Float
Devuelve la cantidad de lípidos del alimento.
-
#get_name ⇒ String
Devuelve el nombre del alimento.
-
#get_proteins ⇒ Float
Devuelve la cantidad de proteínas del alimento.
-
#initialize(name, proteins, carbohydrates, lipids, gei, ground, amount) ⇒ Food
constructor
Inicializa el objeto de la clase Food.
-
#to_s ⇒ String
Devuelve el alimento formateado con toda su información alimentaria.
Constructor Details
#initialize(name, proteins, carbohydrates, lipids, gei, ground, amount) ⇒ Food
Inicializa el objeto de la clase Food
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/alimento.rb', line 27 def initialize(name, proteins, carbohydrates, lipids, gei, ground, amount) @name = name @proteins = ((amount * proteins)/100).ceil(2) @carbohydrates = ((amount * carbohydrates)/100).ceil(2) @lipids = ((amount * lipids)/100).ceil(2) @gei = ((amount * gei)/1000).ceil(2) @ground = ((amount * ground)/1000).ceil(2) @amount = amount @eficiencia_energetica = get_eficiencia_energetica end |
Instance Attribute Details
#amount ⇒ Object
Devuelve el valor del atributo
8 9 10 |
# File 'lib/alimento.rb', line 8 def amount @amount end |
#carbohydrates ⇒ Object
Devuelve el valor del atributo
8 9 10 |
# File 'lib/alimento.rb', line 8 def carbohydrates @carbohydrates end |
#eficiencia_energetica ⇒ Object (readonly)
Returns the value of attribute eficiencia_energetica.
4 5 6 |
# File 'lib/alimento.rb', line 4 def eficiencia_energetica @eficiencia_energetica end |
#gei ⇒ Object
Devuelve el valor del atributo
8 9 10 |
# File 'lib/alimento.rb', line 8 def gei @gei end |
#ground ⇒ Object
Devuelve el valor del atributo
8 9 10 |
# File 'lib/alimento.rb', line 8 def ground @ground end |
#lipids ⇒ Object
Devuelve el valor del atributo
8 9 10 |
# File 'lib/alimento.rb', line 8 def lipids @lipids end |
#name ⇒ Object
Devuelve el valor del atributo
8 9 10 |
# File 'lib/alimento.rb', line 8 def name @name end |
#proteins ⇒ Object
Devuelve el valor del atributo
8 9 10 |
# File 'lib/alimento.rb', line 8 def proteins @proteins end |
Instance Method Details
#<=>(other) ⇒ Boolean
Se redefine la comparación para que se realice en base a la eficiencia energética
14 15 16 |
# File 'lib/alimento.rb', line 14 def <=>(other) @eficiencia_energetica <=> other.eficiencia_energetica end |
#calculate_kcal ⇒ Float
Calcula la cantidad de kcal que produce el alimento
97 98 99 100 101 |
# File 'lib/alimento.rb', line 97 def calculate_kcal kcal = 0.0 kcal += (@lipids * 9) + (@carbohydrates * 4) + (@proteins * 4) kcal.ceil(2) end |
#calculate_kcal_ground ⇒ Float
Calcula las kcal que produce el alimento por m² utilizado (kcal/m²) mediante la siguiente regla de tres: uso de terreno m² —–> kcal que produce el alimento 1m² —–> ?kcal/m²
116 117 118 119 120 121 |
# File 'lib/alimento.rb', line 116 def calculate_kcal_ground kcal = 0.0 kcal += (@lipids * 9) + (@carbohydrates * 4) + (@proteins * 4) kcal = kcal/@ground kcal.ceil(2) end |
#get_amount ⇒ Float
Devuelve la cantidad de alimento
83 84 85 |
# File 'lib/alimento.rb', line 83 def get_amount @amount end |
#get_carbohydrates ⇒ Float
Devuelve la cantidad de carbohidratos del alimento
55 56 57 |
# File 'lib/alimento.rb', line 55 def get_carbohydrates @carbohydrates end |
#get_eficiencia_energetica ⇒ Float
Se calcula la eficiencia energética del alimento mediante las kcal generadas y los gases de efecto invernadero por metro² necesarios para generar dichas kcal
149 150 151 152 153 154 155 |
# File 'lib/alimento.rb', line 149 def get_eficiencia_energetica eficiencia = 0.0 kcal = calculate_kcal_ground #devuelve las calorias producidas por m² (kcal/m)² geikcalground = get_gei_ground #devuelve la energia necesaria para producir esas calorias por m² ( kcal/m)² eficiencia = kcal/geikcalground #Se calcula la energia necesaria para producir la cantidad de alimento indicada habiendo calculado sus kcal eficiencia.ceil(2) end |
#get_gei ⇒ Float
Devuelve la cantidad de gases de efecto invernadero que genera el alimento. Se toman como si fuera la emisión de carbono que se genera, es decir, en kgCO2eq
69 70 71 |
# File 'lib/alimento.rb', line 69 def get_gei @gei end |
#get_gei_ground ⇒ Float
Se calculan los gases de efecto invernadero generados por kcal por m². Se utiliza la equivalencia siguiente: kJ/m² —> kcal/m²
140 141 142 143 144 |
# File 'lib/alimento.rb', line 140 def get_gei_ground geikcal = get_gei_kcal geikcalground = geikcal / @ground #(kcal/m²) geikcalground.ceil(2) end |
#get_gei_kcal ⇒ Float
Se calculan los gases de efecto invernadero generados por kcal. Se utilizan las siguientes reglas de tres: 1 kgCO2eq —> 3.353 kWh 1 kWh —> 3600 kJ 1 kJ —> 0,239006 kcal
129 130 131 132 133 134 |
# File 'lib/alimento.rb', line 129 def get_gei_kcal geikcal = @gei * 3.353 geikcal = geikcal * 3600 geikcal = geikcal * 0.239006 geikcal.ceil(2) end |
#get_ground ⇒ Float
Devuelve la cantidad de uso del terreno para generar el alimento.
76 77 78 |
# File 'lib/alimento.rb', line 76 def get_ground @ground end |
#get_kcal ⇒ Float
Devuelve la cantidad de kcal que aporta el alimento
90 91 92 |
# File 'lib/alimento.rb', line 90 def get_kcal kcal = calculate_kcal end |
#get_kcal_ground ⇒ Float
Devuelve la cantidad de kcal generadas por m² del alimento
106 107 108 109 |
# File 'lib/alimento.rb', line 106 def get_kcal_ground #Se calculan las kcal generadas por m² kcal = calculate_kcal_ground end |
#get_lipids ⇒ Float
Devuelve la cantidad de lípidos del alimento
62 63 64 |
# File 'lib/alimento.rb', line 62 def get_lipids @lipids end |
#get_name ⇒ String
Devuelve el nombre del alimento
41 42 43 |
# File 'lib/alimento.rb', line 41 def get_name @name end |
#get_proteins ⇒ Float
Devuelve la cantidad de proteínas del alimento
48 49 50 |
# File 'lib/alimento.rb', line 48 def get_proteins @proteins end |
#to_s ⇒ String
Devuelve el alimento formateado con toda su información alimentaria
160 161 162 |
# File 'lib/alimento.rb', line 160 def to_s "\n#{@amount}g de #{@name} -> Proteínas #{@proteins}g, Carbohidratos #{@carbohydrates}g, Lípidos #{@lipids}g, Gases de efecto invernadero #{@gei} kgCO2eq, Uso del terreno #{@ground} m²" end |