Class: Alimento::Alimento

Inherits:
Object
  • Object
show all
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

Group

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#glucidosObject (readonly)

Returns the value of attribute glucidos.



21
22
23
# File 'lib/alimento/fuente.rb', line 21

def glucidos
  @glucidos
end

#lipidosObject (readonly)

Returns the value of attribute lipidos.



21
22
23
# File 'lib/alimento/fuente.rb', line 21

def lipidos
  @lipidos
end

#nombreObject (readonly)

Returns the value of attribute nombre.



21
22
23
# File 'lib/alimento/fuente.rb', line 21

def nombre
  @nombre
end

#proteinasObject (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

#caloriasObject

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_sObject

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