class Alimento

Esta clase permite representar la información básica de un alimento dado, sus proteinas, glúcidos y lípidos además, calcula el índice calórico del mismo.

Author

Alberto González (alu0100949568@ull.edu.es)

Copyright

Cretive Commons

License

Distributes under the same terms as Ruby

Attributes

cal_index[R]
gluc[R]
lip[R]
nom[R]
prot[R]

Public Class Methods

new(nom, prot, gluc, lip, gluc_data = nil) click to toggle source

Se asigna el nombre y la información nutricional del alimento

# File lib/P06/alimento.rb, line 12
def initialize(nom, prot, gluc, lip, gluc_data = nil)
        @nom = nom
        @prot = prot
        @gluc = gluc
        @lip = lip
        @gluc_data = gluc_data
        @cal_index = (@prot.to_f*4 + @gluc.to_f*4 + @lip.to_f*9).round(2)
end

Public Instance Methods

aibc() click to toggle source

Calcula el área bajo la curva para los datos tomados en una medición de glucosa en intervalos de tiempo de 5 minutos

# File lib/P06/alimento.rb, line 33
def aibc
        @gluc_data.map{|indv| zero = indv.at(0); prev = -2; indv.map{|index| prev = prev + 1; ((index-zero) + (indv.at(not_negative(prev))-zero))*2.5}.reduce(:+).round(2)}
end
not_negative(n) click to toggle source

Se comprueba que no sea un valor negativo, en caso de serlo, se sustituye por un 0

# File lib/P06/alimento.rb, line 28
def not_negative(n)
    n < 0 ? n = 0 : n = n
end
to_s() click to toggle source

Muestra la información de un alimento en concreto

# File lib/P06/alimento.rb, line 22
def to_s
        #El huevo frito tiene 14.1 proteinas, 0.0 glúcidos, 19.5 lípidos
        " #{@nom}: #{@prot} proteinas, #{@gluc} glúcidos, #{@lip} lípidos, #{@cal_index} calorías"
end