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