gemaalu0100884982 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/Guardfile +82 -0
  7. data/README.md +11 -0
  8. data/Rakefile +21 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/doc/Dieta.html +681 -0
  12. data/doc/Gema.html +97 -0
  13. data/doc/Gemfile.html +120 -0
  14. data/doc/Gemfile_lock.html +204 -0
  15. data/doc/Guardfile.html +200 -0
  16. data/doc/Lista.html +587 -0
  17. data/doc/Menu_Alimentos.html +234 -0
  18. data/doc/Menu_Edad.html +234 -0
  19. data/doc/Object.html +116 -0
  20. data/doc/README_md.html +129 -0
  21. data/doc/README_md~.html +128 -0
  22. data/doc/Rakefile.html +140 -0
  23. data/doc/Rakefile~.html +140 -0
  24. data/doc/bin/setup.html +121 -0
  25. data/doc/created.rid +30 -0
  26. data/doc/css/fonts.css +167 -0
  27. data/doc/css/rdoc.css +590 -0
  28. data/doc/fonts/Lato-Light.ttf +0 -0
  29. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  30. data/doc/fonts/Lato-Regular.ttf +0 -0
  31. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  32. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  33. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  34. data/doc/gema_gemspec.html +155 -0
  35. data/doc/gema_gemspec~.html +156 -0
  36. data/doc/images/add.png +0 -0
  37. data/doc/images/arrow_up.png +0 -0
  38. data/doc/images/brick.png +0 -0
  39. data/doc/images/brick_link.png +0 -0
  40. data/doc/images/bug.png +0 -0
  41. data/doc/images/bullet_black.png +0 -0
  42. data/doc/images/bullet_toggle_minus.png +0 -0
  43. data/doc/images/bullet_toggle_plus.png +0 -0
  44. data/doc/images/date.png +0 -0
  45. data/doc/images/delete.png +0 -0
  46. data/doc/images/find.png +0 -0
  47. data/doc/images/loadingAnimation.gif +0 -0
  48. data/doc/images/macFFBgHack.png +0 -0
  49. data/doc/images/package.png +0 -0
  50. data/doc/images/page_green.png +0 -0
  51. data/doc/images/page_white_text.png +0 -0
  52. data/doc/images/page_white_width.png +0 -0
  53. data/doc/images/plugin.png +0 -0
  54. data/doc/images/ruby.png +0 -0
  55. data/doc/images/tag_blue.png +0 -0
  56. data/doc/images/tag_green.png +0 -0
  57. data/doc/images/transparent.png +0 -0
  58. data/doc/images/wrench.png +0 -0
  59. data/doc/images/wrench_orange.png +0 -0
  60. data/doc/images/zoom.png +0 -0
  61. data/doc/index.html +135 -0
  62. data/doc/js/darkfish.js +161 -0
  63. data/doc/js/jquery.js +4 -0
  64. data/doc/js/navigation.js +142 -0
  65. data/doc/js/navigation.js.gz +0 -0
  66. data/doc/js/search.js +109 -0
  67. data/doc/js/search_index.js +1 -0
  68. data/doc/js/search_index.js.gz +0 -0
  69. data/doc/js/searcher.js +228 -0
  70. data/doc/js/searcher.js.gz +0 -0
  71. data/doc/lib/gema/dieta_rb~.html +253 -0
  72. data/doc/lib/gema/lista_dll_rb~.html +253 -0
  73. data/doc/lib/gema/lista_rb~.html +241 -0
  74. data/doc/lib/gema/version_rb~.html +122 -0
  75. data/doc/lib/gema_rb~.html +123 -0
  76. data/doc/spec/dieta_spec_rb~.html +286 -0
  77. data/doc/spec/herenciadieta_spec_rb~.html +222 -0
  78. data/doc/spec/lista_spec_rb~.html +396 -0
  79. data/doc/spec/spec_helper_rb~.html +118 -0
  80. data/doc/table_of_contents.html +258 -0
  81. data/gema.gemspec +40 -0
  82. data/lib/gema.rb +6 -0
  83. data/lib/gema/dieta.rb +134 -0
  84. data/lib/gema/dieta_dsl.rb +188 -0
  85. data/lib/gema/lista_dll.rb +157 -0
  86. data/lib/gema/version.rb +4 -0
  87. metadata +228 -0
@@ -0,0 +1,258 @@
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="Gemfile.html">Gemfile</a>
29
+ </li>
30
+ <li class="file">
31
+ <a href="Gemfile_lock.html">Gemfile.lock</a>
32
+ </li>
33
+ <li class="file">
34
+ <a href="Guardfile.html">Guardfile</a>
35
+ </li>
36
+ <li class="file">
37
+ <a href="README_md.html">README</a>
38
+
39
+ <ul>
40
+ <li><a href="README_md.html#label-23TDD+Lista">#TDD Lista</a>
41
+ </ul>
42
+ </li>
43
+ <li class="file">
44
+ <a href="README_md~.html">README.md~</a>
45
+
46
+ <ul>
47
+ <li><a href="README_md~.html#label-"></a>
48
+ </ul>
49
+ </li>
50
+ <li class="file">
51
+ <a href="Rakefile.html">Rakefile</a>
52
+ </li>
53
+ <li class="file">
54
+ <a href="Rakefile~.html">Rakefile~</a>
55
+ </li>
56
+ <li class="file">
57
+ <a href="bin/setup.html">setup</a>
58
+ </li>
59
+ <li class="file">
60
+ <a href="gema_gemspec.html">gema.gemspec</a>
61
+ </li>
62
+ <li class="file">
63
+ <a href="gema_gemspec~.html">gema.gemspec~</a>
64
+ </li>
65
+ <li class="file">
66
+ <a href="lib/gema_rb~.html">gema.rb~</a>
67
+ </li>
68
+ <li class="file">
69
+ <a href="lib/gema/dieta_rb~.html">dieta.rb~</a>
70
+ </li>
71
+ <li class="file">
72
+ <a href="lib/gema/lista_rb~.html">lista.rb~</a>
73
+ </li>
74
+ <li class="file">
75
+ <a href="lib/gema/lista_dll_rb~.html">lista_dll.rb~</a>
76
+ </li>
77
+ <li class="file">
78
+ <a href="lib/gema/version_rb~.html">version.rb~</a>
79
+ </li>
80
+ <li class="file">
81
+ <a href="spec/dieta_spec_rb~.html">dieta_spec.rb~</a>
82
+ </li>
83
+ <li class="file">
84
+ <a href="spec/herenciadieta_spec_rb~.html">herenciadieta_spec.rb~</a>
85
+ </li>
86
+ <li class="file">
87
+ <a href="spec/lista_spec_rb~.html">lista_spec.rb~</a>
88
+ </li>
89
+ <li class="file">
90
+ <a href="spec/spec_helper_rb~.html">spec_helper.rb~</a>
91
+ </li>
92
+
93
+ </ul>
94
+
95
+ <h2 id="classes">Classes and Modules</h2>
96
+ <ul>
97
+ <li class="class">
98
+ <a href="Dieta.html">Dieta</a>
99
+ </li>
100
+ <li class="module">
101
+ <a href="Gema.html">Gema</a>
102
+ </li>
103
+ <li class="class">
104
+ <a href="Lista.html">Lista</a>
105
+ </li>
106
+ <li class="class">
107
+ <a href="Menu_Alimentos.html">Menu_Alimentos</a>
108
+ </li>
109
+ <li class="class">
110
+ <a href="Menu_Edad.html">Menu_Edad</a>
111
+ </li>
112
+ <li class="class">
113
+ <a href="Object.html">Object</a>
114
+ </li>
115
+ </ul>
116
+
117
+ <h2 id="methods">Methods</h2>
118
+ <ul>
119
+
120
+ <li class="method">
121
+ <a href="Dieta.html#method-c-new">::new</a>
122
+ &mdash;
123
+ <span class="container">Dieta</span>
124
+
125
+ <li class="method">
126
+ <a href="Menu_Edad.html#method-c-new">::new</a>
127
+ &mdash;
128
+ <span class="container">Menu_Edad</span>
129
+
130
+ <li class="method">
131
+ <a href="Menu_Alimentos.html#method-c-new">::new</a>
132
+ &mdash;
133
+ <span class="container">Menu_Alimentos</span>
134
+
135
+ <li class="method">
136
+ <a href="Lista.html#method-c-new">::new</a>
137
+ &mdash;
138
+ <span class="container">Lista</span>
139
+
140
+ <li class="method">
141
+ <a href="Dieta.html#method-i-3C-3D-3E">#&lt;=&gt;</a>
142
+ &mdash;
143
+ <span class="container">Dieta</span>
144
+
145
+ <li class="method">
146
+ <a href="Dieta.html#method-i-3D-3D">#==</a>
147
+ &mdash;
148
+ <span class="container">Dieta</span>
149
+
150
+ <li class="method">
151
+ <a href="Lista.html#method-i-each">#each</a>
152
+ &mdash;
153
+ <span class="container">Lista</span>
154
+
155
+ <li class="method">
156
+ <a href="Dieta.html#method-i-get_desc_plato">#get_desc_plato</a>
157
+ &mdash;
158
+ <span class="container">Dieta</span>
159
+
160
+ <li class="method">
161
+ <a href="Dieta.html#method-i-get_grasas">#get_grasas</a>
162
+ &mdash;
163
+ <span class="container">Dieta</span>
164
+
165
+ <li class="method">
166
+ <a href="Dieta.html#method-i-get_hidratos">#get_hidratos</a>
167
+ &mdash;
168
+ <span class="container">Dieta</span>
169
+
170
+ <li class="method">
171
+ <a href="Dieta.html#method-i-get_ingesta_diaria">#get_ingesta_diaria</a>
172
+ &mdash;
173
+ <span class="container">Dieta</span>
174
+
175
+ <li class="method">
176
+ <a href="Dieta.html#method-i-get_plato">#get_plato</a>
177
+ &mdash;
178
+ <span class="container">Dieta</span>
179
+
180
+ <li class="method">
181
+ <a href="Dieta.html#method-i-get_platos">#get_platos</a>
182
+ &mdash;
183
+ <span class="container">Dieta</span>
184
+
185
+ <li class="method">
186
+ <a href="Dieta.html#method-i-get_proteinas">#get_proteinas</a>
187
+ &mdash;
188
+ <span class="container">Dieta</span>
189
+
190
+ <li class="method">
191
+ <a href="Dieta.html#method-i-get_titulo">#get_titulo</a>
192
+ &mdash;
193
+ <span class="container">Dieta</span>
194
+
195
+ <li class="method">
196
+ <a href="Dieta.html#method-i-get_vct">#get_vct</a>
197
+ &mdash;
198
+ <span class="container">Dieta</span>
199
+
200
+ <li class="method">
201
+ <a href="Lista.html#method-i-is_vacia-3F">#is_vacia?</a>
202
+ &mdash;
203
+ <span class="container">Lista</span>
204
+
205
+ <li class="method">
206
+ <a href="Lista.html#method-i-pop">#pop</a>
207
+ &mdash;
208
+ <span class="container">Lista</span>
209
+
210
+ <li class="method">
211
+ <a href="Lista.html#method-i-pop_tail">#pop_tail</a>
212
+ &mdash;
213
+ <span class="container">Lista</span>
214
+
215
+ <li class="method">
216
+ <a href="Lista.html#method-i-push">#push</a>
217
+ &mdash;
218
+ <span class="container">Lista</span>
219
+
220
+ <li class="method">
221
+ <a href="Lista.html#method-i-push_tail">#push_tail</a>
222
+ &mdash;
223
+ <span class="container">Lista</span>
224
+
225
+ <li class="method">
226
+ <a href="Dieta.html#method-i-to_s">#to_s</a>
227
+ &mdash;
228
+ <span class="container">Dieta</span>
229
+
230
+ <li class="method">
231
+ <a href="Menu_Edad.html#method-i-to_s">#to_s</a>
232
+ &mdash;
233
+ <span class="container">Menu_Edad</span>
234
+
235
+ <li class="method">
236
+ <a href="Menu_Alimentos.html#method-i-to_s">#to_s</a>
237
+ &mdash;
238
+ <span class="container">Menu_Alimentos</span>
239
+
240
+ <li class="method">
241
+ <a href="Lista.html#method-i-to_s">#to_s</a>
242
+ &mdash;
243
+ <span class="container">Lista</span>
244
+
245
+ <li class="method">
246
+ <a href="Lista.html#method-i-vaciar">#vaciar</a>
247
+ &mdash;
248
+ <span class="container">Lista</span>
249
+ </ul>
250
+ </main>
251
+
252
+
253
+ <footer id="validator-badges" role="contentinfo">
254
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
255
+ <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.1.
256
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
257
+ </footer>
258
+
@@ -0,0 +1,40 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'gema/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "gemaalu0100884982"
8
+ spec.version = Gema::VERSION
9
+ spec.authors = ["alu0100884982"]
10
+ spec.email = ["alu0100884982@ull.edu.es"]
11
+
12
+ spec.summary = %q{Practica 11 LPP}
13
+ spec.description = %q{Diseño e implementación de un DSL, siguiendo la filosofía de Ruby, que permite la definición de menús dietéticos. También, utilización de pruebas TDD a través de RSpec(expectativas).}
14
+ spec.homepage = "https://github.com/ULL-ESIT-LPP-1617/menu-dietetico-alu0100884982"
15
+
16
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
18
+ #if spec.respond_to?(:metadata)
19
+ #spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
20
+ # else
21
+ #raise "RubyGems 2.0 or newer is required to protect against " \
22
+ # "public gem pushes."
23
+ # end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
26
+ f.match(%r{^(test|spec|features)/})
27
+ end
28
+ spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ["lib"]
31
+
32
+ spec.add_development_dependency "rb-readline"
33
+ spec.add_development_dependency "bundler", "~> 1.13"
34
+ spec.add_development_dependency "rake", "~> 10.0"
35
+ spec.add_development_dependency "rspec", "~> 3.0"
36
+ spec.add_development_dependency "guard"
37
+ spec.add_development_dependency "guard-rspec"
38
+ spec.add_development_dependency "guard-bundler"
39
+
40
+ end
@@ -0,0 +1,6 @@
1
+ require "gema/version"
2
+ require "gema/dieta.rb"
3
+ require "gema/lista_dll.rb"
4
+ module Gema
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,134 @@
1
+ #Clase Dieta
2
+ class Dieta
3
+ #Se incluye el módulo Comparable para que la clase Lista se convierta en Comparable
4
+ include Comparable
5
+ #Título de la Dieta
6
+ attr_reader :titulo
7
+ #Porcentaje de ingesta diaria de la Dieta
8
+ attr_reader:porcentaje_ingesta
9
+ #Platos de la Dieta
10
+ attr_reader :platos
11
+ #Valor calórico de la Dieta
12
+ attr_reader:vct
13
+ #*Porcentajes* de proteínas, grasas e hidratos de carbono de la Dieta
14
+ attr_reader :porcentajes
15
+ #Constructor de la clase Dieta
16
+ def initialize(titulo, porcentaje_ingesta, platos, vct, porcentajes)
17
+
18
+ @titulo = titulo
19
+ @porcentaje_ingesta = porcentaje_ingesta
20
+ @platos = platos
21
+ @vct = vct
22
+ @porcentajes = porcentajes
23
+
24
+ end
25
+
26
+ #Método para saber si dos dietas son iguales ( se especifica explícitamente en vez de usar el <=> )
27
+ def == (other)
28
+ vct == other.vct && porcentajes==other.porcentajes
29
+
30
+ end
31
+
32
+ #Método que es necesario definir para poder utilizar el módulo Comparable
33
+ def <=> (other)
34
+
35
+ vct <=> other.vct
36
+ end
37
+
38
+ #Método para imprimir la Dieta
39
+ def to_s
40
+ title = "#{@titulo} ( #{@porcentaje_ingesta} )\n "
41
+ for i in 0..@platos.size-1
42
+ title +="- #{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]} \n"
43
+ end
44
+ title += "V.C.T. |% #{@vct} kcal | #{@porcentajes[0]}% - #{@porcentajes[1]}% - #{@porcentajes[2]}%"
45
+ end
46
+
47
+ #Método que devuelve el título de la Dieta
48
+ def get_titulo
49
+ @titulo
50
+ end
51
+
52
+ #Método que devuelve la descripción de uno de los platos
53
+ def get_desc_plato(i)
54
+ "#{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]} "
55
+ end
56
+
57
+ #Método que devuelve la ingesta diaria de la Dieta
58
+ def get_ingesta_diaria
59
+ @porcentaje_ingesta
60
+ end
61
+ #Método que devuelve un plato de una dieta
62
+ def get_plato(i)
63
+ @platos[i][0]
64
+ end
65
+
66
+ #Método que devuelve los platos de la dieta
67
+ def get_platos
68
+ @platos
69
+ end
70
+
71
+ #Método que devuelve el VCT
72
+ def get_vct
73
+ @vct
74
+ end
75
+
76
+ #Método que devuelve el porcentaje de proteínas de la dieta
77
+ def get_proteinas
78
+ @porcentajes[0]
79
+ end
80
+
81
+ #Método que devuelve el porcentaje de grasas de la dieta
82
+ def get_grasas
83
+ @porcentajes[1]
84
+ end
85
+
86
+ #Método que devuelve el porcentaje de hidratos de la
87
+ def get_hidratos
88
+ @porcentajes[2]
89
+ end
90
+ end
91
+
92
+
93
+ #Clase Menu_Edad, que hereda de la clase Dieta
94
+ class Menu_Edad < Dieta
95
+ #Atributo para almacenar el rango de edades para consumir la Dieta
96
+ attr_reader :edad
97
+ #Constructor de la clase Menu_Edad
98
+ def initialize(edad, dieta)
99
+ @edad = edad
100
+ super(dieta.titulo,dieta. porcentaje_ingesta,dieta.platos, dieta.vct,dieta.porcentajes)
101
+
102
+ end
103
+ #Método que imprime la dieta más la edad para consumirla
104
+ def to_s
105
+
106
+ title = super.to_s + "\nEdad:#{@edad}"
107
+ end
108
+
109
+
110
+ end
111
+
112
+ #Clase Menu_Alimentos, que hereda de la clase Dieta
113
+ class Menu_Alimentos < Dieta
114
+ #El atributo alimentos representa el grupo de alimentos de la Dieta
115
+ attr_reader :alimentos
116
+ #Constructor de la clase Menu_Alimentos
117
+ def initialize(alimentos, dieta)
118
+ @alimentos= alimentos
119
+ super(dieta.titulo,dieta. porcentaje_ingesta,dieta.platos, dieta.vct,dieta.porcentajes)
120
+
121
+ end
122
+
123
+ #Método que imprime la dieta más el grupo de alimentos de la misma
124
+ def to_s
125
+
126
+ title = super.to_s + "\nGrupo de alimentos:#{@alimentos}"
127
+ end
128
+
129
+
130
+
131
+
132
+ end
133
+
134
+
@@ -0,0 +1,188 @@
1
+ #Clase Dieta
2
+ class DietaDSL
3
+ #Se incluye el módulo Comparable para que la clase Lista se convierta en Comparable
4
+ include Comparable
5
+ #Título de la Dieta
6
+ attr_reader :titulo
7
+ #Porcentaje de ingesta diaria de la Dieta
8
+ attr_reader:porcentaje_ingesta
9
+ #Platos de la Dieta
10
+ attr_reader :platos
11
+ #Valor calórico de la Dieta
12
+ attr_reader:vct
13
+ #*Porcentajes* de proteínas, grasas e hidratos de carbono de la Dieta
14
+ attr_reader :porcentajes
15
+ #Constructor de la clase Dieta
16
+ attr_reader :nombre
17
+ def initialize(nombre,&block)
18
+ @nombre = nombre
19
+ @titulo = ""
20
+ @porcentaje_ingesta = ""
21
+ @platos = []
22
+ @vct = 0
23
+ @porcentajes = []
24
+ if block_given?
25
+ if block.arity == 1
26
+ yield self
27
+ else
28
+ instance_eval(&block)
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+ #Método para saber si dos dietas son iguales ( se especifica explícitamente en vez de usar el <=> )
35
+ def == (other)
36
+ vct == other.vct && porcentajes==other.porcentajes
37
+
38
+ end
39
+
40
+ #Método que es necesario definir para poder utilizar el módulo Comparable
41
+ def <=> (other)
42
+
43
+ vct <=> other.vct
44
+ end
45
+
46
+ #Método para imprimir la Dieta
47
+ def to_s
48
+ title = "#{@titulo} ( #{@porcentaje_ingesta} )\n "
49
+ for i in 0..@platos.size-1
50
+ title +="- #{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]} \n"
51
+ end
52
+ title += "V.C.T. |% #{@vct} kcal | #{@porcentajes[0]}% - #{@porcentajes[1]}% - #{@porcentajes[2]}%"
53
+ end
54
+
55
+ #Método que devuelve el título de la Dieta
56
+ def get_titulo
57
+ @titulo
58
+ end
59
+
60
+ #Método que devuelve la descripción de uno de los platos
61
+ def get_desc_plato(i)
62
+ "#{@platos[i][0]}, #{@platos[i][1]}, #{@platos[i][2]} "
63
+ end
64
+
65
+ #Método que devuelve la ingesta diaria de la Dieta
66
+ def get_ingesta_diaria
67
+ @porcentaje_ingesta
68
+ end
69
+ #Método que devuelve un plato de una dieta
70
+ def get_plato(i)
71
+ @platos[i][0]
72
+ end
73
+
74
+ #Método que devuelve los platos de la dieta
75
+ def get_platos
76
+ @platos
77
+ end
78
+
79
+ #Método que devuelve el VCT
80
+ def get_vct
81
+ @vct
82
+ end
83
+
84
+ #Método que devuelve el porcentaje de proteínas de la dieta
85
+ def get_proteinas
86
+ @porcentajes[0]
87
+ end
88
+
89
+ #Método que devuelve el porcentaje de grasas de la dieta
90
+ def get_grasas
91
+ @porcentajes[1]
92
+ end
93
+
94
+ #Método que devuelve el porcentaje de hidratos de la
95
+ def get_hidratos
96
+ @porcentajes[2]
97
+ end
98
+
99
+ def titulo_(name)
100
+ @titulo = name
101
+ end
102
+
103
+ def ingesta_(opciones={})
104
+ ingest = ""
105
+ ingest << "#{opciones[:min]}" if opciones[:min]
106
+ ingest<<"-#{opciones[:max]} %" if opciones[:max]
107
+ @porcentaje_ingesta = ingest
108
+
109
+ end
110
+
111
+ def plato_(opciones={})
112
+ grams= ""
113
+ descripcion=""
114
+ porcion=""
115
+ grams= "#{opciones[:gramos]} g" if opciones[:gramos]
116
+ descripcion = opciones[:descripcion] if opciones[:descripcion]
117
+ porcion = opciones[:porcion] if opciones[:porcion]
118
+
119
+ @platos.push([descripcion,porcion,grams])
120
+
121
+ end
122
+
123
+ def porcentajes_(opciones={})
124
+ @vct = opciones[:vct] if opciones[:vct]
125
+ proteinas = ""
126
+ grasas = ""
127
+ hidratos=""
128
+ proteinas = opciones[:proteinas] if opciones[:proteinas]
129
+ grasas = opciones[:grasas] if opciones[:grasas]
130
+ hidratos = opciones[:hidratos] if opciones[:hidratos]
131
+ @porcentajes.push(proteinas)
132
+ @porcentajes.push(grasas)
133
+ @porcentajes.push(hidratos)
134
+
135
+
136
+ end
137
+ end
138
+
139
+
140
+ #Clase Menu_Edad, que hereda de la clase Dieta
141
+ class Menu_EdadDSL < DietaDSL
142
+ #Atributo para almacenar el rango de edades para consumir la Dieta
143
+ attr_reader :edad
144
+ #Constructor de la clase Menu_Edad
145
+ def initialize(edad, dieta)
146
+ @edad = edad
147
+ super(dieta.titulo,dieta. porcentaje_ingesta,dieta.platos, dieta.vct,dieta.porcentajes)
148
+
149
+ end
150
+ #Método que imprime la dieta más la edad para consumirla
151
+ def to_s
152
+
153
+ title = super.to_s + "\nEdad:#{@edad}"
154
+ end
155
+
156
+
157
+ end
158
+
159
+ #Clase Menu_Alimentos, que hereda de la clase Dieta
160
+ class Menu_AlimentosDSL < DietaDSL
161
+ #El atributo alimentos representa el grupo de alimentos de la Dieta
162
+ attr_reader :alimentos
163
+ #Constructor de la clase Menu_Alimentos
164
+ def initialize(alimentos, dieta)
165
+ @alimentos= alimentos
166
+ super(dieta.titulo,dieta. porcentaje_ingesta,dieta.platos, dieta.vct,dieta.porcentajes)
167
+
168
+ end
169
+
170
+ #Método que imprime la dieta más el grupo de alimentos de la misma
171
+ def to_s
172
+
173
+ title = super.to_s + "\nGrupo de alimentos:#{@alimentos}"
174
+ end
175
+
176
+
177
+
178
+
179
+ end
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+