Class: DietaDSL

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/gema/dieta_dsl.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

Returns a new instance of DietaDSL.



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

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)

Constructor de la clase Dieta



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

def nombre
  @nombre
end

#platosObject (readonly)

Platos de la Dieta



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

def platos
  @platos
end

#porcentaje_ingestaObject (readonly)

Porcentaje de ingesta diaria de la Dieta



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

def porcentaje_ingesta
  @porcentaje_ingesta
end

#porcentajesObject (readonly)

Porcentajes de proteínas, grasas e hidratos de carbono de la Dieta



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

def porcentajes
  @porcentajes
end

#tituloObject (readonly)

Título de la Dieta



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

def titulo
  @titulo
end

#vctObject (readonly)

Valor calórico de la Dieta



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

def vct
  @vct
end

Instance Method Details

#<=>(other) ⇒ Object

Método que es necesario definir para poder utilizar el módulo Comparable



41
42
43
44
# File 'lib/gema/dieta_dsl.rb', line 41

def <=> (other)

	vct <=> other.vct
end

#==(other) ⇒ Object

Método para saber si dos dietas son iguales ( se especifica explícitamente en vez de usar el <=> )



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

def == (other)
	vct == other.vct && porcentajes==other.porcentajes

end

#get_desc_plato(i) ⇒ Object

Método que devuelve la descripción de uno de los platos



61
62
63
# File 'lib/gema/dieta_dsl.rb', line 61

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

#get_grasasObject

Método que devuelve el porcentaje de grasas de la dieta



90
91
92
# File 'lib/gema/dieta_dsl.rb', line 90

def get_grasas         
	@porcentajes[1]    
end

#get_hidratosObject

Método que devuelve el porcentaje de hidratos de la



95
96
97
# File 'lib/gema/dieta_dsl.rb', line 95

def get_hidratos         
	@porcentajes[2]     
end

#get_ingesta_diariaObject

Método que devuelve la ingesta diaria de la Dieta



66
67
68
# File 'lib/gema/dieta_dsl.rb', line 66

def get_ingesta_diaria         
	@porcentaje_ingesta    
end

#get_plato(i) ⇒ Object

Método que devuelve un plato de una dieta



70
71
72
# File 'lib/gema/dieta_dsl.rb', line 70

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

#get_platosObject

Método que devuelve los platos de la dieta



75
76
77
# File 'lib/gema/dieta_dsl.rb', line 75

def get_platos       
	@platos   
end

#get_proteinasObject

Método que devuelve el porcentaje de proteínas de la dieta



85
86
87
# File 'lib/gema/dieta_dsl.rb', line 85

def get_proteinas         
	@porcentajes[0]     
end

#get_tituloObject

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



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

def get_titulo        
	@titulo    
end

#get_vctObject

Método que devuelve el VCT



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

def get_vct         
	@vct     
end

#ingesta_(opciones = {}) ⇒ Object



103
104
105
106
107
108
109
# File 'lib/gema/dieta_dsl.rb', line 103

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

end

#plato_(opciones = {}) ⇒ Object



111
112
113
114
115
116
117
118
119
120
121
# File 'lib/gema/dieta_dsl.rb', line 111

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



123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/gema/dieta_dsl.rb', line 123

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



99
100
101
# File 'lib/gema/dieta_dsl.rb', line 99

def titulo_(name)
	@titulo = name
end

#to_sObject

Método para imprimir la Dieta



47
48
49
50
51
52
53
# File 'lib/gema/dieta_dsl.rb', line 47

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