Class: Comida

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/Alimento/Comida.rb

Overview

Esta clase permite ver los distintos componentes de un alimento y su valor energético Se ha incluido el mixin Comparable

Direct Known Subclasses

Comida_clasif

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name_value, proteins_value, carbohydrates_value, lipids_value) ⇒ Comida

Se asignan los valores que debe tener el alimento, es decir, su nombre, numero de proteinas, glúcidos (carbohidratos) y lípidos



16
17
18
19
20
21
# File 'lib/Alimento/Comida.rb', line 16

def initialize (name_value, proteins_value, carbohydrates_value, lipids_value)
  @name = name_value
  @proteins = proteins_value
  @carbohydrates = carbohydrates_value
  @lipids = lipids_value
end

Instance Attribute Details

#carbohydratesObject (readonly)

Getters de las distintas variables de instancia



12
13
14
# File 'lib/Alimento/Comida.rb', line 12

def carbohydrates
  @carbohydrates
end

#lipidsObject (readonly)

Getters de las distintas variables de instancia



12
13
14
# File 'lib/Alimento/Comida.rb', line 12

def lipids
  @lipids
end

#nameObject (readonly)

Getters de las distintas variables de instancia



12
13
14
# File 'lib/Alimento/Comida.rb', line 12

def name
  @name
end

#proteinsObject (readonly)

Getters de las distintas variables de instancia



12
13
14
# File 'lib/Alimento/Comida.rb', line 12

def proteins
  @proteins
end

Instance Method Details

#<=>(other_food) ⇒ Object

Se define para incluir el mixin comparable Se toma como valor para la comparación el valor energético y para saber si son iguales también se toma el nombre.



67
68
69
70
# File 'lib/Alimento/Comida.rb', line 67

def <=>(other_food) 
  return nil unless other_food.is_a?Comida
  val_energ <=> other_food.val_energ
end

#==(other_food) ⇒ Object

para comparar se debe pasar otra comida como argumento



73
74
75
76
# File 'lib/Alimento/Comida.rb', line 73

def ==(other_food)
  return nil unless other_food.is_a?Comida
  (@name == other_food.name) && (val_energ == other_food.val_energ)
end

#format_chObject

Función que devuelve las kcalorias del alimento por su número de glúcidos



39
40
41
42
# File 'lib/Alimento/Comida.rb', line 39

def format_ch
  ch_kcal = @carbohydrates * 4
  return ch_kcal
end

#format_lipidsObject

Función que devuelve las kcalorias del alimento por su número de lípidos



45
46
47
48
# File 'lib/Alimento/Comida.rb', line 45

def format_lipids
  lipids_kcal = @lipids * 9
  return lipids_kcal
end

#format_proteinsObject

Función que devuelve las kcalorias del alimento por su número de proteinas



33
34
35
36
# File 'lib/Alimento/Comida.rb', line 33

def format_proteins
  proteins_kcal = @proteins * 4
  return proteins_kcal
end

#show_evObject

Metodo que convierte a string los componentes del alimento en kcaloría y su valor energético total



60
61
62
# File 'lib/Alimento/Comida.rb', line 60

def show_ev
  "The fortmated values are: p->#{format_proteins}, c->#{format_ch}, l->#{format_lipids}; The energ. value is -> #{val_energ} kcal"
end

#to_sObject

Función to_string



26
27
28
# File 'lib/Alimento/Comida.rb', line 26

def to_s
  "p: #{@proteins}, c: #{@carbohydrates}, l: #{@lipids}"
end

#val_energObject

Función que devuelve las kcalorias totales del alimento



51
52
53
54
# File 'lib/Alimento/Comida.rb', line 51

def val_energ
  @energ_val = format_proteins + format_ch + format_lipids
  return @energ_val
end