Class: Alimentos::Plato

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/alimentos.rb

Overview

Encargada de la representacion de un plato con diferentes cantidades de alimentos

Author:

Direct Known Subclasses

PlatoA

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, receip, grams) ⇒ Plato

Da valor a las variables de instacia de la clase

Parameters:

  • name (String)

    Nombre del plato

  • receip (Array[Alimento])

    Lista de alimentos del plato

  • grams (Array[Int])

    Lista de gramos de los alimentos



179
180
181
182
183
# File 'lib/alimentos.rb', line 179

def initialize(name, receip, grams)
  @name = name
  @receip = receip
  @grams = grams
end

Instance Attribute Details

#gramsObject (readonly)

Returns the value of attribute grams.



170
171
172
# File 'lib/alimentos.rb', line 170

def grams
  @grams
end

#nameObject (readonly)

Returns the value of attribute name.



170
171
172
# File 'lib/alimentos.rb', line 170

def name
  @name
end

#receipObject (readonly)

Returns the value of attribute receip.



170
171
172
# File 'lib/alimentos.rb', line 170

def receip
  @receip
end

Instance Method Details

#<=>(param) ⇒ Bool

Comparable para Plato, centrado en las calorias

Parameters:

  • param (Plato)

    Plato a comparar

Returns:

  • (Bool)

    Devuelve el booleano de realizar la comprobacion de Comparable



192
193
194
# File 'lib/alimentos.rb', line 192

def <=>(param)
  calories <=> param.calories
end

#caloriesFloat

Calcula las calorias de un plato en comparacion a los gramos

Returns:

  • (Float)

    Calorias del plato con respecto a sus gramos



255
256
257
258
259
260
261
262
263
264
265
266
267
# File 'lib/alimentos.rb', line 255

def calories
  aux = []
  for i in 0..@grams.length() - 1
    aux[i] = @grams[i] / 100
  end

  cal = 0
  for i in 0..@grams.length() - 1
    cal += @receip.lista[i].value.energi * aux[i]
  end

  (cal).round(2)
end

#carPercentFloat

Calcula el porcentaje de carbohidratos de un plato

Returns:

  • (Float)

    Porcentaje de carbohidratos



237
238
239
240
241
242
243
244
245
246
247
248
# File 'lib/alimentos.rb', line 237

def carPercent
  aux = 0
  for i in 0..@receip.tam - 1
    aux += @receip.lista[i].value.car
  end

  x = []
  for i in 0..@receip.tam - 1
    x[i] = (@receip.lista[i].value.car / aux).round(2)
  end
  x
end

#lipPercentFloat

Calcula el porcentaje de lipidos de un plato

Returns:

  • (Float)

    Porcentaje de lipidos



219
220
221
222
223
224
225
226
227
228
229
230
# File 'lib/alimentos.rb', line 219

def lipPercent
  aux = 0
  for i in 0..@receip.tam - 1
    aux += @receip.lista[i].value.lip
  end

  x = []
  for i in 0..@receip.tam - 1
    x[i] = (@receip.lista[i].value.lip / aux).round(2)
  end
  x
end

#proPercentFloat

Calcula el porcentaje de proteinas de un plato

Returns:

  • (Float)

    Porcentaje de proteinas



201
202
203
204
205
206
207
208
209
210
211
212
# File 'lib/alimentos.rb', line 201

def proPercent
  aux = 0
  for i in 0..@receip.tam - 1
    aux += @receip.lista[i].value.pro
  end

  x = []
  for i in 0..@receip.tam - 1
    x[i] = (@receip.lista[i].value.pro / aux).round(2)
  end
  x
end

#to_sString

Formato de un plato a string

Returns:

  • (String)

    String con el formato para la representacion de un plato



274
275
276
277
278
279
280
# File 'lib/alimentos.rb', line 274

def to_s
  aux = ""
  for i in 0..@receip.tam - 1
    aux += "#{@receip.lista[i].value.name} "
  end
  aux
end