Class: Plato
- Inherits:
-
Object
- Object
- Plato
- Defined in:
- lib/Alimento/alimento.rb
Constant Summary collapse
- @@medidas =
{ "cucharadas"=>2,"piezas pequeñas"=>1,"taza"=>3,"cucharón"=>3,"pieza"=>4,"cucharada"=>2 }
Instance Method Summary collapse
- #aceite(name, options = {}) ⇒ Object
- #cereal(name, options = {}) ⇒ Object
- #fruta(name, options = {}) ⇒ Object
-
#initialize(name, list, &block) ⇒ Plato
constructor
A new instance of Plato.
- #proteina(name, options = {}) ⇒ Object
- #to_s ⇒ Object
- #vegetal(name, options = {}) ⇒ Object
Constructor Details
#initialize(name, list, &block) ⇒ Plato
Returns a new instance of Plato.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/Alimento/alimento.rb', line 83 def initialize(name, list, &block) @nombre = name @lista_alimentos = list @vegetal = [] @fruta = [] @cereal = [] @proteina = [] @aceite = [] @valor_energetico = 0 if block_given? if block.arity == 1 yield self else instance_eval(&block) end end end |
Instance Method Details
#aceite(name, options = {}) ⇒ Object
175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/Alimento/alimento.rb', line 175 def aceite(name, = {}) cantidad = 0 alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s } if [:gramos] cantidad = [:gramos] else porcion = [:porcion].split(" ", 2) cantidad = @@medidas[porcion[1]] cantidad = cantidad * porcion[0].to_r.to_f end @valor_energetico += cantidad * alimento[:value].valor_energetico() @aceite.push([alimento, (cantidad * alimento[:value].valor_energetico).round(2)]) end |
#cereal(name, options = {}) ⇒ Object
145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/Alimento/alimento.rb', line 145 def cereal(name, = {}) cantidad = 0 alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s } if [:gramos] cantidad = [:gramos] else porcion = [:porcion].split(" ", 2) cantidad = @@medidas[porcion[1]] cantidad = cantidad * porcion[0].to_r.to_f end @valor_energetico += cantidad * alimento[:value].valor_energetico() @cereal.push([alimento, (cantidad * alimento[:value].valor_energetico).round(2)]) end |
#fruta(name, options = {}) ⇒ Object
130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/Alimento/alimento.rb', line 130 def fruta(name, = {}) cantidad = 0 alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s } if [:gramos] cantidad = [:gramos] else porcion = [:porcion].split(" ", 2) cantidad = @@medidas[porcion[1]] cantidad = cantidad * porcion[0].to_r.to_f end @valor_energetico += cantidad * alimento[:value].valor_energetico() @fruta.push([alimento, (cantidad * alimento[:value].valor_energetico).round(2)]) end |
#proteina(name, options = {}) ⇒ Object
160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/Alimento/alimento.rb', line 160 def proteina(name, = {}) cantidad = 0 alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s } if [:gramos] cantidad = [:gramos] else porcion = [:porcion].split(" ", 2) cantidad = @@medidas[porcion[1]] cantidad = cantidad * porcion[0].to_r.to_f end @valor_energetico += cantidad * alimento[:value].valor_energetico() @proteina.push([alimento, (cantidad * alimento[:value].valor_energetico).round(2)]) end |
#to_s ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/Alimento/alimento.rb', line 102 def to_s puts"#{@nombre}" puts"=================================================================" puts"Composicion nutricional:" puts"\t\t\tglucidos\tproteınas\tlıpidos\t\tvalor energetico" @vegetal.map { |e| printf"#{e[0][:value].informacion_to_s}#{e[1]}\n"} @fruta.map { |e| printf"#{e[0][:value].informacion_to_s}#{e[1]}\n"} @cereal.map { |e| printf"#{e[0][:value].informacion_to_s}#{e[1]}\n"} @proteina.map { |e| printf"#{e[0][:value].informacion_to_s}#{e[1]}\n"} @aceite.map { |e| printf"#{e[0][:value].informacion_to_s}#{e[1]}\n"} puts"Valor energetico total %66s" % @valor_energetico end |
#vegetal(name, options = {}) ⇒ Object
115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/Alimento/alimento.rb', line 115 def vegetal(name, = {}) cantidad = 0 alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s } if [:gramos] cantidad = [:gramos] else porcion = [:porcion].split(" ", 2) cantidad = @@medidas[porcion[1]] cantidad = cantidad * porcion[0].to_r.to_f end @valor_energetico += cantidad * alimento[:value].valor_energetico() @vegetal.push([alimento, (cantidad * alimento[:value].valor_energetico).round(2)]) end |