Class: Alimento::Plato

Inherits:
Object
  • Object
show all
Defined in:
lib/alimento.rb

Constant Summary collapse

@@talimentos =
[
        Alimento.new("Huevo",    14.1,  0.0, 19.5),
        Alimento.new("Leche",           3.3,  4.8,  3.2),
        Alimento.new("Mantequilla" ,    0.7,  0.0, 83.2),
        Alimento.new("Yogurt",          3.8,  4.9,  3.8),
        Alimento.new("Cerdo",          21.5,  0.0,  6.3),
        Alimento.new("Ternera",        21.1,  0.0,  3.1),
        Alimento.new("Pollo",          20.6,  0.0,  5.6),
        Alimento.new("Bacalao",        17.7,  0.0,  0.4),
        Alimento.new("Atun",           21.5,  0.0, 15.5),
        Alimento.new("Salmon",         19.9,  0.0, 13.6),
        Alimento.new("Aceite de oliva", 0.0,  0.2, 99.6),
        Alimento.new("Chocolate",       5.3, 47.0, 30.0),
        Alimento.new("Azucar",          0.0, 99.8,  0.0),
        Alimento.new("Arroz",           6.8, 77.7,  0.6),
        Alimento.new("Lentejas",       23.5, 52.0,  1.4),
        Alimento.new("Papas",           2.0, 15.4,  0.1),
        Alimento.new("Tomate",          1.0,  3.5,  0.2),
        Alimento.new("Cebolla",         1.3,  5.8,  0.3),
        Alimento.new("Calabaza",        1.1,  4.8,  0.1),
        Alimento.new("Manzana",         0.3, 12.4,  0.4),
        Alimento.new("Platano",        1.2, 21.4,  0.2),
        Alimento.new("Pera",            0.5, 12.7,  0.3)
]
@@tmediciones =
[
        ["pieza",40],
        ["taza",30],
        ["cucharon",10],
        ["cucharada",5],
        ["pizca",2],
        ["cucharilla",3]
]

Instance Method Summary collapse

Constructor Details

#initialize(nombre, &bloque) ⇒ Plato

Returns a new instance of Plato.



77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/alimento.rb', line 77

def initialize(nombre, &bloque)
        @nombre=nombre
        @alimentos=[]
        @kcal=0
        if block_given?
                if bloque.arity == 1
                        yield self
                else
                        instance_eval(&bloque)
                end
        end
end

Instance Method Details

#to_sObject



90
91
92
93
94
95
96
97
# File 'lib/alimento.rb', line 90

def to_s
        output = @nombre
        output << "\n#{'=' * @nombre.size}\nComposición nutricional:\n"
        @alimentos.each do |alimento|
                output << alimento[0].to_s << " kcal=#{alimento[1]}\n"
        end
        output << "Valor energético total: #{@kcal}\n"
end

#vegetal(nombre, cantidad = {}) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/alimento.rb', line 99

def vegetal(nombre, cantidad={})
        aux=[]
        @@talimentos.each do |alimento|
			if nombre==alimento.nombre 
				aux << alimento 
				aux << alimento.kcal*cantidad[:gramos] if cantidad[:gramos]
				if cantidad[:porcion]
					@@tmediciones.each do |unidad| 
						porc=cantidad[:porcion].each_line(" ").to_a
						aux << aux[0].kcal*unidad[1]*porc[0].to_f if unidad[0]=porc[1] 
					end 
				end
				@alimentos << aux
				@kcal+=aux[1]
			end 
		end
end