Class: Alimento

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/alimento/Alimento.rb,
lib/alimento/version.rb

Overview

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

Direct Known Subclasses

AlimentoCategorizable

Constant Summary collapse

VERSION =

Version de la clase Alimento

"1.1.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nombre, glucidos, proteinas, lipidos) ⇒ Alimento

Constructor de Alimento

Parameters:

  • nombre (String)

    nombre del alimento

  • glucidos (Number)

    glucidos contenidos en el alimento

  • proteinas (Number)

    preoteinas contenidos en el alimento

  • lipidos (Number)

    lipidos contenidos en el alimento

Since:

  • 1.0.0



20
21
22
23
24
25
# File 'lib/alimento/Alimento.rb', line 20

def initialize(nombre, glucidos, proteinas, lipidos)
    @nombre = nombre
    @glucidos = glucidos
    @proteinas = proteinas
    @lipidos = lipidos
end

Instance Attribute Details

#glucidosObject (readonly)

Since:

  • 1.0.0



11
12
13
# File 'lib/alimento/Alimento.rb', line 11

def glucidos
  @glucidos
end

#lipidosObject (readonly)

Since:

  • 1.0.0



11
12
13
# File 'lib/alimento/Alimento.rb', line 11

def lipidos
  @lipidos
end

#nombreObject (readonly)

Since:

  • 1.0.0



11
12
13
# File 'lib/alimento/Alimento.rb', line 11

def nombre
  @nombre
end

#NumberObject (readonly)

glucidos glucidos contenidos en el alimento

Returns:

  • (Object)

    the current value of Number



9
10
11
# File 'lib/alimento/Alimento.rb', line 9

def Number
  @Number
end

#proteinasObject (readonly)

Since:

  • 1.0.0



11
12
13
# File 'lib/alimento/Alimento.rb', line 11

def proteinas
  @proteinas
end

#StringObject (readonly)

nombre Nombre del alimento

Returns:

  • (Object)

    the current value of String



9
10
11
# File 'lib/alimento/Alimento.rb', line 9

def String
  @String
end

Instance Method Details

#<=>(other) ⇒ Number

Constructor de Alimento

Parameters:

  • other (Alimento)

    otro objeto de clase Alimento

Returns:

  • (Number)

    Devuelve la relación de comparación entre el objeto que invoca el método y el otro objeto Alimento

Since:

  • 1.0.0



62
63
64
# File 'lib/alimento/Alimento.rb', line 62

def <=>(other)
    kcal <=> other.kcal
end

#calculate_index(alimento, glucosa) ⇒ Float

Método para calcular el índice glucémico

Parameters:

  • alimento (Array<Float>)

    vector con los datos de glucosa tras la ingesta del alimento por cada individuo en el experimento

  • glucosa (Array<Float>)

    vector con los datos de glucosa tras la ingesta de 50gr de glucosa por cada individuo en el experimento

Returns:

  • (Float)

    Devuelve el índice glucémico dado el experimento

Since:

  • 1.0.0



32
33
34
35
36
37
38
39
40
41
42
43
44
# 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

#kcalNumber

Constructor de Alimento

Returns:

  • (Number)

    Devuelve el valor calórico del alimento representado

Since:

  • 1.0.0



55
56
57
# File 'lib/alimento/Alimento.rb', line 55

def kcal
    @proteinas * 4 + @glucidos * 4 + @lipidos * 9
end

#to_sString

Convierte el objeto en un String

Returns:

  • (String)

    descripción del alimento en una cadena de caracteres

Since:

  • 1.0.0



48
49
50
51
# 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