menu-alu0100821390 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/Guardfile +82 -0
- data/LICENSE.txt +21 -0
- data/README.md +41 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/doc/CODE_OF_CONDUCT_md.html +147 -0
- data/doc/DietaPorAlimentos.html +269 -0
- data/doc/DietaPorEdades.html +269 -0
- data/doc/Gemfile.html +98 -0
- data/doc/Guardfile.html +178 -0
- data/doc/LICENSE_txt.html +115 -0
- data/doc/Lista.html +477 -0
- data/doc/Menu/Menu.html +751 -0
- data/doc/Menu.html +113 -0
- data/doc/Object.html +116 -0
- data/doc/README_md.html +162 -0
- data/doc/Rakefile.html +99 -0
- data/doc/bin/setup.html +99 -0
- data/doc/created.rid +18 -0
- data/doc/css/fonts.css +167 -0
- data/doc/css/rdoc.css +590 -0
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +113 -0
- data/doc/js/darkfish.js +161 -0
- data/doc/js/jquery.js +4 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search.js +109 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js +228 -0
- data/doc/js/searcher.js.gz +0 -0
- data/doc/menu_gemspec.html +131 -0
- data/doc/table_of_contents.html +235 -0
- data/lib/menu/codigo_alimentos.rb +21 -0
- data/lib/menu/codigo_edades.rb +21 -0
- data/lib/menu/codigo_lista.rb +104 -0
- data/lib/menu/codigo_menu.rb +103 -0
- data/lib/menu/codigo_menu_dsl.rb +70 -0
- data/lib/menu/version.rb +5 -0
- data/lib/menu.rb +10 -0
- data/menu.gemspec +36 -0
- metadata +205 -0
@@ -0,0 +1,235 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta charset="UTF-8">
|
6
|
+
|
7
|
+
<title>Table of Contents - RDoc Documentation</title>
|
8
|
+
|
9
|
+
<script type="text/javascript">
|
10
|
+
var rdoc_rel_prefix = "./";
|
11
|
+
</script>
|
12
|
+
|
13
|
+
<script src="./js/jquery.js"></script>
|
14
|
+
<script src="./js/darkfish.js"></script>
|
15
|
+
|
16
|
+
<link href="./css/fonts.css" rel="stylesheet">
|
17
|
+
<link href="./css/rdoc.css" rel="stylesheet">
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
<body id="top" class="table-of-contents">
|
22
|
+
<main role="main">
|
23
|
+
<h1 class="class">Table of Contents - RDoc Documentation</h1>
|
24
|
+
|
25
|
+
<h2 id="pages">Pages</h2>
|
26
|
+
<ul>
|
27
|
+
<li class="file">
|
28
|
+
<a href="CODE_OF_CONDUCT_md.html">CODE_OF_CONDUCT</a>
|
29
|
+
|
30
|
+
<ul>
|
31
|
+
<li><a href="CODE_OF_CONDUCT_md.html#label-Contributor+Code+of+Conduct">Contributor Code of Conduct</a>
|
32
|
+
</ul>
|
33
|
+
</li>
|
34
|
+
<li class="file">
|
35
|
+
<a href="Gemfile.html">Gemfile</a>
|
36
|
+
</li>
|
37
|
+
<li class="file">
|
38
|
+
<a href="Guardfile.html">Guardfile</a>
|
39
|
+
</li>
|
40
|
+
<li class="file">
|
41
|
+
<a href="LICENSE_txt.html">LICENSE</a>
|
42
|
+
</li>
|
43
|
+
<li class="file">
|
44
|
+
<a href="README_md.html">README</a>
|
45
|
+
|
46
|
+
<ul>
|
47
|
+
<li><a href="README_md.html#label-Menu">Menu</a>
|
48
|
+
<li><a href="README_md.html#label-Installation">Installation</a>
|
49
|
+
<li><a href="README_md.html#label-Usage">Usage</a>
|
50
|
+
<li><a href="README_md.html#label-Development">Development</a>
|
51
|
+
<li><a href="README_md.html#label-Contributing">Contributing</a>
|
52
|
+
<li><a href="README_md.html#label-License">License</a>
|
53
|
+
</ul>
|
54
|
+
</li>
|
55
|
+
<li class="file">
|
56
|
+
<a href="Rakefile.html">Rakefile</a>
|
57
|
+
</li>
|
58
|
+
<li class="file">
|
59
|
+
<a href="bin/setup.html">setup</a>
|
60
|
+
</li>
|
61
|
+
<li class="file">
|
62
|
+
<a href="menu_gemspec.html">menu.gemspec</a>
|
63
|
+
</li>
|
64
|
+
|
65
|
+
</ul>
|
66
|
+
|
67
|
+
<h2 id="classes">Classes and Modules</h2>
|
68
|
+
<ul>
|
69
|
+
<li class="class">
|
70
|
+
<a href="DietaPorAlimentos.html">DietaPorAlimentos</a>
|
71
|
+
</li>
|
72
|
+
<li class="class">
|
73
|
+
<a href="DietaPorEdades.html">DietaPorEdades</a>
|
74
|
+
</li>
|
75
|
+
<li class="class">
|
76
|
+
<a href="Lista.html">Lista</a>
|
77
|
+
</li>
|
78
|
+
<li class="module">
|
79
|
+
<a href="Menu.html">Menu</a>
|
80
|
+
</li>
|
81
|
+
<li class="class">
|
82
|
+
<a href="Menu/Menu.html">Menu::Menu</a>
|
83
|
+
</li>
|
84
|
+
<li class="class">
|
85
|
+
<a href="Object.html">Object</a>
|
86
|
+
</li>
|
87
|
+
</ul>
|
88
|
+
|
89
|
+
<h2 id="methods">Methods</h2>
|
90
|
+
<ul>
|
91
|
+
|
92
|
+
<li class="method">
|
93
|
+
<a href="DietaPorAlimentos.html#method-c-new">::new</a>
|
94
|
+
—
|
95
|
+
<span class="container">DietaPorAlimentos</span>
|
96
|
+
|
97
|
+
<li class="method">
|
98
|
+
<a href="DietaPorEdades.html#method-c-new">::new</a>
|
99
|
+
—
|
100
|
+
<span class="container">DietaPorEdades</span>
|
101
|
+
|
102
|
+
<li class="method">
|
103
|
+
<a href="Lista.html#method-c-new">::new</a>
|
104
|
+
—
|
105
|
+
<span class="container">Lista</span>
|
106
|
+
|
107
|
+
<li class="method">
|
108
|
+
<a href="Menu/Menu.html#method-c-new">::new</a>
|
109
|
+
—
|
110
|
+
<span class="container">Menu::Menu</span>
|
111
|
+
|
112
|
+
<li class="method">
|
113
|
+
<a href="Menu/Menu.html#method-i-3C-3D-3E">#<=></a>
|
114
|
+
—
|
115
|
+
<span class="container">Menu::Menu</span>
|
116
|
+
|
117
|
+
<li class="method">
|
118
|
+
<a href="Lista.html#method-i-each">#each</a>
|
119
|
+
—
|
120
|
+
<span class="container">Lista</span>
|
121
|
+
|
122
|
+
<li class="method">
|
123
|
+
<a href="Lista.html#method-i-empty">#empty</a>
|
124
|
+
—
|
125
|
+
<span class="container">Lista</span>
|
126
|
+
|
127
|
+
<li class="method">
|
128
|
+
<a href="Lista.html#method-i-extract_final">#extract_final</a>
|
129
|
+
—
|
130
|
+
<span class="container">Lista</span>
|
131
|
+
|
132
|
+
<li class="method">
|
133
|
+
<a href="Lista.html#method-i-extract_inicio">#extract_inicio</a>
|
134
|
+
—
|
135
|
+
<span class="container">Lista</span>
|
136
|
+
|
137
|
+
<li class="method">
|
138
|
+
<a href="Menu/Menu.html#method-i-get_conjunto_plat">#get_conjunto_plat</a>
|
139
|
+
—
|
140
|
+
<span class="container">Menu::Menu</span>
|
141
|
+
|
142
|
+
<li class="method">
|
143
|
+
<a href="Menu/Menu.html#method-i-get_desc">#get_desc</a>
|
144
|
+
—
|
145
|
+
<span class="container">Menu::Menu</span>
|
146
|
+
|
147
|
+
<li class="method">
|
148
|
+
<a href="Menu/Menu.html#method-i-get_grss">#get_grss</a>
|
149
|
+
—
|
150
|
+
<span class="container">Menu::Menu</span>
|
151
|
+
|
152
|
+
<li class="method">
|
153
|
+
<a href="Menu/Menu.html#method-i-get_hidr">#get_hidr</a>
|
154
|
+
—
|
155
|
+
<span class="container">Menu::Menu</span>
|
156
|
+
|
157
|
+
<li class="method">
|
158
|
+
<a href="Menu/Menu.html#method-i-get_ing">#get_ing</a>
|
159
|
+
—
|
160
|
+
<span class="container">Menu::Menu</span>
|
161
|
+
|
162
|
+
<li class="method">
|
163
|
+
<a href="Menu/Menu.html#method-i-get_porcentaje">#get_porcentaje</a>
|
164
|
+
—
|
165
|
+
<span class="container">Menu::Menu</span>
|
166
|
+
|
167
|
+
<li class="method">
|
168
|
+
<a href="Menu/Menu.html#method-i-get_prcn">#get_prcn</a>
|
169
|
+
—
|
170
|
+
<span class="container">Menu::Menu</span>
|
171
|
+
|
172
|
+
<li class="method">
|
173
|
+
<a href="Menu/Menu.html#method-i-get_prot">#get_prot</a>
|
174
|
+
—
|
175
|
+
<span class="container">Menu::Menu</span>
|
176
|
+
|
177
|
+
<li class="method">
|
178
|
+
<a href="Menu/Menu.html#method-i-get_titulo">#get_titulo</a>
|
179
|
+
—
|
180
|
+
<span class="container">Menu::Menu</span>
|
181
|
+
|
182
|
+
<li class="method">
|
183
|
+
<a href="Menu/Menu.html#method-i-get_un_plat">#get_un_plat</a>
|
184
|
+
—
|
185
|
+
<span class="container">Menu::Menu</span>
|
186
|
+
|
187
|
+
<li class="method">
|
188
|
+
<a href="Menu/Menu.html#method-i-get_vct">#get_vct</a>
|
189
|
+
—
|
190
|
+
<span class="container">Menu::Menu</span>
|
191
|
+
|
192
|
+
<li class="method">
|
193
|
+
<a href="Lista.html#method-i-insert_final">#insert_final</a>
|
194
|
+
—
|
195
|
+
<span class="container">Lista</span>
|
196
|
+
|
197
|
+
<li class="method">
|
198
|
+
<a href="Lista.html#method-i-insert_inicio">#insert_inicio</a>
|
199
|
+
—
|
200
|
+
<span class="container">Lista</span>
|
201
|
+
|
202
|
+
<li class="method">
|
203
|
+
<a href="DietaPorAlimentos.html#method-i-pop">#pop</a>
|
204
|
+
—
|
205
|
+
<span class="container">DietaPorAlimentos</span>
|
206
|
+
|
207
|
+
<li class="method">
|
208
|
+
<a href="DietaPorEdades.html#method-i-pop">#pop</a>
|
209
|
+
—
|
210
|
+
<span class="container">DietaPorEdades</span>
|
211
|
+
|
212
|
+
<li class="method">
|
213
|
+
<a href="DietaPorAlimentos.html#method-i-push">#push</a>
|
214
|
+
—
|
215
|
+
<span class="container">DietaPorAlimentos</span>
|
216
|
+
|
217
|
+
<li class="method">
|
218
|
+
<a href="DietaPorEdades.html#method-i-push">#push</a>
|
219
|
+
—
|
220
|
+
<span class="container">DietaPorEdades</span>
|
221
|
+
|
222
|
+
<li class="method">
|
223
|
+
<a href="Menu/Menu.html#method-i-to_s">#to_s</a>
|
224
|
+
—
|
225
|
+
<span class="container">Menu::Menu</span>
|
226
|
+
</ul>
|
227
|
+
</main>
|
228
|
+
|
229
|
+
|
230
|
+
<footer id="validator-badges" role="contentinfo">
|
231
|
+
<p><a href="http://validator.w3.org/check/referer">Validate</a>
|
232
|
+
<p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.2.
|
233
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
234
|
+
</footer>
|
235
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Clase hija de Menu que representa una dieta por grupos de edad
|
2
|
+
class DietaPorAlimentos < Menu::Menu
|
3
|
+
# Atributos
|
4
|
+
attr_reader :dieta, :alimentos
|
5
|
+
|
6
|
+
# Meodo initialize para la llamada del new
|
7
|
+
def initialize(alim)
|
8
|
+
@dieta = Lista.new()
|
9
|
+
@alimentos = alim
|
10
|
+
end
|
11
|
+
|
12
|
+
# Método que introduce un menú en la lista
|
13
|
+
def push(menu)
|
14
|
+
@dieta.insert_final(menu)
|
15
|
+
end
|
16
|
+
|
17
|
+
#Método que extrae un menú de la lista
|
18
|
+
def pop
|
19
|
+
@dieta.extract_inicio
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Clase hija de Menu que representa una dieta por grupos de alimentos
|
2
|
+
class DietaPorEdades < Menu::Menu
|
3
|
+
# Atributos
|
4
|
+
attr_reader :dieta, :edades
|
5
|
+
|
6
|
+
# Meodo initialize para la llamada del new
|
7
|
+
def initialize(edad)
|
8
|
+
@dieta = Lista.new()
|
9
|
+
@edades = edad
|
10
|
+
end
|
11
|
+
|
12
|
+
# Método que introduce un menú en la lista
|
13
|
+
def push(menu)
|
14
|
+
@dieta.insert_final(menu)
|
15
|
+
end
|
16
|
+
|
17
|
+
#Método que extrae un menú de la lista
|
18
|
+
def pop
|
19
|
+
@dieta.extract_inicio
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# Struct que representa los nodos de una lista doblemente enlazada
|
2
|
+
Nodo = Struct.new(:value, :next, :prev)
|
3
|
+
|
4
|
+
# Clase que representa una lista doblemente enlazada
|
5
|
+
class Lista
|
6
|
+
# Se incluye el módulo Enumerable
|
7
|
+
include Enumerable
|
8
|
+
#Atributos
|
9
|
+
attr_reader :inicio, :final
|
10
|
+
|
11
|
+
# Método each para que la clase sea enumerable
|
12
|
+
def each
|
13
|
+
nodo = @inicio
|
14
|
+
while (nodo != nil)
|
15
|
+
yield nodo.value
|
16
|
+
nodo = nodo.next
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Meodo initialize para la llamada del new
|
21
|
+
def initialize()
|
22
|
+
@inicio = nil
|
23
|
+
@final = nil
|
24
|
+
end
|
25
|
+
|
26
|
+
# Método que compurba si la lista está vacía
|
27
|
+
def empty()
|
28
|
+
if (@inicio == nil)
|
29
|
+
vacio = true
|
30
|
+
else
|
31
|
+
vacio = false
|
32
|
+
end
|
33
|
+
|
34
|
+
vacio
|
35
|
+
end
|
36
|
+
|
37
|
+
# Método que inserta un menú por el inicio
|
38
|
+
def insert_inicio (valor)
|
39
|
+
aux_nodo = Nodo.new(valor, nil, nil)
|
40
|
+
|
41
|
+
if(empty)
|
42
|
+
@final = aux_nodo
|
43
|
+
@inicio = aux_nodo
|
44
|
+
else
|
45
|
+
aux_nodo.next = @inicio
|
46
|
+
@inicio.prev = aux_nodo
|
47
|
+
@inicio = aux_nodo
|
48
|
+
end
|
49
|
+
|
50
|
+
true
|
51
|
+
end
|
52
|
+
|
53
|
+
# Método que extrae un menú por el inicio
|
54
|
+
def extract_inicio
|
55
|
+
if(empty)
|
56
|
+
valor = false
|
57
|
+
else
|
58
|
+
valor = @inicio.value
|
59
|
+
if (@inicio.next == nil)
|
60
|
+
@inicio = nil
|
61
|
+
@final = nil
|
62
|
+
else
|
63
|
+
@inicio = @inicio.next
|
64
|
+
@inicio.prev = nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
valor
|
69
|
+
end
|
70
|
+
|
71
|
+
# Método que inserta un menú por el final
|
72
|
+
def insert_final (valor)
|
73
|
+
aux_nodo = Nodo.new(valor, nil, nil)
|
74
|
+
|
75
|
+
if(empty)
|
76
|
+
@final = aux_nodo
|
77
|
+
@inicio = aux_nodo
|
78
|
+
else
|
79
|
+
aux_nodo.prev = @final
|
80
|
+
@final.next = aux_nodo
|
81
|
+
@final = aux_nodo
|
82
|
+
end
|
83
|
+
|
84
|
+
true
|
85
|
+
end
|
86
|
+
|
87
|
+
# Método que extrae un menú por el final
|
88
|
+
def extract_final
|
89
|
+
if(empty)
|
90
|
+
valor = false
|
91
|
+
else
|
92
|
+
valor = @final.value
|
93
|
+
if (@final.prev == nil)
|
94
|
+
@inicio = nil
|
95
|
+
@final = nil
|
96
|
+
else
|
97
|
+
@final = @final.prev
|
98
|
+
@final.next = nil
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
valor
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
# Módulo para representar menús
|
2
|
+
module Menu
|
3
|
+
# Clase que representa menús dietéticos
|
4
|
+
class Menu
|
5
|
+
# Se incluye el módulo Comparable
|
6
|
+
include Comparable
|
7
|
+
# Atributos
|
8
|
+
attr_reader :titulo , :porcent, :plat, :vct, :prot, :grss, :hidr
|
9
|
+
|
10
|
+
# Método para la comparación de menús con el módulo comparable
|
11
|
+
def <=>(other)
|
12
|
+
vct <=> other.vct
|
13
|
+
end
|
14
|
+
|
15
|
+
# Meodo initialize para la llamada del new
|
16
|
+
def initialize (titulo, porcent, plat, vct, prot, grss, hidr)
|
17
|
+
@titulo = titulo
|
18
|
+
@porcent = porcent
|
19
|
+
@plat = plat
|
20
|
+
@vct = vct
|
21
|
+
@prot = prot
|
22
|
+
@grss = grss
|
23
|
+
@hidr = hidr
|
24
|
+
end
|
25
|
+
|
26
|
+
# Método que devuelve el título del menú
|
27
|
+
def get_titulo
|
28
|
+
@titulo
|
29
|
+
end
|
30
|
+
|
31
|
+
# Método que devuelve el porcentaje diario de un menú
|
32
|
+
def get_porcentaje
|
33
|
+
@porcent
|
34
|
+
end
|
35
|
+
|
36
|
+
# Método que devuelve la descripción como string
|
37
|
+
def get_desc(n)
|
38
|
+
s = "#{@plat[n-1][0]}"
|
39
|
+
end
|
40
|
+
|
41
|
+
# Método que devuelve la porción como string
|
42
|
+
def get_prcn(n)
|
43
|
+
s = "#{@plat[n-1][1]}"
|
44
|
+
end
|
45
|
+
|
46
|
+
# Método que devuelve la ingesta como string
|
47
|
+
def get_ing(n)
|
48
|
+
s = "#{@plat[n-1][2]}"
|
49
|
+
end
|
50
|
+
|
51
|
+
# Método que devuelve un plato como string
|
52
|
+
def get_un_plat(n)
|
53
|
+
s = "#{get_desc(n)}, "
|
54
|
+
s << "#{get_prcn(n)}, "
|
55
|
+
s << "#{get_ing(n)}"
|
56
|
+
s
|
57
|
+
end
|
58
|
+
|
59
|
+
# Método que devuelve el conjunto de platos como string
|
60
|
+
def get_conjunto_plat
|
61
|
+
i = 1
|
62
|
+
s = ""
|
63
|
+
while i <= @plat.length
|
64
|
+
s << "- #{get_un_plat(i)}"
|
65
|
+
i += 1
|
66
|
+
if i <= @plat.length
|
67
|
+
s << "\n"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
s
|
71
|
+
end
|
72
|
+
|
73
|
+
# Método que devuelve el VCT como string
|
74
|
+
def get_vct
|
75
|
+
@vct
|
76
|
+
end
|
77
|
+
|
78
|
+
# Método que devuelve el porcentaje de proteínas como string
|
79
|
+
def get_prot
|
80
|
+
@prot
|
81
|
+
end
|
82
|
+
|
83
|
+
# Método que devuelve el porcentaje de grasas como string
|
84
|
+
def get_grss
|
85
|
+
@grss
|
86
|
+
end
|
87
|
+
|
88
|
+
# Método que devuelve el porcentaje de carbohidratos como string
|
89
|
+
def get_hidr
|
90
|
+
@hidr
|
91
|
+
end
|
92
|
+
|
93
|
+
# Método que devuelve el menú como string
|
94
|
+
def to_s
|
95
|
+
s = "\n#{get_titulo} (#{get_porcentaje})\n#{get_conjunto_plat}"
|
96
|
+
s << "\nVCT: #{get_vct} kcal | "
|
97
|
+
s << "#{get_prot}% proteínas - "
|
98
|
+
s << "#{get_grss}% grasas - "
|
99
|
+
s << "#{get_hidr}% hidratos de carbono\n"
|
100
|
+
s
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
class Menu_DSL
|
2
|
+
attr_accessor :dia, :titu, :porc, :plat, :vct, :prot, :gras, :hidr
|
3
|
+
|
4
|
+
def initialize(dia, &block)
|
5
|
+
self.dia = dia
|
6
|
+
self.titu = ""
|
7
|
+
self.porc = []
|
8
|
+
self.plat = []
|
9
|
+
self.vct = nil
|
10
|
+
self.prot = nil
|
11
|
+
self.gras = nil
|
12
|
+
self.hidr = nil
|
13
|
+
|
14
|
+
if block_given?
|
15
|
+
if block.arity == 1
|
16
|
+
yield self
|
17
|
+
else
|
18
|
+
instance_eval(&block)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_s
|
24
|
+
output = "\n#{dia}"
|
25
|
+
output << "\n#{'=' * dia.size}\n\n"
|
26
|
+
output << "#{titu} | (#{porc.join(' - ')})%\n"
|
27
|
+
plat.each_with_index do |platos|
|
28
|
+
output << "- "
|
29
|
+
platos.each_with_index do |plato, index|
|
30
|
+
output << "#{plato}"
|
31
|
+
if index+1 != platos.size
|
32
|
+
output << ", "
|
33
|
+
end
|
34
|
+
end
|
35
|
+
output << "\n"
|
36
|
+
end
|
37
|
+
output << "V.C.T | %\t#{vct} kcal | "
|
38
|
+
output << "#{prot}% - #{gras}% - #{hidr}%"
|
39
|
+
|
40
|
+
output
|
41
|
+
end
|
42
|
+
|
43
|
+
def titulo (titul)
|
44
|
+
titu << titul
|
45
|
+
end
|
46
|
+
|
47
|
+
def ingesta (options = {})
|
48
|
+
porcentaje = []
|
49
|
+
porcentaje << options[:min] if options[:min]
|
50
|
+
porcentaje << options[:max] if options[:max]
|
51
|
+
|
52
|
+
porc << porcentaje
|
53
|
+
end
|
54
|
+
|
55
|
+
def plato (options = {})
|
56
|
+
platos = []
|
57
|
+
platos << options[:descripcion] if options[:descripcion]
|
58
|
+
platos << options[:porcion] if options[:porcion]
|
59
|
+
platos << options[:gramos] if options[:gramos]
|
60
|
+
|
61
|
+
plat << platos
|
62
|
+
end
|
63
|
+
|
64
|
+
def porcentajes (options = {})
|
65
|
+
@vct = options[:kcals] if options[:kcals]
|
66
|
+
@prot = options[:proteinas] if options[:proteinas]
|
67
|
+
@gras = options[:grasas] if options[:grasas]
|
68
|
+
@hidr = options[:hidratos] if options[:hidratos]
|
69
|
+
end
|
70
|
+
end
|
data/lib/menu/version.rb
ADDED
data/lib/menu.rb
ADDED
data/menu.gemspec
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'menu/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "menu-alu0100821390"
|
8
|
+
spec.version = Menu::VERSION
|
9
|
+
spec.authors = ["alu0100821390"]
|
10
|
+
spec.email = ["alu0100821390@ull.edu.es"]
|
11
|
+
|
12
|
+
spec.summary = %q{Menús dietéticos}
|
13
|
+
spec.description = %q{Definición de menús dietéticos por días}
|
14
|
+
spec.homepage = "https://github.com/ULL-ESIT-LPP-1617/menu-dietetico-alu0100821390"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
+
#if spec.respond_to?(:metadata)
|
20
|
+
# spec.metadata['allowed_push_host'] = "https://rubygems.org/"
|
21
|
+
#else
|
22
|
+
# raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
23
|
+
#end
|
24
|
+
|
25
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
26
|
+
spec.bindir = "exe"
|
27
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
|
+
spec.require_paths = ["lib"]
|
29
|
+
|
30
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
31
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
33
|
+
spec.add_development_dependency "guard"
|
34
|
+
spec.add_development_dependency "guard-rspec"
|
35
|
+
spec.add_development_dependency "guard-bundler"
|
36
|
+
end
|