Class: Menu

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

Overview

Clase que implementa un menú dietético.

Author:

  • alu0100895179

Direct Known Subclasses

Menu_edad, Menu_g_alimentos

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(titulo, porcentaje, platos, vct, porcentaje_pgh) ⇒ Menu

Método que inicializa el menú almacenando los datos necesatios.

Parameters:

  • titulo (char)

    Título para el menú (ej. desayuno, almuerzo, etc.)

  • porcentaje (array)

    Array con el rango de porcentajes de ingesta diaria

  • platos (array)

    Array con los diferentes platos del menú con los elementos descripción, porciones e ingesta

  • vct (char)

    Cadena que almacena el valor calórico total

  • porcentaje_pgh (array)

    Array con los valores para los porcentajes de proteínas, grasas e hidratos respectivamente



21
22
23
# File 'lib/dieta/menu.rb', line 21

def initialize(titulo, porcentaje, platos, vct, porcentaje_pgh)
        @titulo, @porcentaje, @platos, @vct, @porcentaje_pgh= titulo, porcentaje, platos, vct, porcentaje_pgh
end

Instance Attribute Details

#platosarray (readonly)

Array con los diferentes platos del menú con los elementos descripción, porciones e ingesta

Returns:

  • (array)

    the current value of platos



11
12
13
# File 'lib/dieta/menu.rb', line 11

def platos
  @platos
end

#porcentajearray (readonly)

Array con el rango de porcentajes de ingesta diaria

Returns:

  • (array)

    the current value of porcentaje



11
12
13
# File 'lib/dieta/menu.rb', line 11

def porcentaje
  @porcentaje
end

#porcentaje_pgharray (readonly)

Array con los valores para los porcentajes de proteínas, grasas e hidratos respectivamente

Returns:

  • (array)

    the current value of porcentaje_pgh



11
12
13
# File 'lib/dieta/menu.rb', line 11

def porcentaje_pgh
  @porcentaje_pgh
end

#titulochar (readonly)

Título para el menú (ej. desayuno, almuerzo, etc.)

Returns:

  • (char)

    the current value of titulo



11
12
13
# File 'lib/dieta/menu.rb', line 11

def titulo
  @titulo
end

#vctchar (readonly)

Cadena que almacena el valor calórico total

Returns:

  • (char)

    the current value of vct



11
12
13
# File 'lib/dieta/menu.rb', line 11

def vct
  @vct
end

Instance Method Details

#<=>(nuevo) ⇒ bool

Método que los menús sean comparables, indica que se debe comparar el valor calórico total.

Parameters:

  • nuevo (Menu)

    Objeto menú con el que se va a comparar

Returns:

  • (bool)

    Retorna si se comple positivamente la comparación o no



81
82
83
# File 'lib/dieta/menu.rb', line 81

def <=>(nuevo)
        @vct<=>nuevo.vct
end

#get_ingestaarray

Método para obtener el porcentaje de ingesta.

Returns:

  • (array)

    Retorna el rango de porcentajes



41
42
43
# File 'lib/dieta/menu.rb', line 41

def get_ingesta()
        @porcentaje
end

#get_pgharray

Método para obtener el array de porcentajes de proteínas grasas e hidratos.

Returns:

  • (array)

    Retorna el array de porcentajes de proteínas grasas e hidratos



53
54
55
# File 'lib/dieta/menu.rb', line 53

def get_pgh()
        @porcentaje_pgh
end

#get_platos(i, j) ⇒ array_possition

Método para obtener un elemento de un plato.

Parameters:

  • i (int)

    Coordenada que nos permitirá saber de qué plato se quiere extraer información

  • j (int)

    Coordenada que nos permitirá saber que información se quiere extraer del plato especificado

Returns:

  • (array_possition)

    Retorna un valor determinado de un plato en específico



35
36
37
# File 'lib/dieta/menu.rb', line 35

def get_platos(i,j)
        @platos[i][j]
end

#get_titulochar

Método para obtener el titulo.

Returns:

  • (char)

    Retorna el título para del menú (ej. desayuno, almuerzo, etc.)



27
28
29
# File 'lib/dieta/menu.rb', line 27

def get_titulo()
        @titulo
end

#get_vctchar

Método para obtener el valor calórico total.

Returns:

  • (char)

    Retorna el valor calórico total



47
48
49
# File 'lib/dieta/menu.rb', line 47

def get_vct()
        @vct
end

#to_schar

Método para mostrar en el formato especificado.

Returns:

  • (char)

    Retorna una cadena de caracteres con el texto para mostrar el menú formateado correctamente



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/dieta/menu.rb', line 59

def to_s()
        
        x = ""
        x << "#{@titulo}"
        if porcentaje.size == 2
                x << " (#{@porcentaje[0]} - #{@porcentaje[1]}%)\n"
        else
                x << " (#{@porcentaje[0]}%)\n"
        end
        
        i=0
        while (i<platos.length())
                x << "- #{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]} g\n"
        i+=1
        end
        x << "V.C.T. | %   #{@vct} | #{@porcentaje_pgh[0]}% - #{@porcentaje_pgh[1]}% - #{@porcentaje_pgh[2]}%\n"
x
end