Class: Alimento
- Inherits:
-
Object
- Object
- Alimento
- Includes:
- Comparable, Enumerable
- Defined in:
- lib/P06/alimento.rb,
lib/P11/alimento.rb
Overview
Esta clase permite representar la información básica de un alimento dado, sus proteinas, glúcidos y lípidos además, calcula el índice calórico del mismo.
- Author
-
Alberto González ([email protected])
- Copyright
-
Cretive Commons
- License
-
Distributes under the same terms as Ruby
Direct Known Subclasses
Instance Attribute Summary collapse
-
#cal_index ⇒ Object
readonly
Returns the value of attribute cal_index.
-
#gluc ⇒ Object
readonly
Returns the value of attribute gluc.
-
#lip ⇒ Object
readonly
Returns the value of attribute lip.
-
#nom ⇒ Object
readonly
Returns the value of attribute nom.
-
#prot ⇒ Object
readonly
Returns the value of attribute prot.
Instance Method Summary collapse
-
#aibc ⇒ Object
Calcula el área bajo la curva para los datos tomados en una medición de glucosa en intervalos de tiempo de 5 minutos.
-
#initialize(nom, prot, gluc, lip, gluc_data = nil) ⇒ Alimento
constructor
Se asigna el nombre y la información nutricional del alimento.
-
#not_negative(n) ⇒ Object
Se comprueba que no sea un valor negativo, en caso de serlo, se sustituye por un 0.
-
#to_s ⇒ Object
Muestra la información de un alimento en concreto.
Constructor Details
#initialize(nom, prot, gluc, lip, gluc_data = nil) ⇒ Alimento
Se asigna el nombre y la información nutricional del alimento
12 13 14 15 16 17 18 19 |
# File 'lib/P06/alimento.rb', line 12 def initialize(nom, prot, gluc, lip, gluc_data = nil) @nom = nom @prot = prot @gluc = gluc @lip = lip @gluc_data = gluc_data @cal_index = (@prot.to_f*4 + @gluc.to_f*4 + @lip.to_f*9).round(2) end |
Instance Attribute Details
#cal_index ⇒ Object (readonly)
Returns the value of attribute cal_index.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def cal_index @cal_index end |
#gluc ⇒ Object (readonly)
Returns the value of attribute gluc.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def gluc @gluc end |
#lip ⇒ Object (readonly)
Returns the value of attribute lip.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def lip @lip end |
#nom ⇒ Object (readonly)
Returns the value of attribute nom.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def nom @nom end |
#prot ⇒ Object (readonly)
Returns the value of attribute prot.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def prot @prot end |
Instance Method Details
#aibc ⇒ Object
Calcula el área bajo la curva para los datos tomados en una medición de glucosa en intervalos de tiempo de 5 minutos
33 34 35 |
# File 'lib/P06/alimento.rb', line 33 def aibc @gluc_data.map{|indv| zero = indv.at(0); prev = -2; indv.map{|index| prev = prev + 1; ((index-zero) + (indv.at(not_negative(prev))-zero))*2.5}.reduce(:+).round(2)} end |
#not_negative(n) ⇒ Object
Se comprueba que no sea un valor negativo, en caso de serlo, se sustituye por un 0
28 29 30 |
# File 'lib/P06/alimento.rb', line 28 def not_negative(n) n < 0 ? n = 0 : n = n end |
#to_s ⇒ Object
Muestra la información de un alimento en concreto
22 23 24 25 |
# File 'lib/P06/alimento.rb', line 22 def to_s #El huevo frito tiene 14.1 proteinas, 0.0 glúcidos, 19.5 lípidos " #{@nom}: #{@prot} proteinas, #{@gluc} glúcidos, #{@lip} lípidos, #{@cal_index} calorías" end |