Class: Alimento
- Inherits:
-
Object
- Object
- Alimento
- Includes:
- Comparable
- Defined in:
- lib/nutrientes/alimento.rb
Overview
Clase que representa un Alimento
Direct Known Subclasses
AlimentoGraso, AlimentoRicoCarbohidratos, Bebida, DerivadoCarne, Fruta, HuevoLacteoHelado, PescadoMarisco, VerduraHortaliza
Instance Attribute Summary collapse
-
#glucidos ⇒ Numeric
La cantidad de glucidos del alimento.
-
#grasas ⇒ Numeric
La cantidad de grasas del alimento.
-
#mediciones_alimento ⇒ Array
Las mediciones de glucosa en uno o más individuos cuando consumen el alimento.
-
#nombre ⇒ String
El nombre del alimento.
-
#proteinas ⇒ Numeric
La cantidad de proteinas del alimento.
Instance Method Summary collapse
-
#<=>(otro) ⇒ Numeric
Compara dos alimentos.
-
#indice_glucemico(delta_tiempo, mediciones_glucosa) ⇒ Numeric
Calcula el indice glucemico del alimento.
-
#initialize(nombre, proteinas, glucidos, grasas) ⇒ Alimento
constructor
A new instance of Alimento.
-
#to_s ⇒ String
Formatea el alimento.
-
#valor_energetico ⇒ Numeric
Calcula el valor energetico del alimento.
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
#glucidos ⇒ Numeric
12 13 14 |
# File 'lib/nutrientes/alimento.rb', line 12 def glucidos @glucidos end |
#grasas ⇒ Numeric
15 16 17 |
# File 'lib/nutrientes/alimento.rb', line 15 def grasas @grasas end |
#mediciones_alimento ⇒ Array
18 19 20 |
# File 'lib/nutrientes/alimento.rb', line 18 def mediciones_alimento @mediciones_alimento end |
#nombre ⇒ String
6 7 8 |
# File 'lib/nutrientes/alimento.rb', line 6 def nombre @nombre end |
#proteinas ⇒ Numeric
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_s ⇒ String
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_energetico ⇒ Numeric
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 |