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