Class: Alimento::Alimento
- Inherits:
-
Object
- Object
- Alimento::Alimento
- Includes:
- Comparable
- Defined in:
- lib/alimento/fuente.rb
Overview
Esta clase permite representar un alimento con sus nutrientes, así como calcular sus calorías. Todo ello en función de la cantidad de alimento que especifiquemos (por defecto: 100gr) Se ha incluido el mixin Comparable, que permite comparar los alimentos en función de su aporte calórico
Direct Known Subclasses
Instance Attribute Summary collapse
-
#glucidos ⇒ Object
readonly
Returns the value of attribute glucidos.
-
#lipidos ⇒ Object
readonly
Returns the value of attribute lipidos.
-
#nombre ⇒ Object
readonly
Returns the value of attribute nombre.
-
#proteinas ⇒ Object
readonly
Returns the value of attribute proteinas.
Instance Method Summary collapse
-
#<=>(otroAlimento) ⇒ Object
Método necesario para usar ‘Comparable’.
-
#calorias ⇒ Object
Calcula las calorías del alimento según sus nutrientes.
-
#initialize(nombre, proteinas, glucidos, lipidos) ⇒ Alimento
constructor
Se asignan el nombre y los nutrientes del alimento.
-
#to_s ⇒ Object
Da formato a la presentación del alimento.
Constructor Details
#initialize(nombre, proteinas, glucidos, lipidos) ⇒ Alimento
Se asignan el nombre y los nutrientes del alimento
30 31 32 33 34 35 |
# File 'lib/alimento/fuente.rb', line 30 def initialize(nombre,proteinas,glucidos,lipidos) @nombre= nombre @proteinas= proteinas @glucidos= glucidos @lipidos= lipidos end |
Instance Attribute Details
#glucidos ⇒ Object (readonly)
Returns the value of attribute glucidos.
21 22 23 |
# File 'lib/alimento/fuente.rb', line 21 def glucidos @glucidos end |
#lipidos ⇒ Object (readonly)
Returns the value of attribute lipidos.
21 22 23 |
# File 'lib/alimento/fuente.rb', line 21 def lipidos @lipidos end |
#nombre ⇒ Object (readonly)
Returns the value of attribute nombre.
21 22 23 |
# File 'lib/alimento/fuente.rb', line 21 def nombre @nombre end |
#proteinas ⇒ Object (readonly)
Returns the value of attribute proteinas.
21 22 23 |
# File 'lib/alimento/fuente.rb', line 21 def proteinas @proteinas end |
Instance Method Details
#<=>(otroAlimento) ⇒ Object
Método necesario para usar ‘Comparable’
25 26 27 |
# File 'lib/alimento/fuente.rb', line 25 def <=> otroAlimento self.calorias <=> otroAlimento.calorias end |
#calorias ⇒ Object
Calcula las calorías del alimento según sus nutrientes
43 44 45 |
# File 'lib/alimento/fuente.rb', line 43 def calorias ((proteinas+glucidos)*4 + lipidos*9).round(1) end |
#to_s ⇒ Object
Da formato a la presentación del alimento
38 39 40 |
# File 'lib/alimento/fuente.rb', line 38 def to_s "#{nombre}(Pr_#{proteinas}; Glc_#{glucidos}; Lip_#{lipidos}; Cal_#{self.calorias})" end |