Class: Alimento

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/nutrientes/alimento.rb

Overview

Clase que representa un Alimento

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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



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

def initialize(nombre, proteinas, glucidos, grasas)
  @nombre = nombre
  @proteinas = proteinas
  @glucidos = glucidos
  @grasas = grasas
  @mediciones_alimento = []
end

Instance Attribute Details

#glucidosNumeric



12
13
14
# File 'lib/nutrientes/alimento.rb', line 12

def glucidos
  @glucidos
end

#grasasNumeric



15
16
17
# File 'lib/nutrientes/alimento.rb', line 15

def grasas
  @grasas
end

#mediciones_alimentoArray



18
19
20
# File 'lib/nutrientes/alimento.rb', line 18

def mediciones_alimento
  @mediciones_alimento
end

#nombreString



6
7
8
# File 'lib/nutrientes/alimento.rb', line 6

def nombre
  @nombre
end

#proteinasNumeric



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

def proteinas
  @proteinas
end

Instance Method Details

#<=>(otro) ⇒ Numeric

Compara dos alimentos



51
52
53
# File 'lib/nutrientes/alimento.rb', line 51

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

#indice_glucemico(delta_tiempo, mediciones_glucosa) ⇒ Numeric

Calcula el indice glucemico del alimento



44
45
46
# File 'lib/nutrientes/alimento.rb', line 44

def indice_glucemico(delta_tiempo, mediciones_glucosa)
  (0..@mediciones_alimento.size - 1).map {|persona| (1..24).map {|i| (((@mediciones_alimento[persona][i] - @mediciones_alimento[persona][0]) + (@mediciones_alimento[persona][i-1] - @mediciones_alimento[persona][0]))/2)*delta_tiempo}.reduce(:+) / (1..24).map {|i| (((mediciones_glucosa[persona][i] - mediciones_glucosa[persona][0]) + (mediciones_glucosa[persona][i-1] - mediciones_glucosa[persona][0]))/2)*delta_tiempo}.reduce(:+) * 100}.reduce(:+) / @mediciones_alimento.size
end

#to_sString

Formatea el alimento



30
31
32
# File 'lib/nutrientes/alimento.rb', line 30

def to_s
  "#{@nombre} (proteínas: #{@proteinas}, glúcidos: #{@glucidos}, grasas: #{@grasas})"
end

#valor_energeticoNumeric

Calcula el valor energetico del alimento



36
37
38
# File 'lib/nutrientes/alimento.rb', line 36

def valor_energetico
  (@proteinas * 4) + (@glucidos * 4) + (@grasas * 9)
end