Class: Alimentos

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
Alimentos.rb

Overview

La clase Alimentos permite almacenar los datos a nivel nutricional de un alimento, hallar su valor energético y compararlos.

Author:

  • Yeray Expósito García

Direct Known Subclasses

Grupo

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, protein, glucids, lipids) ⇒ Alimentos

Returns a new instance of Alimentos

Parameters:

  • protein

    Contiene la cantidad de proteinas del alimento.

  • glucids

    Contiene la cantidad de glúcidos del alimento.

  • lipids

    Contiene la cantidad de lípidos del alimento.



16
17
18
19
20
21
# File 'Alimentos.rb', line 16

def initialize(name,protein,glucids,lipids)
   @nombre = name
   @proteinas = protein
   @glucidos = glucids
   @lipidos = lipids
end

Instance Attribute Details

#datos_IGObject

Returns the value of attribute datos_IG



8
9
10
# File 'Alimentos.rb', line 8

def datos_IG
  @datos_IG
end

#glucidosObject (readonly)

Returns the value of attribute glucidos



7
8
9
# File 'Alimentos.rb', line 7

def glucidos
  @glucidos
end

#lipidosObject (readonly)

Returns the value of attribute lipidos



7
8
9
# File 'Alimentos.rb', line 7

def lipidos
  @lipidos
end

#nombreObject (readonly)

Returns the value of attribute nombre



7
8
9
# File 'Alimentos.rb', line 7

def nombre
  @nombre
end

#proteinasObject (readonly)

Returns the value of attribute proteinas



7
8
9
# File 'Alimentos.rb', line 7

def proteinas
  @proteinas
end

Instance Method Details

#<=>(other) ⇒ Object

Returns Un valor numérico (-1,0,+1) dependiendo de si el receptor es menor, igual o mayor que el otro objeto.

Parameters:

  • other

    Representa al objeto situado a la derecha del operador en una comparación

Returns:

  • Un valor numérico (-1,0,+1) dependiendo de si el receptor es menor, igual o mayor que el otro objeto.



42
43
44
# File 'Alimentos.rb', line 42

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

#==(other) ⇒ Object

Parameters:

  • other

    Representa al objeto situado a la derecha del operador en una comparación



49
50
51
# File 'Alimentos.rb', line 49

def ==(other)
   @nombre == other.nombre
end

#aibcObject

Método para calcular el Área incremental bajo la curva (AIBC) de un alimento o de la glucosa.

Returns:

  • Devuelve un vector con los resultados del AIBC de cada individuo.



26
27
28
29
30
31
32
33
34
35
# File 'Alimentos.rb', line 26

def aibc
   
   almacen=Array.new
   datos_IG.each do |x|
      almacen<<[]
      x.each_cons(2){ |val|  almacen.last<<((val[1]-x[0]+val[0]-x[0])/2)*5 } 
   end
   
   almacen.map{ |x| (x.reduce :+).round(2) }
end

#to_sstring

Returns En el que se representan las variables de instancia del objeto.

Returns:

  • (string)

    En el que se representan las variables de instancia del objeto.



56
57
58
# File 'Alimentos.rb', line 56

def to_s
   "Nombre del alimento: #{@nombre}  Proteínas: #{@proteinas}g  Glúcidos: #{@glucidos}g  Lípidos: #{@lipidos}g"
end

#valor_energeticoObject

Returns Un valor numérico que representa el valor energético del alimento.

Returns:

  • Un valor numérico que representa el valor energético del alimento.



63
64
65
# File 'Alimentos.rb', line 63

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