Class: Plato

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/FoodImpact/plato.rb

Overview

Representa un plato (conjunto de alimentos)

Modo de uso

carne = Alimento.new(1,2,3,4,5,6) papas = Alimento.new(6,5,4,3,2,1) lista = List.new lista.insert(carne) lista.insert(papas) Plato.new(“carne con papas”, lista)

Direct Known Subclasses

Regimen

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nombre, ingredientes) ⇒ Plato

Construye un objeto Plato



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/FoodImpact/plato.rb', line 17

def initialize(nombre,ingredientes)
  @nombre = nombre
  @ingredientes = ingredientes
  food = @ingredientes.head
  @total_nutricional = 0.0
  while food != nil do
    @total_nutricional += food[:value].proteinas * (food[:value].gramos / 1000.0)
    @total_nutricional += food[:value].carbohidratos * (food[:value].gramos / 1000.0)
    @total_nutricional += food[:value].lipidos * (food[:value].gramos / 1000.0)
    food = food[:next]
  end
end

Instance Attribute Details

#nombreObject (readonly)

Returns the value of attribute nombre.



14
15
16
# File 'lib/FoodImpact/plato.rb', line 14

def nombre
  @nombre
end

#total_nutricionalObject (readonly)

Returns the value of attribute total_nutricional.



14
15
16
# File 'lib/FoodImpact/plato.rb', line 14

def total_nutricional
  @total_nutricional
end

Instance Method Details

#<=>(other) ⇒ Object

Permite comparar platos por su valor nutricional



86
87
88
# File 'lib/FoodImpact/plato.rb', line 86

def <=>(other)
  @total_nutricional <=> other.total_nutricional
end

#carbohidratosObject

Develve los carbohidratos del plato



42
43
44
45
46
47
48
49
50
# File 'lib/FoodImpact/plato.rb', line 42

def carbohidratos
  food = @ingredientes.head
  carbos = 0.0
  while food != nil do
    carbos += food[:value].carbohidratos * (food[:value].gramos / 1000.0)
    food = food[:next]
  end
  carbos * (100.0 / @total_nutricional)
end

#kcaloriasObject

Devuelve las kilocalorías del plato



64
65
66
67
68
69
70
71
72
# File 'lib/FoodImpact/plato.rb', line 64

def kcalorias
  food = @ingredientes.head
  calorias = 0.0
  while food != nil do
    calorias += food[:value].valor_energetico
    food = food[:next]
  end
  calorias
end

#lipidosObject

Devuelve los lipidos del plato



53
54
55
56
57
58
59
60
61
# File 'lib/FoodImpact/plato.rb', line 53

def lipidos
  food = @ingredientes.head
  lipidos = 0.0
  while food != nil do
    lipidos += food[:value].lipidos * (food[:value].gramos / 1000.0)
    food = food[:next]
  end
  lipidos * (100.0 / @total_nutricional)
end

#proteinasObject

Devuelve las proteinas del plato



31
32
33
34
35
36
37
38
39
# File 'lib/FoodImpact/plato.rb', line 31

def proteinas
  food = @ingredientes.head
  protein = 0.0
  while food != nil do
    protein += food[:value].proteinas * (food[:value].gramos / 1000.0)
    food = food[:next]
  end
  protein * (100.0 / @total_nutricional)
end

#to_sObject

Devuelve el plato formateado



75
76
77
78
79
80
81
82
83
# File 'lib/FoodImpact/plato.rb', line 75

def to_s
  format = "#{nombre}: "
  food = @ingredientes.head
  while food != @ingredientes.tail do
    format += "#{food[:value].nombre}, "
    food = food[:next]
  end
  format += "#{@ingredientes.tail[:value].nombre}"
end