Class: Plato

Inherits:
Object
  • Object
show all
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

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, options = {})
  cantidad = 0
  alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s }

  if options[:gramos]
     cantidad = options[:gramos]
  else
      porcion = options[: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, options = {})
  cantidad = 0
  alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s }

  if options[:gramos]
     cantidad = options[:gramos]
  else
      porcion = options[: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, options = {})
  cantidad = 0
  alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s }

  if options[:gramos]
     cantidad = options[:gramos]
  else
      porcion = options[: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, options = {})
  cantidad = 0
  alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s }

  if options[:gramos]
     cantidad = options[:gramos]
  else
      porcion = options[: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_sObject



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, options = {})
  cantidad = 0
  alimento = @lista_alimentos.find { |x| name == x[:value].nombre_to_s }

  if options[:gramos]
     cantidad = options[:gramos]
  else
      porcion = options[: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