class Recipe

Attributes

ingredients[R]
name[R]
v_energetico_total[R]

Public Class Methods

new(name) { |self| ... } click to toggle source
# File lib/practica_6/Recipe.rb, line 7
def initialize(name,&block)
  
  @@cantidades={"cucharada"=>15,"cucharon"=>40,"taza"=>100,"pieza"=>150}
  @@lista_alimentos=[Alimentos.new("Huevo frito",14.1,0.0,19.5), Alimentos.new("Leche vaca",3.3,4.8,3.2), Alimentos.new("Yogurt",3.8,4.9,3.8), Alimentos.new("Cerdo",21.5,0.0,6.3), Alimentos.new("Ternera",21.1,0.0,3.1), Alimentos.new("Pollo",20.6,0.0,5.6), Alimentos.new("Bacalao",17.7,0.0,0.4),  Alimentos.new("Atun",21.5,0.0,15.5), Alimentos.new("Salmon",19.9,0.0,13.6), Alimentos.new("Aceite de oliva",0.0,0.2,99.6), Alimentos.new("Aceite de girasol",0.0,0.9,83.1), Alimentos.new("Mantequilla",0.7,0.0,83.2), Alimentos.new("Chocolate",5.3,47.0,30.0), Alimentos.new("Azucar",0.0,99.8,0.0), Alimentos.new("Arroz",6.8,77.7,0.6), Alimentos.new("Lentejas",23.5,52.0,1.4), Alimentos.new("Papas",2.0,15.4,0.1), Alimentos.new("Tomate",1.0,3.5,0.2), Alimentos.new("Cebolla",1.3,5.8,0.3), Alimentos.new("Calabaza",1.1,4.8,0.1), Alimentos.new("Manzana",0.3,12.4,0.4), Alimentos.new("Platano",1.2,21.4,0.2), Alimentos.new("Pera",0.5,12.7,0.3)]

  @name = name
  @ingredients=[]
  @v_energetico_total=0;

  if block_given? #Comprueba si el bloque existe
    if block.arity == 1  #Devuelve la cantidad de argumentos del bloque
      yield self
    else
     instance_eval(&block) 
    end
  end
end

Public Instance Methods

aceite(alimento, options = {}) click to toggle source
# File lib/practica_6/Recipe.rb, line 113
def aceite(alimento, options = {})
 
  food=@@lista_alimentos.find{|x| x.nombre==alimento}
  ingredient = food.nombre

  sz=23-food.nombre.size
  ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
  
  if options[:porcion]
     almacen=options[:porcion].split
     ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr" 
  end
  
  @v_energetico_total+=food.valor_energetico
  @ingredients << ingredient
  ingredient
end
cereal(alimento, options = {}) click to toggle source
# File lib/practica_6/Recipe.rb, line 75
def cereal(alimento, options = {})
  
  food=@@lista_alimentos.find{|x| x.nombre==alimento}
  ingredient = food.nombre

  sz=23-food.nombre.size
  ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
  
  if options[:porcion]
     almacen=options[:porcion].split
     ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr" 
  end
     
  @v_energetico_total+=food.valor_energetico
  @ingredients << ingredient
  ingredient
end
fruta(alimento, options = {}) click to toggle source
# File lib/practica_6/Recipe.rb, line 56
def fruta(alimento, options = {})
  
  food=@@lista_alimentos.find{|x| x.nombre==alimento}
  ingredient = food.nombre

  sz=23-food.nombre.size
  ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
  
  if options[:porcion]
     almacen=options[:porcion].split
     ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr" 
  end
     
  @v_energetico_total+=food.valor_energetico
  @ingredients << ingredient
  ingredient
end
proteina(alimento, options = {}) click to toggle source
# File lib/practica_6/Recipe.rb, line 94
def proteina(alimento, options = {})
  
  food=@@lista_alimentos.find{|x| x.nombre==alimento}
  ingredient = food.nombre

  sz=23-food.nombre.size
  ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
  
  if options[:porcion]
     almacen=options[:porcion].split
     ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr" 
  end
     
  @v_energetico_total+=food.valor_energetico
  @ingredients << ingredient
  ingredient
end
to_s() click to toggle source
# File lib/practica_6/Recipe.rb, line 26
def to_s
  output = @name
  output << "\n#{'=' * @name.size}\n"
  output << "Composición nutricional:\n"
  output << "                     Glúcidos   Proteínas   Lípidos   Valor energético   Cantidad\n"
  output << "#{@ingredients.join("\n")}\n\n"
  output << "valor energético total ==> #{@v_energetico_total}\n\n"
  output
end
vegetal(alimento, options = {}) click to toggle source
# File lib/practica_6/Recipe.rb, line 37
def vegetal(alimento, options = {})

  food=@@lista_alimentos.find{|x| x.nombre==alimento}
  ingredient = food.nombre

  sz=23-food.nombre.size
  ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
  
  if options[:porcion]
     almacen=options[:porcion].split
     ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr" 
  end
     
  @v_energetico_total+=food.valor_energetico
  @ingredients << ingredient
  ingredient
end