Class: Menu

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

Overview

Author:

  • Juan Martínez Hurtado de Mendoza

Direct Known Subclasses

MenuEficiente

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(platos) ⇒ Menu

Returns a new instance of Menu.



8
9
10
# File 'lib/menu.rb', line 8

def initialize (platos)
    @platos = platos
end

Instance Attribute Details

#platosObject (readonly)

Returns the value of attribute platos.



6
7
8
# File 'lib/menu.rb', line 6

def platos
  @platos
end

Instance Method Details

#<=>(another) ⇒ Boolean

Método que utiliza el módulo Comparable para poder comparar

Parameters:

  • another (Object)

    Objeto con el que comparar

Returns:

  • (Boolean)

    True or false



74
75
76
# File 'lib/menu.rb', line 74

def <=> (another)
    self.valorCaloricoTotal <=> another.valorCaloricoTotal
end

#carbohidratos_porcentajeInteger

Calcula porcentaje de lipidos

Returns:

  • (Integer)

    Porcentaje de lipidos



50
51
52
53
54
55
56
57
# File 'lib/menu.rb', line 50

def carbohidratos_porcentaje
  gramos_total = self.total_gramos
  carbohidratos_total = 0
  platos.each do |plato|
    carbohidratos_total += plato.carbohidratos
  end
  return ((carbohidratos_total*100)/gramos_total).to_i
end

#lipidos_porcentajeInteger

Calcula porcentaje de lipidos

Returns:

  • (Integer)

    Porcentaje de lipidos



38
39
40
41
42
43
44
45
# File 'lib/menu.rb', line 38

def lipidos_porcentaje
  gramos_total = self.total_gramos
  lipidos_total = 0
  platos.each do |plato|
    lipidos_total += plato.lipidos
  end
  return ((lipidos_total*100)/gramos_total).to_i
end

#proteinas_porcentajeInteger

Calcula porcentaje de proteinas

Returns:

  • (Integer)

    Porcentaje de proteínas



26
27
28
29
30
31
32
33
# File 'lib/menu.rb', line 26

def proteinas_porcentaje
  gramos_total = self.total_gramos
  proteinas_total = 0
  platos.each do |plato|
    proteinas_total += plato.proteinas
  end
  return ((proteinas_total*100)/gramos_total).to_i
end

#total_gramosInteger

Calcula los gramos totales de proteínas, carbohidratos y lipidos.

Returns:

  • (Integer)

    El número total de gramos



15
16
17
18
19
20
21
# File 'lib/menu.rb', line 15

def total_gramos
    gramos = 0
    @platos.each do |plato|
      gramos += plato.proteinas + plato.carbohidratos + plato.lipidos
    end
    return gramos
end

#valorCaloricoTotalInteger

Calcula el valor calórico total

Returns:

  • (Integer)

    Calorias totales



62
63
64
65
66
67
68
# File 'lib/menu.rb', line 62

def valorCaloricoTotal
  calorias_totales = 0
  platos.each do |plato|
    calorias_totales += plato.valor_energetico
  end
  return calorias_totales
end