class Plato
Objeto que representa un plato con multiples comidas
Attributes
calorias[R]
cantidad[R]
carbohidratos[R]
lipidos[R]
lista[R]
nombre[R]
p_carbohidratos[R]
p_lipidos[R]
p_proteinas[R]
proteinas[R]
Public Class Methods
new(lista_plato,lista_cantidad,nombre_plato)
click to toggle source
# 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
Public Instance Methods
<=>(other)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/practica/plato.rb, line 7 def get_this return self end
to_s()
click to toggle source
# 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