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
Public Class Methods
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
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
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
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
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
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
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