class Plato

@since 1.0.0 @attr_reader String nombre Nombre del plato @attr_reader Array ingredientes Conjunto de Alimentos de un plato @attr_reader Array porciones Cantidad de cada alimento de un plato @attr_reader Array tabla todos los alimentos posibles

Attributes

ingredientes[R]
nombre[R]
porciones[R]
tabla[R]

Public Class Methods

new(nombre) { |self| ... } click to toggle source

Constructor de Plato @param [String] Nombre nombre del Plato @param [Block] bloque Codigo que dicta los ingredientes del plato

@return [Plato] Devuelve el objeto creado de clase Plato

# File lib/pr06/plato.rb, line 17
    def initialize(nombre, &bloque)

        @nombre = nombre
        @tabla = [  Alimento.new('Huevo Frito',14.1,0.0,19.5,'lacteos'),
    Alimento.new('Leche',3.3,4.8,3.2,'lacteos'),
    Alimento.new('Cerdo',21.5,0.0,6.3,'carnes'),
        Alimento.new('Yogurt', 3.8, 4.9, 3.8,'lacteos'),
        Alimento.new("Ternera", 21.1, 0.0, 3.1,'carnes'),
        Alimento.new("Pollo", 20.6, 0.0, 5.6,'carnes'),
        Alimento.new("Bacalao", 17.7, 0.0, 0.4,'pescado'),
        Alimento.new("Atun", 21.5, 0.0, 15.5,'pescado'),
        Alimento.new("Salmon", 19.9, 0.0, 13.6,'pescado'),
        Alimento.new("Aceite de oliva", 0.0, 0.2, 99.6,'al_graso'),
        Alimento.new("Mantequilla", 0.7, 0.0, 83.2,'al_graso'),
        Alimento.new("Chocolate", 5.3, 47.0, 30.0,'al_graso'),
        Alimento.new("Azucar", 0.0, 99.8, 0.0,'al_carbohidratos'),
        Alimento.new("Arroz", 6.8, 77.7, 0.6,'al_carbohidratos'),
        Alimento.new("Lentejas", 23.5, 52.0, 1.4,'al_carbohidratos'),
        Alimento.new("Papas", 2.0, 15.4, 0.1,'al_carbohidratoso'),
        Alimento.new("Tomate", 1.0, 3.5, 0.2,'verduras'),
        Alimento.new("Cebolla", 1.3, 5.8, 0.3,'verduras'),
        Alimentoe.new("Calabaza", 1.1, 4.8, 0.1,'verduras'),
        Alimento.new("Manzana", 0.3, 12.4, 0.4,'fruta'),
        Alimento.new("Platanos", 1.2, 21.4, 0.2,'fruta'),
        Alimento.new("Pera", 0.5 ,12.7, 0.3,'fruta')]
@porciones =[] 
@ingredientes = []
        if block_given?
            if bloque.arity == 1
                yield self
            else
                instance_eval(&bloque)
            end
        end
    end

Public Instance Methods

aceite(nombre, options = {}) click to toggle source

Añade una aceite al plato @param [String] nombre nombre de la fruta @param options cantidad de un alimento

# File lib/pr06/plato.rb, line 142
def aceite(nombre, options = {})
    tabla.each_with_index do |s , i|
        if (s.nombre == nombre)
            @ingredientes << tabla[i]
            break
        end
    end
    if (options[:gramos])
        @porciones << options[:gramos]
    else if (options[:porciones])
        dummyString = options[:porciones]
        @porciones << dummyString.scan(/\d+\.\d+/).first.to_f
    end
    end
end
fruta(nombre, options = {}) click to toggle source

Añade una fruta al plato @param [String] nombre nombre de la fruta @param options cantidad de un alimento

# File lib/pr06/plato.rb, line 70
def fruta(nombre, options = {})
    tabla.each_with_index do |s , i|
        if (s.nombre == nombre)
            @ingredientes << tabla[i]
            break
        end
    end
    if (options[:gramos])
        @porciones << options[:gramos]
    else if (options[:porciones])
        dummyString = options[:porciones]
        @porciones << dummyString.scan(/\d+\.\d+/).first.to_f
    end
    end
end
granos_integrales(nombre, options = {}) click to toggle source

Añade un grano al plato al plato @param [String] nombre nombre de la fruta @param options cantidad de un alimento

# File lib/pr06/plato.rb, line 124
def granos_integrales(nombre, options = {})
    tabla.each_with_index do |s , i|
        if (s.nombre == nombre)
            @ingredientes << tabla[i]
            break
        end
    end
    if (options[:gramos])
        @porciones << options[:gramos]
    else if (options[:porciones])
        dummyString = " (#{options[:porciones]})"
        @porciones << dummyString.scan(/\d+\.\d+/).first.to_f
    end
    end
end
proteinas(nombre, options = {}) click to toggle source

Añade una proteina al plato @param [String] nombre nombre de la fruta @param options cantidad de un alimento

# File lib/pr06/plato.rb, line 106
def proteinas(nombre, options = {})
    tabla.each_with_index do |s , i|
        if (s.nombre == nombre)
            @ingredientes << tabla[i]
            break
        end
    end
    if (options[:gramos])
        @porciones << options[:gramos]
    else if (options[:porciones])
        dummyString = options[:porciones]
        @porciones << dummyString.scan(/\d+\.\d+/).first.to_f
    end
    end
end
to_s() click to toggle source

Convierte el objeto en un String @return [String] descripción del plato en una cadena de caracteres

# File lib/pr06/plato.rb, line 55
def to_s
    texto = @nombre
    texto << "\n#{'=' * @nombre.size}\n"
    texto << "Composicion nutricional: \n"
    @ingredientes.each_with_index do |i , p|
        texto << i.to_s
        texto << "#{i.kcal * @porciones[p]}"
        texto << "\n"
    end
    return texto
end
vegetal(nombre, options = {}) click to toggle source

Añade un vegetal al plato @param [String] nombre nombre de la fruta @param options cantidad de un alimento

# File lib/pr06/plato.rb, line 88
def vegetal(nombre, options = {})
    tabla.each_with_index do |s , i|
        if (s.nombre == nombre)
            @ingredientes << tabla[i]
            break
        end
    end
    if (options[:gramos])
        @porciones << options[:gramos]
    else if (options[:porciones])
        dummyString = options[:porciones]
        @porciones << dummyString.scan(/\d+\.\d+/).first.to_f
    end
    end
end