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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

[View source]

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

def get_vct         
	@vct     
end

#ingesta_(opciones = {}) ⇒ Object

[View source]

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

[View source]

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

[View source]

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

[View source]

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

def titulo_(name)
	@titulo = name
end

#to_sObject

Método para imprimir Dieta

[View source]

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