class Alimento::Alimento
Esta clase representa a un alimento con sus nutrientes Se ha incluido el mixin Comparable
Attributes
datos[R]
glucidos[R]
lipidos[R]
nombre[R]
proteinas[R]
Public Class Methods
new(nombre, proteinas, glucidos, lipidos, datos)
click to toggle source
Se asignan todas las variables de la clase
# File lib/alimento/alimento.rb, line 17 def initialize(nombre, proteinas, glucidos, lipidos, datos) @nombre = nombre @proteinas = proteinas @glucidos = glucidos @lipidos = lipidos @datos = datos end
Public Instance Methods
<=>(other)
click to toggle source
Pa incluir el mixin Comparable se utiliza el valor energético
# File lib/alimento/alimento.rb, line 10 def <=>(other) if other.kind_of?Alimento kcal <=> other.kcal end end
aibc(g)
click to toggle source
Recibe un vector con los datos de un alimento para los individuos, devuelve un vector con los AIBC de cada individuo
# File lib/alimento/alimento.rb, line 42 def aibc(g) # recibe un vector de datos del alimento # devuelve los aibc del alimento, o glucosa, para cada individuo g.map{ |gi| gi.each_with_index.map{ |gindex, i| if0(gindex, gi[0], gi[i-1]) if i > 0 } }.map{ |gi| gi.reject{ |gij| gij.class == nil::NilClass } }.map{ |ri| ri.reduce(0, :+) } end
if0(gij, g0, gi1)
click to toggle source
Método auxiliar para hacer el if de la función aibc
# File lib/alimento/alimento.rb, line 36 def if0(gij, g0, gi1) return 0.0 if gij < g0 return ((((gij-g0)+(gi1-g0))/2)*5) end
ig()
click to toggle source
Calcula el IG del alimento haciendo la media con los IG de los individuos
# File lib/alimento/alimento.rb, line 55 def ig ig_ind.reduce(0, :+)/ig_ind.size end
ig_ind()
click to toggle source
Calcula los AIBC de los datos del alimento y los divide entre los AIBC de los datos de la glucosa Devolviendo un vector con los IG de cada individuo
# File lib/alimento/alimento.rb, line 50 def ig_ind aibc(@datos[0]).each_with_index.map{ |ind, i| (ind/aibc(@datos[1])[i])*100 } end
kcal()
click to toggle source
Devuelve el valor energético del alimento según sus nutrientes
# File lib/alimento/alimento.rb, line 31 def kcal (@proteinas*4 + @glucidos*4 + @lipidos*9) end
to_s()
click to toggle source
Devuelve el alimento formateado
# File lib/alimento/alimento.rb, line 26 def to_s "Alimento: #{nombre}\n\tProteinas: #{proteinas}\n\tGlucidos: #{glucidos}\n\tLipidos: #{lipidos}" end