Class: Alimentos
- Inherits:
-
Object
- Object
- Alimentos
- Includes:
- Comparable
- Defined in:
- lib/alimento/alimento.rb
Overview
Clase padre de alimentos.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#datos ⇒ Object
Returns the value of attribute datos.
-
#glucidos ⇒ Object
Returns the value of attribute glucidos.
-
#lipidos ⇒ Object
Returns the value of attribute lipidos.
-
#proteinas ⇒ Object
Returns the value of attribute proteinas.
Instance Method Summary collapse
-
#<=>(otro) ⇒ Object
Si los valores de los objetos son iguales, devuelve 0, en caso de que el de este objeto sea menor, devolverá -1 y 1 en otro caso.
-
#==(otro) ⇒ Object
Si ambos objetos son iguales en valor energético, devolverá verdadero, en cualquier otro caso, será falso el valor devuelto.
-
#aibc(indice) ⇒ Object
Devuelve el valor de aibc para ese individuo.
-
#initialize(proteinasA, glucidosA, lipidosA) ⇒ Alimentos
constructor
A new instance of Alimentos.
-
#to_s ⇒ Object
Devuelve la salida de un Alimento formateado.
-
#v_energetico ⇒ Object
Calcula el valor energético de un alimento.
Constructor Details
#initialize(proteinasA, glucidosA, lipidosA) ⇒ Alimentos
Construcctor de la clase alimentos
Returns a new instance of Alimentos
8 9 10 11 12 |
# File 'lib/alimento/alimento.rb', line 8 def initialize(proteinasA, glucidosA, lipidosA) @proteinas = proteinasA @glucidos = glucidosA @lipidos = lipidosA end |
Instance Attribute Details
#datos ⇒ Object
Returns the value of attribute datos
3 4 5 |
# File 'lib/alimento/alimento.rb', line 3 def datos @datos end |
#glucidos ⇒ Object
Returns the value of attribute glucidos
3 4 5 |
# File 'lib/alimento/alimento.rb', line 3 def glucidos @glucidos end |
#lipidos ⇒ Object
Returns the value of attribute lipidos
3 4 5 |
# File 'lib/alimento/alimento.rb', line 3 def lipidos @lipidos end |
#proteinas ⇒ Object
Returns the value of attribute proteinas
3 4 5 |
# File 'lib/alimento/alimento.rb', line 3 def proteinas @proteinas end |
Instance Method Details
#<=>(otro) ⇒ Object
Sobrecargamos el operador distinto para que funcione el Módulo Comparable. Comparación efectuada según el valor energético.
Returns Si los valores de los objetos son iguales, devuelve 0, en caso de que el de este objeto sea menor, devolverá -1 y 1 en otro caso.
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/alimento/alimento.rb', line 17 def <=> otro return nil unless otro.is_a?Alimentos #Si el otro objeto no es de tipo Alimentos devuelve nulo. if v_energetico == otro.v_energetico return 0 else if v_energetico < otro.v_energetico return -1 else return 1 end end end |
#==(otro) ⇒ Object
Sobrecargamos el operador igual para que funcione el Módulo Comparable. Comparación efectuada según el valor energético.
Returns Si ambos objetos son iguales en valor energético, devolverá verdadero, en cualquier otro caso, será falso el valor devuelto.
33 34 35 36 37 38 39 |
# File 'lib/alimento/alimento.rb', line 33 def == otro if otro.is_a?Alimentos v_energetico == otro.v_energetico else false end end |
#aibc(indice) ⇒ Object
Returns Devuelve el valor de aibc para ese individuo.
57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/alimento/alimento.rb', line 57 def aibc indice aux = [] datos[indice][1..datos[indice].length - 1].zip(datos[indice][0..datos[indice].length - 2]) do |x,y| if x < datos[indice][0] aux << 0.0 else aux << (((x-datos[indice][0])+(y-datos[indice][0]))/2)*5 end end aux.reduce(:+) end |
#to_s ⇒ Object
Método para la correcta visualización del alimento.
Returns Devuelve la salida de un Alimento formateado.
50 51 52 53 |
# File 'lib/alimento/alimento.rb', line 50 def to_s s = "#{@proteinas}\t#{@glucidos}\t#{@lipidos}" s end |
#v_energetico ⇒ Object
Método para realizar el cálculo del valor energético.
Returns Calcula el valor energético de un alimento.
43 44 45 46 |
# File 'lib/alimento/alimento.rb', line 43 def v_energetico valor = (@proteinas * 4) + (@glucidos * 4) + (@lipidos * 9) valor end |