Class: Plato
Overview
Objeto que representa un plato con multiples comidas
Direct Known Subclasses
Instance Attribute Summary collapse
-
#calorias ⇒ Object
readonly
Returns the value of attribute calorias.
-
#cantidad ⇒ Object
readonly
Returns the value of attribute cantidad.
-
#carbohidratos ⇒ Object
readonly
Returns the value of attribute carbohidratos.
-
#lipidos ⇒ Object
readonly
Returns the value of attribute lipidos.
-
#lista ⇒ Object
readonly
Returns the value of attribute lista.
-
#nombre ⇒ Object
readonly
Returns the value of attribute nombre.
-
#p_carbohidratos ⇒ Object
readonly
Returns the value of attribute p_carbohidratos.
-
#p_lipidos ⇒ Object
readonly
Returns the value of attribute p_lipidos.
-
#p_proteinas ⇒ Object
readonly
Returns the value of attribute p_proteinas.
-
#proteinas ⇒ Object
readonly
Returns the value of attribute proteinas.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
operador <=>.
-
#==(other) ⇒ Object
operador de comparacion.
-
#calc_calorias ⇒ Object
metodo que calcula las calorias totales del plato (Kcal).
-
#calc_carbohidrato ⇒ Object
metodo que calcula los carbohidratos del plato.
-
#calc_lipido ⇒ Object
metodo que calcula los lipidos del plato.
-
#calc_porcentajes ⇒ Object
metodo que obtiene la proporcion de lipido,proteinas y carbohidratos de cada alimento.
-
#calc_proteina ⇒ Object
metodo que calcula la proteinas del plato.
-
#calcular_equivalente(valor, cantidad) ⇒ Object
metodo que calcula el porcentaje de un valor cualquiera.
- #get_this ⇒ Object
-
#initialize(lista_plato, lista_cantidad, nombre_plato) ⇒ Plato
constructor
constructor que recibe la lista con alimentos, otra lista con la cantidad del alimento correspondiente y el nombre del plato.
-
#to_s ⇒ Object
damos formato del plato, siendo “Nombne, Alimento, Cantidad,.…..”.
Constructor Details
#initialize(lista_plato, lista_cantidad, nombre_plato) ⇒ Plato
constructor que recibe la lista con alimentos, otra lista con la cantidad del alimento correspondiente y el nombre del plato
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/practica/plato.rb', line 10 def initialize(lista_plato,lista_cantidad,nombre_plato) # constructor que recibe la lista con alimentos, otra lista con la cantidad del alimento correspondiente y el nombre del plato @proteinas=@carbohidratos=@lipidos=@calorias=@p_calorias= @p_lipidos = @p_carbohidratos = @total = 0 #inicializacmos todos los atributos a 0 @lista = lista_plato #asignamos los atributos que tenemos @nombre = nombre_plato @cantidad= lista_cantidad self.calc_proteina #llamamos a los diferentes metedos para dar valor a los diferentes atributos self.calc_lipido self.calc_carbohidrato @total = @proteinas + @lipidos + @carbohidratos self.calc_porcentajes self.calc_calorias end |
Instance Attribute Details
#calorias ⇒ Object (readonly)
Returns the value of attribute calorias.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def calorias @calorias end |
#cantidad ⇒ Object (readonly)
Returns the value of attribute cantidad.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def cantidad @cantidad end |
#carbohidratos ⇒ Object (readonly)
Returns the value of attribute carbohidratos.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def carbohidratos @carbohidratos end |
#lipidos ⇒ Object (readonly)
Returns the value of attribute lipidos.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def lipidos @lipidos end |
#lista ⇒ Object (readonly)
Returns the value of attribute lista.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def lista @lista end |
#nombre ⇒ Object (readonly)
Returns the value of attribute nombre.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def nombre @nombre end |
#p_carbohidratos ⇒ Object (readonly)
Returns the value of attribute p_carbohidratos.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def p_carbohidratos @p_carbohidratos end |
#p_lipidos ⇒ Object (readonly)
Returns the value of attribute p_lipidos.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def p_lipidos @p_lipidos end |
#p_proteinas ⇒ Object (readonly)
Returns the value of attribute p_proteinas.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def p_proteinas @p_proteinas end |
#proteinas ⇒ Object (readonly)
Returns the value of attribute proteinas.
4 5 6 |
# File 'lib/practica/plato.rb', line 4 def proteinas @proteinas end |
Instance Method Details
#<=>(other) ⇒ Object
operador <=>
92 93 94 95 96 97 98 99 100 |
# File 'lib/practica/plato.rb', line 92 def <=> (other) #operador <=> if other.is_a? Plato #verificamos que sea una instancia de Plato return (self.calorias <=> other.calorias) else # en cualquer otro caso retornamos nil return nil end end |
#==(other) ⇒ Object
operador de comparacion
83 84 85 86 87 88 89 90 |
# File 'lib/practica/plato.rb', line 83 def == (other) # operador de comparacion if other.instance_of? Plato # solo compara si tenemos una instancia de Plato self.to_s == other.to_s # compara el formato en string de ambos objetos else false end end |
#calc_calorias ⇒ Object
metodo que calcula las calorias totales del plato (Kcal)
67 68 69 70 |
# File 'lib/practica/plato.rb', line 67 def calc_calorias #metodo que calcula las calorias totales del plato (Kcal) @calorias = (@proteinas*4 + @carbohidratos*9 + @lipidos*4).round(2) end |
#calc_carbohidrato ⇒ Object
metodo que calcula los carbohidratos del plato
58 59 60 61 62 63 64 65 66 |
# File 'lib/practica/plato.rb', line 58 def calc_carbohidrato #metodo que calcula los carbohidratos del plato contador=0 while( @lista[contador] != nil && @cantidad[contador] != nil) do @carbohidratos=@carbohidratos + calcular_equivalente( @lista[contador].get_valor.carbohidratos , @cantidad[contador].get_valor ) contador = contador +1 end @carbohidratos end |
#calc_lipido ⇒ Object
metodo que calcula los lipidos del plato
48 49 50 51 52 53 54 55 56 |
# File 'lib/practica/plato.rb', line 48 def calc_lipido #metodo que calcula los lipidos del plato contador=0 while( @lista[contador] != nil && @cantidad[contador] != nil) do @lipidos=@lipidos + calcular_equivalente( @lista[contador].get_valor.lipidos , @cantidad[contador].get_valor ) contador = contador +1 end @lipidos end |
#calc_porcentajes ⇒ Object
metodo que obtiene la proporcion de lipido,proteinas y carbohidratos de cada alimento
72 73 74 75 76 |
# File 'lib/practica/plato.rb', line 72 def calc_porcentajes # metodo que obtiene la proporcion de lipido,proteinas y carbohidratos de cada alimento @p_carbohidratos = ((@carbohidratos / @total)*100.0).round(2) @p_lipidos = ((@lipidos / @total)*100.0).round(2) @p_proteinas = ((@proteinas / @total)*100.0).round(2) end |
#calc_proteina ⇒ Object
metodo que calcula la proteinas del plato
38 39 40 41 42 43 44 45 46 |
# File 'lib/practica/plato.rb', line 38 def calc_proteina #metodo que calcula la proteinas del plato contador=0 while( @lista[contador] != nil && @cantidad[contador] != nil) do @proteinas=@proteinas + calcular_equivalente(@lista[contador].get_valor.proteinas,@cantidad[contador].get_valor) contador = contador +1 end @proteinas end |
#calcular_equivalente(valor, cantidad) ⇒ Object
metodo que calcula el porcentaje de un valor cualquiera
78 79 80 81 |
# File 'lib/practica/plato.rb', line 78 def calcular_equivalente(valor,cantidad) # metodo que calcula el porcentaje de un valor cualquiera resultado=(valor * (cantidad / 100.0)).round(2) return resultado end |
#get_this ⇒ Object
7 8 9 |
# File 'lib/practica/plato.rb', line 7 def get_this return self end |
#to_s ⇒ Object
damos formato del plato, siendo “Nombne, Alimento, Cantidad,.…..”
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/practica/plato.rb', line 27 def to_s #damos formato del plato, siendo "Nombne, Alimento, Cantidad,......" @nombre = "#{@nombre}" contador =0 while (@lista[contador] != nil && @cantidad[contador] != nil) do @nombre = @nombre + ",#{@lista[contador].get_valor.nombre},#{@cantidad[contador].get_valor}" contador = contador + 1 end return @nombre end |