Class: Alimento
- Inherits:
-
Object
- Object
- Alimento
- 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
Direct Known Subclasses
Constant Summary
- VERSION =
Version de la clase Alimento
"1.1.0"
Instance Attribute Summary collapse
- #glucidos ⇒ Object readonly
- #lipidos ⇒ Object readonly
- #nombre ⇒ Object readonly
-
#Number ⇒ Object
readonly
glucidos glucidos contenidos en el alimento.
- #proteinas ⇒ Object readonly
-
#String ⇒ Object
readonly
nombre Nombre del alimento.
Instance Method Summary collapse
-
#<=>(other) ⇒ Number
Constructor de Alimento.
-
#calculate_index(alimento, glucosa) ⇒ Float
Método para calcular el índice glucémico.
-
#initialize(nombre, glucidos, proteinas, lipidos) ⇒ Alimento
constructor
Constructor de Alimento.
-
#kcal ⇒ Number
Constructor de Alimento.
-
#to_s ⇒ String
Convierte el objeto en un String.
Constructor Details
#initialize(nombre, glucidos, proteinas, lipidos) ⇒ Alimento
Constructor de Alimento
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
#glucidos ⇒ Object (readonly)
11 12 13 |
# File 'lib/alimento/Alimento.rb', line 11 def glucidos @glucidos end |
#lipidos ⇒ Object (readonly)
11 12 13 |
# File 'lib/alimento/Alimento.rb', line 11 def lipidos @lipidos end |
#nombre ⇒ Object (readonly)
11 12 13 |
# File 'lib/alimento/Alimento.rb', line 11 def nombre @nombre end |
#Number ⇒ Object (readonly)
glucidos glucidos contenidos en el alimento
9 10 11 |
# File 'lib/alimento/Alimento.rb', line 9 def Number @Number end |
#proteinas ⇒ Object (readonly)
11 12 13 |
# File 'lib/alimento/Alimento.rb', line 11 def proteinas @proteinas end |
#String ⇒ Object (readonly)
nombre Nombre del alimento
9 10 11 |
# File 'lib/alimento/Alimento.rb', line 9 def String @String end |
Instance Method Details
#<=>(other) ⇒ Number
Constructor de Alimento
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
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 |
#kcal ⇒ Number
Constructor de Alimento
55 56 57 |
# File 'lib/alimento/Alimento.rb', line 55 def kcal @proteinas * 4 + @glucidos * 4 + @lipidos * 9 end |
#to_s ⇒ String
Convierte el objeto en un String
48 49 50 51 |
# File 'lib/alimento/Alimento.rb', line 48 def to_s x = "#{nombre}: #{proteinas}g proteínas, #{glucidos}g glúcidos, #{lipidos}g lípidos" return x end |