class Plato
Attributes
aceites[RW]
cereales[RW]
frutas[RW]
nombre[RW]
proteinas[RW]
valor_calorico[RW]
vegetales[RW]
Public Class Methods
new(nombreIn, &bloque)
click to toggle source
# File lib/prct06/Plato.rb, line 79 def initialize nombreIn, &bloque @nombre = nombreIn @valor_calorico = 0 @vegetales = [] @frutas = [] @cereales = [] @proteinas = [] @aceites = [] instance_eval(&bloque) end
Public Instance Methods
aceite(nombre_al, opcion = {})
click to toggle source
@note Función para añadir correctamente el aceite desde dls @param nombre_al, opcion
# File lib/prct06/Plato.rb, line 163 def aceite nombre_al, opcion = {} cant = 0 alimento = @@lista.detect { |i| nombre_al == i.nombre } if opcion[:gramos] cant = opcion[:gramos] elsif opcion[:porcion] cant = get_cant opcion[:porcion] end @valor_calorico += cant*alimento.valor_calorico @aceites.push([alimento, (cant*alimento.valor_calorico).round(3)]) end
cereal(nombre_alimento, opcion = {})
click to toggle source
@note Función para añadir correctamente los cereales desde dls @param nombre_alimento, opcion
# File lib/prct06/Plato.rb, line 135 def cereal nombre_alimento, opcion = {} cant = 0 alimento = @@lista.detect { |i| nombre_alimento == i.nombre } if opcion[:gramos] cant = opcion[:gramos] elsif opcion[:porcion] cant = get_cant opcion[:porcion] end @valor_calorico += cant*alimento.valor_calorico @cereales.push([alimento, (cant*alimento.valor_calorico).round(3)]) end
fruta(nombre_al, opcion = {})
click to toggle source
@note Función para añadir correctamente las frutas desde dls @param nombre_al, opcion
# File lib/prct06/Plato.rb, line 121 def fruta nombre_al, opcion = {} cant = 0 alimento = @@lista.detect { |i| nombre_al == i.nombre } if opcion[:gramos] cant = opcion[:gramos] elsif opcion[:porcion] cant = get_cant opcion[:porcion] end @valor_calorico += cant*alimento.valor_calorico @frutas.push([alimento, (cant*alimento.valor_calorico).round(3)]) end
get_cant(porcion)
click to toggle source
@note Función para la cantidad de alimento que añadimos al plato @param porcion
# File lib/prct06/Plato.rb, line 108 def get_cant porcion #La cantidad está en el primer caracter num = porcion.split[0].to_r cad = "" #Formateamos correctamente la cadena porcion.split[1..cad.length-1].each do |i| cad += i + " " end cant = num * @@equGram[cad.chomp ' '] end
proteina(nombre_al, opcion = {})
click to toggle source
@note Función para añadir correctamente los proteinas desde dls @param nombre_al, opcio
# File lib/prct06/Plato.rb, line 149 def proteina nombre_al, opcion = {} cant = 0 alimento = @@lista.detect { |i| nombre_al == i.nombre } if opcion[:gramos] cant = opcion[:gramos] elsif opcion[:porcion] cant = get_cant opcion[:porcion] end @valor_calorico += cant*alimento.valor_calorico @proteinas.push([alimento, (cant*alimento.valor_calorico).round(3)]) end
to_s()
click to toggle source
@note Función para mostrar el contenido de la lista. @return Lista
formateada en una cadena para su visualización.
# File lib/prct06/Plato.rb, line 177 def to_s salida = @nombre + "\n" salida += "=============================================================\n" salida += "Composición nutricional: \n" salida += "\tglúcidos proteínas lípidos \tgrupo\t\t\t valor energético\n" for i in 0..@vegetales.length-1 do salida += @vegetales[i][0].to_s + "\t\t" + @vegetales[i][1].to_s + "\n" end for i in 0..@frutas.length-1 do salida += @frutas[i][0].to_s + "\t\t" + @frutas[i][1].to_s + "\n" end for i in 0..@cereales.length-1 do salida += @cereales[i][0].to_s + "\t\t" + @cereales[i][1].to_s + "\n" end for i in 0..@proteinas.length-1 do salida += @proteinas[i][0].to_s + "\t\t" + @proteinas[i][1].to_s + "\n" end for i in 0..@aceites.length-1 do salida += @aceites[i][0].to_s + "\t\t" + @aceites[i][1].to_s + "\n" end salida += "Valor energetico = " + valor_calorico.to_s salida end
vegetal(nombre_al, opcion = {})
click to toggle source
@note Función para añadir correctamente los vegetales desde dls @param nombre_al, opcion
# File lib/prct06/Plato.rb, line 94 def vegetal nombre_al, opcion = {} cant = 0 alimento = @@lista.detect { |i| nombre_al == i.nombre } if opcion[:gramos] cant = options[:gramos] elsif opcion[:porcion] cant = get_cant opcion[:porcion] end @valor_calorico += cant*alimento.valor_calorico @vegetales.push([alimento, (cant*alimento.valor_calorico).round(3)]) end