class Dieta_dsl

Clase Dieta_dsl.

Attributes

etiqueta[RW]

Etiqueta de la dieta

ing_diaria[RW]

Ingesta diaria de la dieta

platos[RW]

Platos que constituyen la dieta

porcentajes[RW]

Valores de los porcentajes de la dieta

titulo[RW]

Titulo de la dieta

Public Class Methods

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

Inicializa los atributos

# File lib/prct06/dieta_dsl.rb, line 19
def initialize(etiqueta, &block)
        
        @etiqueta = etiqueta
        @titulo = "SIN TITULO"
        @ing_diaria = []
        @platos = []
        @porcentajes = []

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

Public Instance Methods

<=>(another) click to toggle source

Permite a los objetos de la clase (o sus hijas) compararse con otros objetos de la clase (o sus hijas)

# File lib/prct06/dieta_dsl.rb, line 88
def <=> (another)

        @porcentajes[0].to_f <=> another.porcentajes[0].to_f

end
i_d(options = {}) click to toggle source

Ingesta diaria

# File lib/prct06/dieta_dsl.rb, line 43
def i_d(options = {})
        
        i_d = []
        i_d << "#{options[:min]}" if options[:min]
        i_d << "#{options[:max]}" if options[:max]
        
        @ing_diaria = i_d
end
plat(options = {}) click to toggle source

Platos

# File lib/prct06/dieta_dsl.rb, line 53
def plat(options = {})
        
        plat = []
        plat << "#{options[:descripcion]}" if options[:descripcion]
        plat << "#{options[:porcion]}" if options[:porcion]
        plat << "#{options[:gramos]}" if options[:gramos]             
        
        @platos << plat
end
porc(options = {}) click to toggle source

Porcentajes

# File lib/prct06/dieta_dsl.rb, line 64
def porc(options = {})
        
        porc = []
        porc << "#{options[:vct]}" if options[:vct]
        porc << "#{options[:proteinas]}" if options[:proteinas]
        porc << "#{options[:grasas]}" if options[:grasas]
        porc << "#{options[:hidratos]}" if options[:hidratos]         
                        
        @porcentajes = porc
end
tit(name) click to toggle source

Titulo

# File lib/prct06/dieta_dsl.rb, line 37
def tit(name)
        
        @titulo = name
end
to_s() click to toggle source

Imprime la dieta con el formato adecuado

# File lib/prct06/dieta_dsl.rb, line 76
def to_s
        
    title = "#{@etiqueta}\n#{@titulo} (#{@ing_diaria[0]}% - #{@ing_diaria[1]}%)\n"

    for i in 0..@platos.size-1
      title+="-#{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]} g\n"
    end

    title += "V.C.T. | %\t#{@porcentajes[0]} kcal | #{@porcentajes[1]}% - #{@porcentajes[2]}% - #{@porcentajes[3]}%"
end