Class: Comida
Overview
Esta clase permite ver los distintos componentes de un alimento y su valor energético Se ha incluido el mixin Comparable
Direct Known Subclasses
Instance Attribute Summary collapse
-
#carbohydrates ⇒ Object
readonly
Getters de las distintas variables de instancia.
-
#lipids ⇒ Object
readonly
Getters de las distintas variables de instancia.
-
#name ⇒ Object
readonly
Getters de las distintas variables de instancia.
-
#proteins ⇒ Object
readonly
Getters de las distintas variables de instancia.
Instance Method Summary collapse
-
#<=>(other_food) ⇒ Object
Se define para incluir el mixin comparable Se toma como valor para la comparación el valor energético y para saber si son iguales también se toma el nombre.
-
#==(other_food) ⇒ Object
para comparar se debe pasar otra comida como argumento.
-
#format_ch ⇒ Object
Función que devuelve las kcalorias del alimento por su número de glúcidos.
-
#format_lipids ⇒ Object
Función que devuelve las kcalorias del alimento por su número de lípidos.
-
#format_proteins ⇒ Object
Función que devuelve las kcalorias del alimento por su número de proteinas.
-
#initialize(name_value, proteins_value, carbohydrates_value, lipids_value) ⇒ Comida
constructor
Se asignan los valores que debe tener el alimento, es decir, su nombre, numero de proteinas, glúcidos (carbohidratos) y lípidos.
-
#show_ev ⇒ Object
Metodo que convierte a string los componentes del alimento en kcaloría y su valor energético total.
-
#to_s ⇒ Object
Función to_string.
-
#val_energ ⇒ Object
Función que devuelve las kcalorias totales del alimento.
Constructor Details
#initialize(name_value, proteins_value, carbohydrates_value, lipids_value) ⇒ Comida
Se asignan los valores que debe tener el alimento, es decir, su nombre, numero de proteinas, glúcidos (carbohidratos) y lípidos
16 17 18 19 20 21 |
# File 'lib/Alimento/Comida.rb', line 16 def initialize (name_value, proteins_value, carbohydrates_value, lipids_value) @name = name_value @proteins = proteins_value @carbohydrates = carbohydrates_value @lipids = lipids_value end |
Instance Attribute Details
#carbohydrates ⇒ Object (readonly)
Getters de las distintas variables de instancia
12 13 14 |
# File 'lib/Alimento/Comida.rb', line 12 def carbohydrates @carbohydrates end |
#lipids ⇒ Object (readonly)
Getters de las distintas variables de instancia
12 13 14 |
# File 'lib/Alimento/Comida.rb', line 12 def lipids @lipids end |
#name ⇒ Object (readonly)
Getters de las distintas variables de instancia
12 13 14 |
# File 'lib/Alimento/Comida.rb', line 12 def name @name end |
#proteins ⇒ Object (readonly)
Getters de las distintas variables de instancia
12 13 14 |
# File 'lib/Alimento/Comida.rb', line 12 def proteins @proteins end |
Instance Method Details
#<=>(other_food) ⇒ Object
Se define para incluir el mixin comparable Se toma como valor para la comparación el valor energético y para saber si son iguales también se toma el nombre.
67 68 69 70 |
# File 'lib/Alimento/Comida.rb', line 67 def <=>(other_food) return nil unless other_food.is_a?Comida val_energ <=> other_food.val_energ end |
#==(other_food) ⇒ Object
para comparar se debe pasar otra comida como argumento
73 74 75 76 |
# File 'lib/Alimento/Comida.rb', line 73 def ==(other_food) return nil unless other_food.is_a?Comida (@name == other_food.name) && (val_energ == other_food.val_energ) end |
#format_ch ⇒ Object
Función que devuelve las kcalorias del alimento por su número de glúcidos
39 40 41 42 |
# File 'lib/Alimento/Comida.rb', line 39 def format_ch ch_kcal = @carbohydrates * 4 return ch_kcal end |
#format_lipids ⇒ Object
Función que devuelve las kcalorias del alimento por su número de lípidos
45 46 47 48 |
# File 'lib/Alimento/Comida.rb', line 45 def format_lipids lipids_kcal = @lipids * 9 return lipids_kcal end |
#format_proteins ⇒ Object
Función que devuelve las kcalorias del alimento por su número de proteinas
33 34 35 36 |
# File 'lib/Alimento/Comida.rb', line 33 def format_proteins proteins_kcal = @proteins * 4 return proteins_kcal end |
#show_ev ⇒ Object
Metodo que convierte a string los componentes del alimento en kcaloría y su valor energético total
60 61 62 |
# File 'lib/Alimento/Comida.rb', line 60 def show_ev "The fortmated values are: p->#{format_proteins}, c->#{format_ch}, l->#{format_lipids}; The energ. value is -> #{val_energ} kcal" end |
#to_s ⇒ Object
Función to_string
26 27 28 |
# File 'lib/Alimento/Comida.rb', line 26 def to_s "p: #{@proteins}, c: #{@carbohydrates}, l: #{@lipids}" end |
#val_energ ⇒ Object
Función que devuelve las kcalorias totales del alimento
51 52 53 54 |
# File 'lib/Alimento/Comida.rb', line 51 def val_energ @energ_val = format_proteins + format_ch + format_lipids return @energ_val end |