class Dieta

clase principal de la jerarquía

Attributes

grasas[RW]

attr

hidratos[RW]

attr

nombre[RW]

attr

nplatos[RW]

attr

platos[RW]

attr

porcentaje_ingesta[RW]

attr

proteinas[RW]

attr

titulo[RW]

attr

vct[RW]

attr

Public Class Methods

new(nombre) { |self| ... } click to toggle source

constructor

# File lib/prct06/Dieta.rb, line 13
    def initialize (nombre, &block)
            self.nombre = nombre
            self.titulo
            self.porcentaje_ingesta
            self.nplatos

            self.platos = []

            self.vct
            self.proteinas
            self.grasas
            self.hidratos

            if block_given?
  if block.arity == 1
    yield self
  else
   instance_eval &block
  end
end
    end

Public Instance Methods

<=>(other) click to toggle source

invalidación del <=> para hacer los objetos comparables

# File lib/prct06/Dieta.rb, line 79
def <=> (other)
        return nil unless other.is_a?Dieta
        self.vct <=> other.vct
end
get_plato(n) click to toggle source

acceso a un plato en concreto

# File lib/prct06/Dieta.rb, line 71
def get_plato (n)
        if n < 1 then
                return ""
        end
        return platos[n-1]
end
ingesta(porcentaje = {}) click to toggle source

función para definir el porcentaje de ingesta. Podría darse una estimación entre dos

# File lib/prct06/Dieta.rb, line 41
def ingesta(porcentaje = {})
        standard = porcentaje[:fijo] if porcentaje[:fijo]
        low = porcentaje[:min] if porcentaje[:min]
        up = porcentaje[:max] if porcentaje[:max]

        if porcentaje[:fijo] then
                self.porcentaje_ingesta = "#{standard}%"
        else
                self.porcentaje_ingesta = "#{low}% - #{up}%"
        end
end
plato(options = {}) click to toggle source

función para definir platos nuevos

# File lib/prct06/Dieta.rb, line 62
def plato(options = {})
        nuevo = []
        nuevo << "#{options[:descripcion]}" if options[:descripcion]
        nuevo << "#{options[:porcion]}" if options[:porcion]
        nuevo << options[:gramos] if options[:gramos]
        platos << nuevo
end
porcentajes(options = {}) click to toggle source

función para definir los porcentajes de grasa, proteínas, hidratos y el valor calórico total

# File lib/prct06/Dieta.rb, line 54
def porcentajes(options = {})
        self.vct = options[:vct] if options[:vct]
        self.proteinas = options[:proteinas] if options[:proteinas]
        self.grasas = options[:grasas] if options[:grasas]
        self.hidratos = options[:hidratos] if options[:hidratos]
end
tipo(ntitulo) click to toggle source

función para definir el título del menú: almuerzo, cena, etc.

# File lib/prct06/Dieta.rb, line 36
def tipo(ntitulo)
        self.titulo = ntitulo
end
to_s() click to toggle source

formateo a string

# File lib/prct06/Dieta.rb, line 85
def to_s
        x = ""
        x << "#{titulo} (#{porcentaje_ingesta})\n"

        platos.each do |i|
                x << "- #{i[0]}, #{i[1]}, #{i[2]}g\n"
        end

        x << "V.C.T | %    #{vct} kcal | #{proteinas} #{grasas} #{hidratos}\n\n"
end