class Alimento::Plato

Attributes

cantidades[R]
lista[R]
nombre[R]

Public Class Methods

new(nombre, lista, cantidades) click to toggle source

@note Constructor de la clase @param nombre Identificador del plato @param lista Lista de alimentos @param cantidades Vector de las cantidades de cada alimento

# File lib/alimento/plato.rb, line 16
def initialize(nombre, lista, cantidades)
        @nombre, @lista, @cantidades = nombre, lista, cantidades
end

Public Instance Methods

<=>(otro) click to toggle source

@note Comparador de platos @param otro Objeto de tipo plato con el que comparar @return Plato con mayor contenido en kcal

# File lib/alimento/plato.rb, line 23
def <=>(otro)
        VCT() <=> otro.VCT
end
VCT() click to toggle source

@note Calculo de las kcal totales de cada plato con sus cantidades @return [Float] Valor total de kcal

# File lib/alimento/plato.rb, line 30
def VCT
        total_kcal = 0
        i = 0
        @lista.each{ |iter|
                total_kcal += (iter.value.valor_energetico(iter.value.valor_glucidos(iter.value.carbohidratos), iter.value.valor_proteinas(iter.value.proteinas), iter.value.valor_lipidos(iter.value.lipidos)) * @cantidades[i]/100)
                i += 1
        }
        return total_kcal.round(1)
end
porcentaje_carbohidratos() click to toggle source

@note Calculo del procentaje de carbohidratos del plato @return [Float] Porcentaje de carbohidratos

# File lib/alimento/plato.rb, line 56
def porcentaje_carbohidratos
        total = VCT()
        carbohidratos =
        i = 0
                lista.each{|iter|
                        carbohidratos += iter.value.valor_glucidos(iter.value.carbohidratos * @cantidades[i]/100)
                        i += 1}
                return ((carbohidratos * 100) / total).round(1)
        end
porcentaje_lipidos() click to toggle source

@note Calculo del procentaje de lipidos del plato @return [Float] Porcentaje de lipidos

# File lib/alimento/plato.rb, line 69
def porcentaje_lipidos
        total = VCT()
        lipidos =
        i = 0
                lista.each{|iter|
                        lipidos += iter.value.valor_lipidos(iter.value.lipidos * @cantidades[i]/100)
                        i += 1}
                return ((lipidos * 100) / total).round(1)
        end
porcentaje_proteinas() click to toggle source

@note Calculo del procentaje de proteinas del plato @return [Float] Porcentaje de proteinas

# File lib/alimento/plato.rb, line 43
def porcentaje_proteinas
        total = VCT()
        proteinas =
        i = 0
                lista.each{|iter|
                        proteinas += iter.value.valor_proteinas(iter.value.proteinas * @cantidades[i]/100)
                        i += 1}
                return ((proteinas * 100) / total).round(1)
        end
to_s() click to toggle source

@note Formateo del plato @return [String] El nombre del plato y los alimentos que lo componen

# File lib/alimento/plato.rb, line 82
def to_s
        string = "Plato: #{nombre}, Componentes: "
        i = 0
        lista.collect{|iter|
                string += "'#{iter.value.nombre} (#{cantidades[i]}g)' "
                i += 1 }

        return string
end