Class: Dieta

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/pract07/Dieta.rb

Overview

Clase que contiene un menú

Direct Known Subclasses

Edad, Food

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Dieta

Returns a new instance of Dieta.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/pract07/Dieta.rb', line 4

def initialize(&block)
  self.tipo_dieta = [] #Tipo de menu: almuerzo, desayuno...
  self.ingesta2 = []
  self.descripcion = [] #descripcion del menu
  self.racion = [] #array de arrays que contienen la porcion de comida que lleva cada plato
  self.cantidad = [] #cantidad generalmente en gramos de comida
  self.kcal = [] # V.C.T del menu
  self.proteinas = [] #array de porcentajes que muestran: proteinas, grasas e hidratos por menu
  self.grasas = []
  self.hidratos = []
  if block_given?  
    if block.arity == 1
      yield self
    else
      instance_eval(&block) 
    end
  end
end

Instance Attribute Details

#cantidadObject

Returns the value of attribute cantidad.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def cantidad
  @cantidad
end

#descripcionObject

Returns the value of attribute descripcion.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def descripcion
  @descripcion
end

#grasasObject

Returns the value of attribute grasas.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def grasas
  @grasas
end

#hidratosObject

Returns the value of attribute hidratos.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def hidratos
  @hidratos
end

#ingesta2Object

Returns the value of attribute ingesta2.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def ingesta2
  @ingesta2
end

#kcalObject

Returns the value of attribute kcal.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def kcal
  @kcal
end

#proteinasObject

Returns the value of attribute proteinas.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def proteinas
  @proteinas
end

#racionObject

Returns the value of attribute racion.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def racion
  @racion
end

#tipo_dietaObject

Returns the value of attribute tipo_dieta.



3
4
5
# File 'lib/pract07/Dieta.rb', line 3

def tipo_dieta
  @tipo_dieta
end

Instance Method Details

#<=>(other) ⇒ Object

Comparacion



123
124
125
# File 'lib/pract07/Dieta.rb', line 123

def <=>(other)
  kcal <=> other.kcal
end

#==(other) ⇒ Object



127
128
129
130
131
132
133
# File 'lib/pract07/Dieta.rb', line 127

def ==(other)
  if kcal == other.kcal && percent == other.percent
      return true
  else
      return false
  end
end

#get_descripcion(pos) ⇒ Object

devuelve el nombre del plato especificado en “pos”



72
73
74
75
# File 'lib/pract07/Dieta.rb', line 72

def get_descripcion(pos) #devuelve el nombre del plato especificado en "pos"
    s = "#{descripcion[pos]}"
    s #se devuelve e imprime
end

#get_platosObject

devuelve todos los platos que hay con sus descripciones



47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/pract07/Dieta.rb', line 47

def get_platos #devuelve todos los platos que hay con sus descripciones
    i=0
    s= ""
    while (descripcion[i] != nil && cantidad[i] != nil) do
        s += "- #{descripcion[i]}, "
        if (racion[i] != nil)
            s += "#{racion[i]}, "
        end
        s += "#{cantidad[i]} g"
        s += "\n"
        i += 1
    end
    s #se devuelve e imprime
end

#get_tituloObject

devuelve el tipo de comida mas su ingesta diaria



62
63
64
65
66
67
68
69
70
# File 'lib/pract07/Dieta.rb', line 62

def get_titulo #devuelve el tipo de comida mas su ingesta diaria
    s = "#{tipo_dieta} "
    if (ingesta2[1] == nil)
    s += "(#{ingesta2[0]}%)"
    else
    s += "(#{ingesta2[0]}% - #{ingesta2[1]}%)"
    end
    s #se devuelve e imprime
end

#get_to_(pos) ⇒ Object

devuelve una linea con la descripcion completa de un plato



77
78
79
80
81
82
83
84
# File 'lib/pract07/Dieta.rb', line 77

def get_to_(pos) #devuelve una linea con la descripcion completa de un plato
    s = "- #{descripcion[pos]}, "
    if (racion[pos] != nil)
      s += "#{racion[pos]}, "
    end
    s += "#{cantidad[pos]} g"
    s #se devuelve e imprime
end

#ingesta(text, options = {}) ⇒ Object



33
34
35
36
37
38
# File 'lib/pract07/Dieta.rb', line 33

def ingesta(text, options = {})
  ingesta = text
  ingesta << "#{options[:min]}" if options[:min]
  ingesta << "#{options[:max]}" if options[:max]
  ingesta2 << ingesta
end

#plato(options = {}) ⇒ Object



27
28
29
30
31
# File 'lib/pract07/Dieta.rb', line 27

def plato(options = {})
  descripcion << "#{options[:descripcion]}" if options[:descripcion]
  racion << "#{options[:porcion]}" if options[:porcion]
  cantidad << "#{options[:gramos]}" if options[:gramos]
end

#porcentajes(options = {}) ⇒ Object



40
41
42
43
44
45
# File 'lib/pract07/Dieta.rb', line 40

def porcentajes(options = {})
  kcal << "#{options[:vct]}" if options[:vct]
  proteinas << "#{options[:proteinas]}" if options[:proteinas]
  grasas << "#{options[:grasas]}" if options[:grasas]
  hidratos << "#{options[:hidratos]}" if options[:hidratos]
end

#titulo(text) ⇒ Object



23
24
25
# File 'lib/pract07/Dieta.rb', line 23

def titulo(text)
  self.tipo_dieta = text
end

#to_sObject

devuelve la salida con todos los datos



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/pract07/Dieta.rb', line 86

def to_s #devuelve la salida con todos los datos
  s = "#{tipo_dieta} "
  if (ingesta2[1] == nil)
    s += "(#{ingesta2[0]}%)"
  else
    s += "(#{ingesta2[0]}% - #{ingesta2[1]}%)"
  end
  s += "\n"
  i = 0
  while (descripcion[i] != nil && cantidad[i] != nil) do
    s += "- #{descripcion[i]}, "
    if (racion[i] != nil)
      s += "#{racion[i]}, "
    end
    s += "#{cantidad[i]} g"
    s += "\n"
    i += 1
  end
  s += "V.C.T. | %"
  s += "\t"
  s += "#{kcal[0]} kcal |"
  if (proteinas != nil)
    s += " #{proteinas[0]}%"
    s += " -"
  end
  if (grasas != nil)
    s += " #{grasas[0]}%"
    s += " -"
  end
  if (hidratos != nil)
    s += " #{hidratos[0]}%"
  end
  s #se devuelve e imprime
end