Class: DietaDSL

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/gema/dietadsl.rb

Overview

Clase Dieta

Direct Known Subclasses

Menu_AlimentosDSL, Menu_EdadDSL

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nombre, &block) ⇒ DietaDSL

Constructor de la clase Dieta



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/gema/dietadsl.rb', line 18

def initialize(nombre,&block)
  @nombre = nombre
  @titulo = ""
  @porcentaje_ingesta = ""
  @platos = []
  @vct = 0
  @porcentajes = []
  if block_given?  
    if block.arity == 1
      yield self
    else
      instance_eval(&block) 
    end
  end

end

Instance Attribute Details

#nombreObject (readonly)

Nombre



16
17
18
# File 'lib/gema/dietadsl.rb', line 16

def nombre
  @nombre
end

#platosObject (readonly)

PLatos de la Dieta



10
11
12
# File 'lib/gema/dietadsl.rb', line 10

def platos
  @platos
end

#porcentaje_ingestaObject (readonly)

Porcentaje de la ingesta diaria de la Dieta



8
9
10
# File 'lib/gema/dietadsl.rb', line 8

def porcentaje_ingesta
  @porcentaje_ingesta
end

#porcentajesObject (readonly)

Porcentaje de proteinas, grasas e hidratos de carbono de la Dieta



14
15
16
# File 'lib/gema/dietadsl.rb', line 14

def porcentajes
  @porcentajes
end

#tituloObject (readonly)

Titulo de la Dieta



6
7
8
# File 'lib/gema/dietadsl.rb', line 6

def titulo
  @titulo
end

#vctObject (readonly)

Valor calórico de la Dieta



12
13
14
# File 'lib/gema/dietadsl.rb', line 12

def vct
  @vct
end

Instance Method Details

#<=>(another) ⇒ Object

Método necesario para poder utilizar el módulo comparable



36
37
38
# File 'lib/gema/dietadsl.rb', line 36

def <=>(another)
    vct <=> another.vct
end

#get_desc_plato(i) ⇒ Object

Método que devuelve las descripciones de los platos de la Dieta



52
53
54
# File 'lib/gema/dietadsl.rb', line 52

def get_desc_plato(i)         
  "#{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]}  "    
end

#get_grasasObject

Método que el porcentaje de grasas de la Dieta



76
77
78
# File 'lib/gema/dietadsl.rb', line 76

def get_grasas         
  @porcentajes[1]    
end

#get_hidratosObject

Método que el porcentaje de hidratos de carbono de la Dieta



80
81
82
# File 'lib/gema/dietadsl.rb', line 80

def get_hidratos         
  @porcentajes[2]     
end

#get_ingesta_diariaObject

Método que devuelve la ingesta diaria de la Dieta



56
57
58
# File 'lib/gema/dietadsl.rb', line 56

def get_ingesta_diaria         
  @porcentaje_ingesta    
end

#get_plato(i) ⇒ Object

Método que devuelve la descripcion de un plato de la Dieta



60
61
62
# File 'lib/gema/dietadsl.rb', line 60

def get_plato(i)         
  @platos[i][0]     
end

#get_platosObject

Método que devuelve los platos de la Dieta



64
65
66
# File 'lib/gema/dietadsl.rb', line 64

def get_platos       
  @platos   
end

#get_proteinasObject

Método que el porcentaje de proteinas de la Dieta



72
73
74
# File 'lib/gema/dietadsl.rb', line 72

def get_proteinas         
  @porcentajes[0]     
end

#get_tituloObject

Método que devuelve el título de la Dieta



48
49
50
# File 'lib/gema/dietadsl.rb', line 48

def get_titulo        
  @titulo    
end

#get_vctObject

Método que el valor calórico de la Dieta



68
69
70
# File 'lib/gema/dietadsl.rb', line 68

def get_vct         
  @vct     
end

#ingesta_(opciones = {}) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/gema/dietadsl.rb', line 87

def ingesta_(opciones={})
  ingest = ""
  ingest << "#{opciones[:min]}" if opciones[:min]
  ingest<<"-#{opciones[:max]} %" if opciones[:max]
  @porcentaje_ingesta = ingest

end

#plato_(opciones = {}) ⇒ Object



95
96
97
98
99
100
101
102
103
104
# File 'lib/gema/dietadsl.rb', line 95

def plato_(opciones={})
  grams= ""
  descripcion=""
  porcion=""
  grams= "#{opciones[:gramos]} g" if opciones[:gramos]
  descripcion = opciones[:descripcion] if opciones[:descripcion]
  porcion = opciones[:porcion] if opciones[:porcion]
  @platos.push([descripcion,porcion,grams]) 

end

#porcentajes_(opciones = {}) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/gema/dietadsl.rb', line 106

def porcentajes_(opciones={})
  @vct = opciones[:vct] if opciones[:vct]
  proteinas = ""
  grasas = ""
  hidratos=""
  proteinas = opciones[:proteinas] if opciones[:proteinas]
  grasas = opciones[:grasas] if opciones[:grasas]
  hidratos = opciones[:hidratos] if opciones[:hidratos]
  @porcentajes.push(proteinas)
  @porcentajes.push(grasas)
  @porcentajes.push(hidratos)


end

#titulo_(name) ⇒ Object



83
84
85
# File 'lib/gema/dietadsl.rb', line 83

def titulo_(name)
  @titulo = name
end

#to_sObject

Método para imprimir Dieta



40
41
42
43
44
45
46
# File 'lib/gema/dietadsl.rb', line 40

def to_s
  title = "#{@titulo} ( #{@porcentaje_ingesta} )\n "
  for i in 0..@platos.size-1             
    title +="- #{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]}  \n"
      end  
  title += "V.C.T. |%   #{@vct} kcal | #{@porcentajes[0]}% - #{@porcentajes[1]}% - #{@porcentajes[2]}%"
end