class Alimento

Representación de un alimento según sus calorías aportadas y la cantidad de glucidos, proteinas y lipidos contenidos

@author Sebastian Jose Diaz Rodriguez @since 1.0.0 @attr_reader String nombre Nombre del alimento @attr_reader Number glucidos glucidos contenidos en el alimento @attr_reader Number proteinas preoteinas contenidos en el alimento @attr_reader Number lipidos lipidos contenidos en el alimento

Constants

VERSION

Version de la clase Alimento

Attributes

glucidos[R]
lipidos[R]
nombre[R]
proteinas[R]

Public Class Methods

new(nombre, glucidos, proteinas, lipidos) click to toggle source

Constructor de Alimento @param [String] nombre nombre del alimento @param [Number] glucidos glucidos contenidos en el alimento @param [Number] proteinas preoteinas contenidos en el alimento @param [Number] lipidos lipidos contenidos en el alimento

@return [Alimento] Devuelve el objeto creado de clase Alimento

# File lib/alimento/Alimento.rb, line 20
def initialize(nombre, glucidos, proteinas, lipidos)
    @nombre = nombre
    @glucidos = glucidos
    @proteinas = proteinas
    @lipidos = lipidos
end

Public Instance Methods

<=>(other) click to toggle source

Constructor de Alimento @param [Alimento] other otro objeto de clase Alimento @return [Number] Devuelve la relación de comparación entre el objeto que invoca el método y el otro objeto Alimento

# File lib/alimento/Alimento.rb, line 62
def <=>(other)
    kcal <=> other.kcal
end
calculate_index(alimento, glucosa) click to toggle source

Método para calcular el índice glucémico @param [Array<Float>] alimento vector con los datos de glucosa tras la ingesta del alimento por cada individuo en el experimento @param [Array<Float>] glucosa vector con los datos de glucosa tras la ingesta de 50gr de glucosa por cada individuo en el experimento

@return [Float] Devuelve el índice glucémico dado el experimento

# File lib/alimento/Alimento.rb, line 32
def calculate_index(alimento, glucosa)
            acum = alimento.map{|data| data.map.with_index(1){|x, a| if(a >= data.length) then 0 else (((data[a] - data[0]) + (data[a - 1] - data[0])) /2)*5 end } }
            aibc = acum.map{ |x| x.reduce{|i, a| i + a } }
            
            acum = []
            
            acum = glucosa.map{|data| data.map.with_index(1){|x, a| if(a >= data.length) then 0 else (((data[a] - data[0]) + (data[a - 1] - data[0])) /2)*5 end } }
            aibcgl = acum.map{ |x| x.reduce{|i, a| i + a } }

            igind = aibc.map.with_index { |a, x| ((aibc[x] / aibcgl[x]) * 100) }
        
        igind.reduce(:+) / igind.length
end
kcal() click to toggle source

Constructor de Alimento @return [Number] Devuelve el valor calórico del alimento representado

# File lib/alimento/Alimento.rb, line 55
def kcal
    @proteinas * 4 + @glucidos * 4 + @lipidos * 9
end
to_s() click to toggle source

Convierte el objeto en un String @return [String] descripción del alimento en una cadena de caracteres

# File lib/alimento/Alimento.rb, line 48
def to_s
    x = "%-20s %-10.2f %-10.2f %-10.2f" % [nombre, proteinas, glucidos,  lipidos]
    return x
end