class Alimento_

Clase Alimento que representa a un alimento con el nombre y otros datos del mismo En alimento se incluye el mixin Comparable

Attributes

datos[RW]
fats[R]
glucids[R]
name[R]
proteins[R]

Public Class Methods

new(name, proteins, glucids, fats) click to toggle source

Se asignan el nombre, las proteinas, los glucidos y las grasas

# File lib/alimento/alimento_.rb, line 20
def initialize(name, proteins, glucids, fats)
    @name = name
    @proteins = proteins
    @glucids = glucids 
    @fats = fats
end

Public Instance Methods

<=>(another) click to toggle source

Se define para incluir el mixin comparable Se toma como valor para la comparación el valor energético

# File lib/alimento/alimento_.rb, line 38
def <=> (another)
    return nil unless another.is_a? Alimento_
    self.valor_energetico <=> another.valor_energetico
end
aibc(indice) click to toggle source

Devuelve el valor del AIBC de un alimento para un individuo concreto

# File lib/alimento/alimento_.rb, line 43
def aibc(indice)
    vector = []
    datos[indice][1..datos[indice].length-1].zip(datos[indice][0..datos[indice].length-2]) do | gi, gi_1 | 
        if gi < datos[indice][0]
            vector << 0.0
        else 
            vector << (((gi-datos[indice][0])+(gi_1-datos[indice][0]))/2)*5
        end
    end 
    
    vector.reduce(:+)
end
to_s() click to toggle source

Formatea la salida a texto

# File lib/alimento/alimento_.rb, line 27
def to_s
    string = ("#{@name}\tproteinas:#{@proteins}\tglúcidos:#{@glucids}\tlípidos:#{@fats}")
   # puts string
   # return string
end
valor_energetico() click to toggle source

Devuelve el valor energético

# File lib/alimento/alimento_.rb, line 33
def valor_energetico 
    v_e = (@proteins*4)+(@glucids*4)+(@fats*9)
end