Class: Plato
- Inherits:
-
Object
- Object
- Plato
- Defined in:
- lib/alimento/Plato.rb
Overview
Representación de un plato, es decir de un conjunto de alimentos definido en lenguaje natural
Instance Attribute Summary collapse
-
#Array ⇒ Object
readonly
ingredientes Conjunto de Alimentos de un plato.
- #ingredientes ⇒ Object readonly
- #nombre ⇒ Object readonly
- #porciones ⇒ Object readonly
-
#String ⇒ Object
readonly
nombre Nombre del plato.
- #tabla ⇒ Object readonly
Instance Method Summary collapse
-
#aceite(nombre, options = {}) ⇒ Object
Añade una aceite al plato.
-
#fruta(nombre, options = {}) ⇒ Object
Añade una fruta al plato.
-
#granos_integrales(nombre, options = {}) ⇒ Object
Añade un grano al plato al plato.
-
#initialize(nombre, &bloque) ⇒ Plato
constructor
Constructor de Plato.
-
#proteinas(nombre, options = {}) ⇒ Object
Añade una proteina al plato.
-
#to_s ⇒ String
Convierte el objeto en un String.
-
#vegetal(nombre, options = {}) ⇒ Object
Añade un vegetal al plato.
Constructor Details
#initialize(nombre, &bloque) ⇒ Plato
Constructor de Plato
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/alimento/Plato.rb', line 17 def initialize(nombre, &bloque) @nombre = nombre @tabla = [ AlimentoCategorizable.new("Huevo frito","Huevos y Lacteos", 14.1, 0.0, 19.5), AlimentoCategorizable.new("Leche vaca","Huevos y Lacteos" , 3.3, 4.8, 3.2), AlimentoCategorizable.new("Yogurt","Huevos y Lacteos", 3.8, 4.9, 3.8), AlimentoCategorizable.new("Cerdo","Carnes y Derivados", 21.5, 0.0, 6.3), AlimentoCategorizable.new("Ternera","Carnes y Derivados", 21.1, 0.0, 3.1), AlimentoCategorizable.new("Pollo","Carnes y Derivados", 20.6, 0.0, 5.6), AlimentoCategorizable.new("Bacalao","Pescados y Mariscos", 17.7, 0.0, 0.4), AlimentoCategorizable.new("Atun","Pescados y Mariscos", 21.5, 0.0, 15.5), AlimentoCategorizable.new("Salmon","Pescados y Mariscos", 19.9, 0.0, 13.6), AlimentoCategorizable.new("Aceite de oliva","Alimentos Grasos", 0.0, 0.2, 99.6), AlimentoCategorizable.new("Mantequilla","Alimentos Grasos", 0.7, 0.0, 83.2), AlimentoCategorizable.new("Chocolate","Alimentos Grasos", 5.3, 47.0, 30.0), AlimentoCategorizable.new("Azucar","Alimentos Ricos en Carbohidratos", 0.0, 99.8, 0.0), AlimentoCategorizable.new("Arroz","Alimentos Ricos en Carbohidratos", 6.8, 77.7, 0.6), AlimentoCategorizable.new("Lentejas","Alimentos Ricos en Carbohidratos", 23.5, 52.0, 1.4), AlimentoCategorizable.new("Papas","Alimentos Ricos en Carbohidratos", 2.0, 15.4, 0.1), AlimentoCategorizable.new("Tomate","Verduras y Hortalizas", 1.0, 3.5, 0.2), AlimentoCategorizable.new("Cebolla","Verduras y Hortalizas", 1.3, 5.8, 0.3), AlimentoCategorizable.new("Calabaza","Verduras y Hortalizas", 1.1, 4.8, 0.1), AlimentoCategorizable.new("Manzana","Frutas", 0.3, 12.4, 0.4), AlimentoCategorizable.new("Platanos","Frutas", 1.2, 21.4, 0.2), AlimentoCategorizable.new("Pera","Frutas", 0.5 ,12.7, 0.3)] @porciones = [] @ingredientes = [] if block_given? if bloque.arity == 1 yield self else instance_eval(&bloque) end end end |
Instance Attribute Details
#Array ⇒ Object (readonly)
ingredientes Conjunto de Alimentos de un plato
9 10 11 |
# File 'lib/alimento/Plato.rb', line 9 def Array @Array end |
#ingredientes ⇒ Object (readonly)
10 11 12 |
# File 'lib/alimento/Plato.rb', line 10 def ingredientes @ingredientes end |
#nombre ⇒ Object (readonly)
10 11 12 |
# File 'lib/alimento/Plato.rb', line 10 def nombre @nombre end |
#porciones ⇒ Object (readonly)
10 11 12 |
# File 'lib/alimento/Plato.rb', line 10 def porciones @porciones end |
#String ⇒ Object (readonly)
nombre Nombre del plato
9 10 11 |
# File 'lib/alimento/Plato.rb', line 9 def String @String end |
#tabla ⇒ Object (readonly)
10 11 12 |
# File 'lib/alimento/Plato.rb', line 10 def tabla @tabla end |
Instance Method Details
#aceite(nombre, options = {}) ⇒ Object
Añade una aceite al plato
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/alimento/Plato.rb', line 141 def aceite(nombre, = {}) tabla.each_with_index do |s , i| if (s.nombre == nombre) @ingredientes << tabla[i] break end end if ([:gramos]) @porciones << [:gramos] else if ([:porciones]) dummyString = [:porciones] @porciones << dummyString.scan(/\d+\.\d+/).first.to_f end end end |
#fruta(nombre, options = {}) ⇒ Object
Añade una fruta al plato
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/alimento/Plato.rb', line 69 def fruta(nombre, = {}) tabla.each_with_index do |s , i| if (s.nombre == nombre) @ingredientes << tabla[i] break end end if ([:gramos]) @porciones << [:gramos] else if ([:porciones]) dummyString = [:porciones] @porciones << dummyString.scan(/\d+\.\d+/).first.to_f end end end |
#granos_integrales(nombre, options = {}) ⇒ Object
Añade un grano al plato al plato
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/alimento/Plato.rb', line 123 def granos_integrales(nombre, = {}) tabla.each_with_index do |s , i| if (s.nombre == nombre) @ingredientes << tabla[i] break end end if ([:gramos]) @porciones << [:gramos] else if ([:porciones]) dummyString = " (#{[:porciones]})" @porciones << dummyString.scan(/\d+\.\d+/).first.to_f end end end |
#proteinas(nombre, options = {}) ⇒ Object
Añade una proteina al plato
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/alimento/Plato.rb', line 105 def proteinas(nombre, = {}) tabla.each_with_index do |s , i| if (s.nombre == nombre) @ingredientes << tabla[i] break end end if ([:gramos]) @porciones << [:gramos] else if ([:porciones]) dummyString = [:porciones] @porciones << dummyString.scan(/\d+\.\d+/).first.to_f end end end |
#to_s ⇒ String
Convierte el objeto en un String
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/alimento/Plato.rb', line 54 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 = {}) ⇒ Object
Añade un vegetal al plato
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/alimento/Plato.rb', line 87 def vegetal(nombre, = {}) tabla.each_with_index do |s , i| if (s.nombre == nombre) @ingredientes << tabla[i] break end end if ([:gramos]) @porciones << [:gramos] else if ([:porciones]) dummyString = [:porciones] @porciones << dummyString.scan(/\d+\.\d+/).first.to_f end end end |