class Menu

Clase que implementa un menú dietético. @author alu0100895179 @attr_reader [char] titulo Título para el menú (ej. desayuno, almuerzo, etc.) @attr_reader [array] porcentaje Array con el rango de porcentajes de ingesta diaria @attr_reader [array] platos Array con los diferentes platos del menú con los elementos descripción, porciones e ingesta @attr_reader [char] vct Cadena que almacena el valor calórico total @attr_reader [array] porcentaje_pgh Array con los valores para los porcentajes de proteínas, grasas e hidratos respectivamente

Attributes

platos[R]
porcentaje[R]
porcentaje_pgh[R]
titulo[R]
vct[R]

Public Class Methods

new(titulo ="", porcentaje = [], platos =[], vct ="", porcentaje_pgh=[], &block) click to toggle source

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

@param [char] titulo Título para el menú (ej. desayuno, almuerzo, etc.) @param [array] porcentaje Array con el rango de porcentajes de ingesta diaria @param [array] platos Array con los diferentes platos del menú con los elementos descripción, porciones e ingesta @param [char] vct Cadena que almacena el valor calórico total @param [array] porcentaje_pgh Array con los valores para los porcentajes de proteínas, grasas e hidratos respectivamente

# File lib/dieta/menu.rb, line 21
def initialize(titulo ="", porcentaje = [], platos =[], vct ="", porcentaje_pgh=[], &block)
        @titulo, @porcentaje, @platos, @vct, @porcentaje_pgh= titulo, porcentaje, platos, vct, porcentaje_pgh
        
        if(block_given?)
                instance_eval(&block)
        end
end

Public Instance Methods

<=>(nuevo) click to toggle source

Método que los menús sean comparables, indica que se debe comparar el valor calórico total. @param [Menu] nuevo Objeto menú con el que se va a comparar @return [bool] Retorna si se comple positivamente la comparación o no

# File lib/dieta/menu.rb, line 85
def <=>(nuevo)
        @vct<=>nuevo.vct
end
get_ingesta() click to toggle source

Método para obtener el porcentaje de ingesta.

@return [array] Retorna el rango de porcentajes

# File lib/dieta/menu.rb, line 45
def get_ingesta()
        @porcentaje
end
get_pgh() click to toggle source

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

@return [array] Retorna el array de porcentajes de proteínas grasas e hidratos

# File lib/dieta/menu.rb, line 57
def get_pgh()
        @porcentaje_pgh
end
get_platos(i,j) click to toggle source

Método para obtener un elemento de un plato. @param [int] i Coordenada que nos permitirá saber de qué plato se quiere extraer información @param [int] j Coordenada que nos permitirá saber que información se quiere extraer del plato especificado @return [array_possition] Retorna un valor determinado de un plato en específico

# File lib/dieta/menu.rb, line 39
def get_platos(i,j)
        @platos[i][j]
end
get_titulo() click to toggle source

Método para obtener el titulo.

@return [char] Retorna el título para del menú (ej. desayuno, almuerzo, etc.)

# File lib/dieta/menu.rb, line 31
def get_titulo()
        @titulo
end
get_vct() click to toggle source

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

@return [char] Retorna el valor calórico total

# File lib/dieta/menu.rb, line 51
def get_vct()
        @vct
end
ingesta(options = {}) click to toggle source
# File lib/dieta/menu.rb, line 95
def ingesta(options = {})
    
    @porcentaje << options[:min]
    @porcentaje << options[:max] if options[:max]
    
end
plato(plato={}) click to toggle source
# File lib/dieta/menu.rb, line 102
def plato(plato={})
        
        plato2 = []
        plato2 << plato[:descripcion]
        plato2 << plato[:porcion]
        plato2 << plato[:gramos]
        
        @platos << plato2
end
porcentajes(porcentajes = {}) click to toggle source
# File lib/dieta/menu.rb, line 112
def porcentajes(porcentajes = {})
        @vct = porcentajes[:vct]
        @porcentaje_pgh << porcentajes[:proteinas]
        @porcentaje_pgh << porcentajes[:grasas]
        @porcentaje_pgh << porcentajes[:hidratos]
        
end
titulo_(title) click to toggle source
# File lib/dieta/menu.rb, line 91
def titulo_(title)
        @titulo=title
end
to_s() click to toggle source

Método para mostrar en el formato especificado. @return [char] Retorna una cadena de caracteres con el texto para mostrar el menú formateado correctamente

# File lib/dieta/menu.rb, line 63
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