prct06-TDD 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Changelog.md +275 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +93 -0
- data/Guardfile +83 -0
- data/README.md +39 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docs/Alimento.html +1039 -0
- data/docs/Changelog_md.html +280 -0
- data/docs/Dieta.html +272 -0
- data/docs/Gema.html +110 -0
- data/docs/Gema/Error.html +103 -0
- data/docs/Gemfile.html +100 -0
- data/docs/Gemfile_lock.html +179 -0
- data/docs/Guardfile.html +171 -0
- data/docs/ListaDobleEnlazada.html +542 -0
- data/docs/Object.html +117 -0
- data/docs/Plato.html +567 -0
- data/docs/Plato/CompareMode.html +117 -0
- data/docs/PlatoEficienciaEnergetica.html +316 -0
- data/docs/README_md.html +143 -0
- data/docs/Rakefile.html +102 -0
- data/docs/bin/setup.html +102 -0
- data/docs/created.rid +23 -0
- data/docs/css/fonts.css +167 -0
- data/docs/css/rdoc.css +590 -0
- data/docs/fonts/Lato-Light.ttf +0 -0
- data/docs/fonts/Lato-LightItalic.ttf +0 -0
- data/docs/fonts/Lato-Regular.ttf +0 -0
- data/docs/fonts/Lato-RegularItalic.ttf +0 -0
- data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
- data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
- data/docs/images/add.png +0 -0
- data/docs/images/arrow_up.png +0 -0
- data/docs/images/brick.png +0 -0
- data/docs/images/brick_link.png +0 -0
- data/docs/images/bug.png +0 -0
- data/docs/images/bullet_black.png +0 -0
- data/docs/images/bullet_toggle_minus.png +0 -0
- data/docs/images/bullet_toggle_plus.png +0 -0
- data/docs/images/date.png +0 -0
- data/docs/images/delete.png +0 -0
- data/docs/images/find.png +0 -0
- data/docs/images/loadingAnimation.gif +0 -0
- data/docs/images/macFFBgHack.png +0 -0
- data/docs/images/package.png +0 -0
- data/docs/images/page_green.png +0 -0
- data/docs/images/page_white_text.png +0 -0
- data/docs/images/page_white_width.png +0 -0
- data/docs/images/plugin.png +0 -0
- data/docs/images/ruby.png +0 -0
- data/docs/images/tag_blue.png +0 -0
- data/docs/images/tag_green.png +0 -0
- data/docs/images/transparent.png +0 -0
- data/docs/images/wrench.png +0 -0
- data/docs/images/wrench_orange.png +0 -0
- data/docs/images/zoom.png +0 -0
- data/docs/index.html +123 -0
- data/docs/js/darkfish.js +161 -0
- data/docs/js/jquery.js +4 -0
- data/docs/js/navigation.js +141 -0
- data/docs/js/navigation.js.gz +0 -0
- data/docs/js/search.js +109 -0
- data/docs/js/search_index.js +1 -0
- data/docs/js/search_index.js.gz +0 -0
- data/docs/js/searcher.js +229 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/prct06-TDD_gemspec.html +134 -0
- data/docs/table_of_contents.html +381 -0
- data/lib/Alimento.rb +205 -0
- data/lib/Dieta.rb +28 -0
- data/lib/Menu.rb +61 -0
- data/lib/Plato.rb +138 -0
- data/lib/Plato.rb.save +110 -0
- data/lib/PlatoEficienciaEnergetica.rb +32 -0
- data/lib/gema.rb +12 -0
- data/lib/gema/ListaDobleEnlazada.rb +103 -0
- data/lib/gema/version.rb +3 -0
- data/prct06-TDD.gemspec +37 -0
- metadata +214 -0
|
@@ -0,0 +1,381 @@
|
|
|
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
|
+
var index_rel_prefix = "./";
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<script src="./js/jquery.js"></script>
|
|
15
|
+
<script src="./js/darkfish.js"></script>
|
|
16
|
+
|
|
17
|
+
<link href="./css/fonts.css" rel="stylesheet">
|
|
18
|
+
<link href="./css/rdoc.css" rel="stylesheet">
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<body id="top" class="table-of-contents">
|
|
24
|
+
<main role="main">
|
|
25
|
+
<h1 class="class">Table of Contents - RDoc Documentation</h1>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
<h2 id="pages">Pages</h2>
|
|
30
|
+
<ul>
|
|
31
|
+
|
|
32
|
+
<li class="file">
|
|
33
|
+
<a href="Changelog_md.html">Changelog</a>
|
|
34
|
+
|
|
35
|
+
</li>
|
|
36
|
+
|
|
37
|
+
<li class="file">
|
|
38
|
+
<a href="Gemfile.html">Gemfile</a>
|
|
39
|
+
|
|
40
|
+
</li>
|
|
41
|
+
|
|
42
|
+
<li class="file">
|
|
43
|
+
<a href="Gemfile_lock.html">Gemfile.lock</a>
|
|
44
|
+
|
|
45
|
+
</li>
|
|
46
|
+
|
|
47
|
+
<li class="file">
|
|
48
|
+
<a href="Guardfile.html">Guardfile</a>
|
|
49
|
+
|
|
50
|
+
</li>
|
|
51
|
+
|
|
52
|
+
<li class="file">
|
|
53
|
+
<a href="README_md.html">README</a>
|
|
54
|
+
|
|
55
|
+
<ul>
|
|
56
|
+
|
|
57
|
+
<li><a href="README_md.html#label-Prct06-3A-3ATDD">Prct06::TDD</a>
|
|
58
|
+
|
|
59
|
+
<li><a href="README_md.html#label-Installation">Installation</a>
|
|
60
|
+
|
|
61
|
+
<li><a href="README_md.html#label-Usage">Usage</a>
|
|
62
|
+
|
|
63
|
+
<li><a href="README_md.html#label-Development">Development</a>
|
|
64
|
+
|
|
65
|
+
<li><a href="README_md.html#label-Contributing">Contributing</a>
|
|
66
|
+
|
|
67
|
+
</ul>
|
|
68
|
+
|
|
69
|
+
</li>
|
|
70
|
+
|
|
71
|
+
<li class="file">
|
|
72
|
+
<a href="Rakefile.html">Rakefile</a>
|
|
73
|
+
|
|
74
|
+
</li>
|
|
75
|
+
|
|
76
|
+
<li class="file">
|
|
77
|
+
<a href="bin/setup.html">setup</a>
|
|
78
|
+
|
|
79
|
+
</li>
|
|
80
|
+
|
|
81
|
+
<li class="file">
|
|
82
|
+
<a href="prct06-TDD_gemspec.html">prct06-TDD.gemspec</a>
|
|
83
|
+
|
|
84
|
+
</li>
|
|
85
|
+
|
|
86
|
+
</ul>
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
<h2 id="classes">Classes and Modules</h2>
|
|
90
|
+
<ul>
|
|
91
|
+
|
|
92
|
+
<li class="class">
|
|
93
|
+
<a href="Alimento.html">Alimento</a>
|
|
94
|
+
|
|
95
|
+
</li>
|
|
96
|
+
|
|
97
|
+
<li class="class">
|
|
98
|
+
<a href="Dieta.html">Dieta</a>
|
|
99
|
+
|
|
100
|
+
</li>
|
|
101
|
+
|
|
102
|
+
<li class="module">
|
|
103
|
+
<a href="Gema.html">Gema</a>
|
|
104
|
+
|
|
105
|
+
</li>
|
|
106
|
+
|
|
107
|
+
<li class="class">
|
|
108
|
+
<a href="Gema/Error.html">Gema::Error</a>
|
|
109
|
+
|
|
110
|
+
</li>
|
|
111
|
+
|
|
112
|
+
<li class="class">
|
|
113
|
+
<a href="ListaDobleEnlazada.html">ListaDobleEnlazada</a>
|
|
114
|
+
|
|
115
|
+
</li>
|
|
116
|
+
|
|
117
|
+
<li class="class">
|
|
118
|
+
<a href="Object.html">Object</a>
|
|
119
|
+
|
|
120
|
+
</li>
|
|
121
|
+
|
|
122
|
+
<li class="class">
|
|
123
|
+
<a href="Plato.html">Plato</a>
|
|
124
|
+
|
|
125
|
+
</li>
|
|
126
|
+
|
|
127
|
+
<li class="module">
|
|
128
|
+
<a href="Plato/CompareMode.html">Plato::CompareMode</a>
|
|
129
|
+
|
|
130
|
+
</li>
|
|
131
|
+
|
|
132
|
+
<li class="class">
|
|
133
|
+
<a href="PlatoEficienciaEnergetica.html">PlatoEficienciaEnergetica</a>
|
|
134
|
+
|
|
135
|
+
</li>
|
|
136
|
+
|
|
137
|
+
</ul>
|
|
138
|
+
|
|
139
|
+
<h2 id="methods">Methods</h2>
|
|
140
|
+
<ul>
|
|
141
|
+
|
|
142
|
+
<li class="method">
|
|
143
|
+
<a href="Dieta.html#method-c-alimentos">::alimentos</a>
|
|
144
|
+
—
|
|
145
|
+
<span class="container">Dieta</span>
|
|
146
|
+
|
|
147
|
+
<li class="method">
|
|
148
|
+
<a href="Alimento.html#method-c-build">::build</a>
|
|
149
|
+
—
|
|
150
|
+
<span class="container">Alimento</span>
|
|
151
|
+
|
|
152
|
+
<li class="method">
|
|
153
|
+
<a href="Alimento.html#method-c-constructHashFromFile">::constructHashFromFile</a>
|
|
154
|
+
—
|
|
155
|
+
<span class="container">Alimento</span>
|
|
156
|
+
|
|
157
|
+
<li class="method">
|
|
158
|
+
<a href="Alimento.html#method-c-constructListFromFile">::constructListFromFile</a>
|
|
159
|
+
—
|
|
160
|
+
<span class="container">Alimento</span>
|
|
161
|
+
|
|
162
|
+
<li class="method">
|
|
163
|
+
<a href="Alimento.html#method-c-copy">::copy</a>
|
|
164
|
+
—
|
|
165
|
+
<span class="container">Alimento</span>
|
|
166
|
+
|
|
167
|
+
<li class="method">
|
|
168
|
+
<a href="Alimento.html#method-c-new">::new</a>
|
|
169
|
+
—
|
|
170
|
+
<span class="container">Alimento</span>
|
|
171
|
+
|
|
172
|
+
<li class="method">
|
|
173
|
+
<a href="Plato.html#method-c-new">::new</a>
|
|
174
|
+
—
|
|
175
|
+
<span class="container">Plato</span>
|
|
176
|
+
|
|
177
|
+
<li class="method">
|
|
178
|
+
<a href="PlatoEficienciaEnergetica.html#method-c-new">::new</a>
|
|
179
|
+
—
|
|
180
|
+
<span class="container">PlatoEficienciaEnergetica</span>
|
|
181
|
+
|
|
182
|
+
<li class="method">
|
|
183
|
+
<a href="ListaDobleEnlazada.html#method-c-new">::new</a>
|
|
184
|
+
—
|
|
185
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
186
|
+
|
|
187
|
+
<li class="method">
|
|
188
|
+
<a href="Alimento.html#method-c-setCantidad">::setCantidad</a>
|
|
189
|
+
—
|
|
190
|
+
<span class="container">Alimento</span>
|
|
191
|
+
|
|
192
|
+
<li class="method">
|
|
193
|
+
<a href="Alimento.html#method-c-setCarbohidratos">::setCarbohidratos</a>
|
|
194
|
+
—
|
|
195
|
+
<span class="container">Alimento</span>
|
|
196
|
+
|
|
197
|
+
<li class="method">
|
|
198
|
+
<a href="Plato.html#method-c-setCompareMode">::setCompareMode</a>
|
|
199
|
+
—
|
|
200
|
+
<span class="container">Plato</span>
|
|
201
|
+
|
|
202
|
+
<li class="method">
|
|
203
|
+
<a href="Alimento.html#method-c-setGEI">::setGEI</a>
|
|
204
|
+
—
|
|
205
|
+
<span class="container">Alimento</span>
|
|
206
|
+
|
|
207
|
+
<li class="method">
|
|
208
|
+
<a href="Alimento.html#method-c-setLipidos">::setLipidos</a>
|
|
209
|
+
—
|
|
210
|
+
<span class="container">Alimento</span>
|
|
211
|
+
|
|
212
|
+
<li class="method">
|
|
213
|
+
<a href="Alimento.html#method-c-setNombre">::setNombre</a>
|
|
214
|
+
—
|
|
215
|
+
<span class="container">Alimento</span>
|
|
216
|
+
|
|
217
|
+
<li class="method">
|
|
218
|
+
<a href="Alimento.html#method-c-setProteinas">::setProteinas</a>
|
|
219
|
+
—
|
|
220
|
+
<span class="container">Alimento</span>
|
|
221
|
+
|
|
222
|
+
<li class="method">
|
|
223
|
+
<a href="Alimento.html#method-c-setTerreno">::setTerreno</a>
|
|
224
|
+
—
|
|
225
|
+
<span class="container">Alimento</span>
|
|
226
|
+
|
|
227
|
+
<li class="method">
|
|
228
|
+
<a href="Alimento.html#method-i-3C-3D-3E">#<=></a>
|
|
229
|
+
—
|
|
230
|
+
<span class="container">Alimento</span>
|
|
231
|
+
|
|
232
|
+
<li class="method">
|
|
233
|
+
<a href="Plato.html#method-i-3C-3D-3E">#<=></a>
|
|
234
|
+
—
|
|
235
|
+
<span class="container">Plato</span>
|
|
236
|
+
|
|
237
|
+
<li class="method">
|
|
238
|
+
<a href="Dieta.html#method-i-calculoEmisiones">#calculoEmisiones</a>
|
|
239
|
+
—
|
|
240
|
+
<span class="container">Dieta</span>
|
|
241
|
+
|
|
242
|
+
<li class="method">
|
|
243
|
+
<a href="Alimento.html#method-i-cantidadNecesaria">#cantidadNecesaria</a>
|
|
244
|
+
—
|
|
245
|
+
<span class="container">Alimento</span>
|
|
246
|
+
|
|
247
|
+
<li class="method">
|
|
248
|
+
<a href="Alimento.html#method-i-carbohidratos">#carbohidratos</a>
|
|
249
|
+
—
|
|
250
|
+
<span class="container">Alimento</span>
|
|
251
|
+
|
|
252
|
+
<li class="method">
|
|
253
|
+
<a href="ListaDobleEnlazada.html#method-i-each">#each</a>
|
|
254
|
+
—
|
|
255
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
256
|
+
|
|
257
|
+
<li class="method">
|
|
258
|
+
<a href="Dieta.html#method-i-emisiones">#emisiones</a>
|
|
259
|
+
—
|
|
260
|
+
<span class="container">Dieta</span>
|
|
261
|
+
|
|
262
|
+
<li class="method">
|
|
263
|
+
<a href="ListaDobleEnlazada.html#method-i-extract_head">#extract_head</a>
|
|
264
|
+
—
|
|
265
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
266
|
+
|
|
267
|
+
<li class="method">
|
|
268
|
+
<a href="ListaDobleEnlazada.html#method-i-extract_tail">#extract_tail</a>
|
|
269
|
+
—
|
|
270
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
271
|
+
|
|
272
|
+
<li class="method">
|
|
273
|
+
<a href="Plato.html#method-i-extracted">#extracted</a>
|
|
274
|
+
—
|
|
275
|
+
<span class="container">Plato</span>
|
|
276
|
+
|
|
277
|
+
<li class="method">
|
|
278
|
+
<a href="PlatoEficienciaEnergetica.html#method-i-extracted">#extracted</a>
|
|
279
|
+
—
|
|
280
|
+
<span class="container">PlatoEficienciaEnergetica</span>
|
|
281
|
+
|
|
282
|
+
<li class="method">
|
|
283
|
+
<a href="ListaDobleEnlazada.html#method-i-extracted">#extracted</a>
|
|
284
|
+
—
|
|
285
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
286
|
+
|
|
287
|
+
<li class="method">
|
|
288
|
+
<a href="Alimento.html#method-i-gei">#gei</a>
|
|
289
|
+
—
|
|
290
|
+
<span class="container">Alimento</span>
|
|
291
|
+
|
|
292
|
+
<li class="method">
|
|
293
|
+
<a href="Plato.html#method-i-huellaNutricional">#huellaNutricional</a>
|
|
294
|
+
—
|
|
295
|
+
<span class="container">Plato</span>
|
|
296
|
+
|
|
297
|
+
<li class="method">
|
|
298
|
+
<a href="ListaDobleEnlazada.html#method-i-insert">#insert</a>
|
|
299
|
+
—
|
|
300
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
301
|
+
|
|
302
|
+
<li class="method">
|
|
303
|
+
<a href="ListaDobleEnlazada.html#method-i-insertList">#insertList</a>
|
|
304
|
+
—
|
|
305
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
306
|
+
|
|
307
|
+
<li class="method">
|
|
308
|
+
<a href="Plato.html#method-i-inserted">#inserted</a>
|
|
309
|
+
—
|
|
310
|
+
<span class="container">Plato</span>
|
|
311
|
+
|
|
312
|
+
<li class="method">
|
|
313
|
+
<a href="PlatoEficienciaEnergetica.html#method-i-inserted">#inserted</a>
|
|
314
|
+
—
|
|
315
|
+
<span class="container">PlatoEficienciaEnergetica</span>
|
|
316
|
+
|
|
317
|
+
<li class="method">
|
|
318
|
+
<a href="ListaDobleEnlazada.html#method-i-inserted">#inserted</a>
|
|
319
|
+
—
|
|
320
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
321
|
+
|
|
322
|
+
<li class="method">
|
|
323
|
+
<a href="Alimento.html#method-i-lipidos">#lipidos</a>
|
|
324
|
+
—
|
|
325
|
+
<span class="container">Alimento</span>
|
|
326
|
+
|
|
327
|
+
<li class="method">
|
|
328
|
+
<a href="Alimento.html#method-i-proteinas">#proteinas</a>
|
|
329
|
+
—
|
|
330
|
+
<span class="container">Alimento</span>
|
|
331
|
+
|
|
332
|
+
<li class="method">
|
|
333
|
+
<a href="Alimento.html#method-i-setCantidad">#setCantidad</a>
|
|
334
|
+
—
|
|
335
|
+
<span class="container">Alimento</span>
|
|
336
|
+
|
|
337
|
+
<li class="method">
|
|
338
|
+
<a href="Alimento.html#method-i-terreno">#terreno</a>
|
|
339
|
+
—
|
|
340
|
+
<span class="container">Alimento</span>
|
|
341
|
+
|
|
342
|
+
<li class="method">
|
|
343
|
+
<a href="Dieta.html#method-i-terreno">#terreno</a>
|
|
344
|
+
—
|
|
345
|
+
<span class="container">Dieta</span>
|
|
346
|
+
|
|
347
|
+
<li class="method">
|
|
348
|
+
<a href="Alimento.html#method-i-to_s">#to_s</a>
|
|
349
|
+
—
|
|
350
|
+
<span class="container">Alimento</span>
|
|
351
|
+
|
|
352
|
+
<li class="method">
|
|
353
|
+
<a href="Plato.html#method-i-to_s">#to_s</a>
|
|
354
|
+
—
|
|
355
|
+
<span class="container">Plato</span>
|
|
356
|
+
|
|
357
|
+
<li class="method">
|
|
358
|
+
<a href="PlatoEficienciaEnergetica.html#method-i-to_s">#to_s</a>
|
|
359
|
+
—
|
|
360
|
+
<span class="container">PlatoEficienciaEnergetica</span>
|
|
361
|
+
|
|
362
|
+
<li class="method">
|
|
363
|
+
<a href="ListaDobleEnlazada.html#method-i-to_s">#to_s</a>
|
|
364
|
+
—
|
|
365
|
+
<span class="container">ListaDobleEnlazada</span>
|
|
366
|
+
|
|
367
|
+
<li class="method">
|
|
368
|
+
<a href="Alimento.html#method-i-valorEnergetico">#valorEnergetico</a>
|
|
369
|
+
—
|
|
370
|
+
<span class="container">Alimento</span>
|
|
371
|
+
|
|
372
|
+
</ul>
|
|
373
|
+
</main>
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
<footer id="validator-badges" role="contentinfo">
|
|
377
|
+
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
|
378
|
+
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.1.0.
|
|
379
|
+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
|
380
|
+
</footer>
|
|
381
|
+
|
data/lib/Alimento.rb
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
#Esta clase representa un Alimento y las propiedades de este (nombre,cantidad,proteinas,carbohidratos,lipidos,...)
|
|
2
|
+
class Alimento
|
|
3
|
+
@@nombre = ""
|
|
4
|
+
@@proteinas = 0
|
|
5
|
+
@@carbohidratos = 0
|
|
6
|
+
@@lipidos = 0
|
|
7
|
+
@@gei = 0
|
|
8
|
+
@@terreno = 0
|
|
9
|
+
@@cantidad = 1
|
|
10
|
+
class << self
|
|
11
|
+
#Define el parametro 'nombre' de la clase Alimento que el Constructor seteará.
|
|
12
|
+
# @param [Nombre] nombre Nombre del plato.
|
|
13
|
+
def setNombre(nombre)
|
|
14
|
+
@@nombre = nombre
|
|
15
|
+
return self
|
|
16
|
+
end
|
|
17
|
+
#Define el parametro 'proteinas'(en g) de la clase Alimento que el constructor seteará.
|
|
18
|
+
# @param [Proteinas] carbohidratos Cantidad de proteinas, en g, que el alimento otorga.
|
|
19
|
+
def setProteinas(proteinas)
|
|
20
|
+
@@proteinas = proteinas
|
|
21
|
+
return self
|
|
22
|
+
end
|
|
23
|
+
#Define el parametro 'carbohidratos'(en g) de la clase Alimento que el Constructor seteará.
|
|
24
|
+
# @param [Carbohidratos] carbohidratos Cantidad de carbohidratos, en g, que el alimento otorga.
|
|
25
|
+
def setCarbohidratos(carbohidratos)
|
|
26
|
+
@@carbohidratos = carbohidratos
|
|
27
|
+
return self
|
|
28
|
+
end
|
|
29
|
+
#Define el parametro 'lipidos'(en g) de la clase Alimento que el Constructor seteará.
|
|
30
|
+
# @param [Lipidos] lipidos Cantidad de lipidos, en g, que el alimento otorga.
|
|
31
|
+
def setLipidos(lipidos)
|
|
32
|
+
@@lipidos = lipidos
|
|
33
|
+
return self
|
|
34
|
+
end
|
|
35
|
+
#Define el parametro 'gei'(gases de efecto invernadero) de la clase Alimento que el Constructor seteará.
|
|
36
|
+
# @param [Float] gei Gases de Efecto Invernandero, en kgCO2 , que el alimento produce en su producción.
|
|
37
|
+
def setGEI(gei)
|
|
38
|
+
@@gei = gei
|
|
39
|
+
return self
|
|
40
|
+
end
|
|
41
|
+
#Define el parametro 'terreno'(en m^2 necesarios para producir el alimento) de la clase Alimento que el Constructor seteará.
|
|
42
|
+
# @param [Float] terreno Terreno necesario, en m^2, para producir el alimento.
|
|
43
|
+
def setTerreno(terreno)
|
|
44
|
+
@@terreno = terreno
|
|
45
|
+
return self
|
|
46
|
+
end
|
|
47
|
+
#Define el parametro 'peso'(en kg) de la clase Alimento que el Constructor seteará.
|
|
48
|
+
# @param [Float] cantidad Peso del alimento en Kg.
|
|
49
|
+
def setCantidad(cantidad)
|
|
50
|
+
@@cantidad = cantidad
|
|
51
|
+
return self
|
|
52
|
+
end
|
|
53
|
+
#Construye una nueva instancia de la clase Alimento con los atributos seteados previamente(setTerreno,setCantidad,...) y la devuelve.
|
|
54
|
+
def build()
|
|
55
|
+
return Alimento.new(@@nombre,@@proteinas,@@carbohidratos,@@lipidos,@@gei,@@terreno)
|
|
56
|
+
end
|
|
57
|
+
#Construye una lista de instancias de la clase Alimentos de acuerdo al contenido de un fichero.
|
|
58
|
+
#Los parametros se separan por espacios en blanco(\s).
|
|
59
|
+
#Los distintos alimentos se separan por saltos de linea(\n).
|
|
60
|
+
# @param [String] input Contenido del fichero en una cadena.
|
|
61
|
+
def constructListFromFile(input)
|
|
62
|
+
result = Array.new()
|
|
63
|
+
size = input.size/6
|
|
64
|
+
for i in 0..size-1
|
|
65
|
+
alimento = Alimento.new(input[6*i], input[6*i+1].to_f, input[6*i+2].to_f, input[6*i+3].to_f, input[6*i+4].to_f, input[6*i+5].to_f)
|
|
66
|
+
result.append( alimento )
|
|
67
|
+
end
|
|
68
|
+
return result
|
|
69
|
+
end
|
|
70
|
+
#Construye un diccionario de instancias de la clase Alimentos, con key == nombre del alimento de acuerdo al contenido de un fichero.
|
|
71
|
+
#Los parametros se separan por espacios en blanco(\s).
|
|
72
|
+
#Los distintos alimentos se separan por saltos de linea(\n).
|
|
73
|
+
# @param [String] input Contenido del fichero en una cadena.
|
|
74
|
+
def constructHashFromFile(input)
|
|
75
|
+
result = Hash.new()
|
|
76
|
+
size = input.size/6
|
|
77
|
+
for i in 0..size-1
|
|
78
|
+
alimento = Alimento.new(input[6*i], input[6*i+1].to_f, input[6*i+2].to_f, input[6*i+3].to_f, input[6*i+4].to_f, input[6*i+5].to_f)
|
|
79
|
+
result.store(input[6*i] , alimento )
|
|
80
|
+
end
|
|
81
|
+
return result
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
#Devuelve una instancia copia de la clase Alimento dado otra instancia de la clase Alimento pasado como parametro.
|
|
85
|
+
# @param [Alimento] copy instancia de la clase Alimento que se desea copiar en otra instancia.
|
|
86
|
+
def copy(copy)
|
|
87
|
+
return Alimento.new(copy.nombre,copy.proteinas,copy.carbohidratos,copy.lipidos,copy.gei,copy.terreno)
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
include Comparable
|
|
92
|
+
attr_reader :nombre, :cantidad, :huellaNutricional
|
|
93
|
+
# attr_accessor :cantidad
|
|
94
|
+
|
|
95
|
+
#Define la cantidad, en kg, del alimento.
|
|
96
|
+
# @param [Float] cantidad .
|
|
97
|
+
def setCantidad(cantidad)
|
|
98
|
+
@cantidad = cantidad
|
|
99
|
+
return self
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
#Recupera la cantidad de proteinas, en g, del alimento (relativo a la cantidad del alimento).
|
|
104
|
+
def proteinas
|
|
105
|
+
return @proteinas*@cantidad
|
|
106
|
+
end
|
|
107
|
+
#Recupera la cantidad de carbohidratos,en g, del alimento (relativo a la cantidad del alimento).
|
|
108
|
+
def carbohidratos
|
|
109
|
+
return @carbohidratos*@cantidad
|
|
110
|
+
end
|
|
111
|
+
#Recupera la cantidad de lipidos,en g, del alimento (relativo a la cantidad del alimento).
|
|
112
|
+
def lipidos
|
|
113
|
+
return @lipidos*@cantidad
|
|
114
|
+
end
|
|
115
|
+
#Recupera la cantidad de gases de efecto invernadero producidos, en KgCO2, en la producción del alimento (relativo a la cantidad del alimento).
|
|
116
|
+
def gei
|
|
117
|
+
return @gei*@cantidad
|
|
118
|
+
end
|
|
119
|
+
#Recupera la cantidad de m^2 de terreno necesario para producir el alimento (relativo a la cantidad del alimento).
|
|
120
|
+
def terreno
|
|
121
|
+
return @terreno*@cantidad
|
|
122
|
+
end
|
|
123
|
+
#Recupera el valor Energetico, en kcal, que produce la ingesta del alimento (relativo a la cantidad del alimento).
|
|
124
|
+
def valorEnergetico
|
|
125
|
+
return @valorEnergetico*@cantidad
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
#Constructor de instancias de la clase Alimento.
|
|
129
|
+
# @param [String] nombre.
|
|
130
|
+
# @param [Float] proteinas.
|
|
131
|
+
# @param [Float] carbohidratos.
|
|
132
|
+
# @param [Float] lipidos.
|
|
133
|
+
# @param [Float] gei.
|
|
134
|
+
# @param [Float] terreno.
|
|
135
|
+
def initialize(nombre,proteinas,carbohidratos,lipidos, gei,terreno,cantidad = 1.0)
|
|
136
|
+
@nombre = nombre
|
|
137
|
+
@proteinas = proteinas
|
|
138
|
+
@carbohidratos = carbohidratos
|
|
139
|
+
@lipidos = lipidos
|
|
140
|
+
@gei = gei
|
|
141
|
+
@terreno = terreno
|
|
142
|
+
|
|
143
|
+
@valorEnergetico = (@proteinas * 4 ) + (@carbohidratos * 4) + (@lipidos * 9)
|
|
144
|
+
@cantidad = cantidad #En Kg
|
|
145
|
+
impactoEnergia = case @valorEnergetico
|
|
146
|
+
when 0..67 then 1
|
|
147
|
+
when 670..83 then 2
|
|
148
|
+
else 3
|
|
149
|
+
end
|
|
150
|
+
impactoHuellaDeCarbono = case @gei
|
|
151
|
+
when 0..80 then 1
|
|
152
|
+
when 80..120 then 2
|
|
153
|
+
else 3
|
|
154
|
+
end
|
|
155
|
+
@huellaNutricional = (impactoEnergia + impactoHuellaDeCarbono)/2
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
#Devuelve la cantidad necesaria, en kg, que hay que ingerir del alimento para ingerir cal_nec kcal y prot_nec g de proteínas.
|
|
159
|
+
# @param [Float] cal_nec Calorías, en kcal, que hay que ingerir.
|
|
160
|
+
# @param [Float] prot_nec Proteinas, en g, que hay que ingerir.
|
|
161
|
+
def cantidadNecesaria(cal_nec, prot_nec)
|
|
162
|
+
#Los datos del alimento se corresponden a los nutrientes para 1 kg de dicho alimento
|
|
163
|
+
#Entonces, dado que primero debemos satisfacer las proteinas necesarias:
|
|
164
|
+
kg_a_consumir_para_prot_nec = prot_nec / @proteinas.to_f()
|
|
165
|
+
#Tenemos los kg, esos kg consumidos tambien otorgan calorias,asi que restamos a las calorias necesarias:
|
|
166
|
+
cal_rest = cal_nec - (kg_a_consumir_para_prot_nec * @valorEnergetico) #kcal = kcal - (kg * kcal/kg)
|
|
167
|
+
#Ahora, calculamos los kg necesarios para consumir las cal_rest
|
|
168
|
+
kg_a_consumir = cal_rest / @valorEnergetico.to_f() # kg = kcal / (kcal/kg)
|
|
169
|
+
#Sumamos kg_a_consumir para las caloreias, y kg_a_consumir_para_prot_nec para el minimo proteinas necesarioas
|
|
170
|
+
kg_nec = kg_a_consumir + kg_a_consumir_para_prot_nec
|
|
171
|
+
return kg_nec
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
#Devuelve un string que es el alimento formateado para ser entendible por un humano.
|
|
175
|
+
def to_s
|
|
176
|
+
return "[Nombre:#{@nombre}, Peso:#{@cantidad} kg, Proteinas:#{proteinas.round(2)} g, Carbohidratos:#{carbohidratos.round(2)} g, Lipidos:#{lipidos.round(2)} g, Valor Energetico:#{valorEnergetico.round(2)} kcal, Emisiones: #{gei.round(2)} kgCO2, Terreno Usado:#{terreno.round(2)} m^2]"
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# def terrenoUsado(kg)
|
|
180
|
+
# return @terreno*kg
|
|
181
|
+
# end
|
|
182
|
+
|
|
183
|
+
# def impactoAmbiental(kg)
|
|
184
|
+
# return @gei*kg
|
|
185
|
+
# end
|
|
186
|
+
#require 'pry'
|
|
187
|
+
|
|
188
|
+
#Metodo que debe ser implementado para que la incorporación del modulo 'Comparable' funcione correctamente de acuerdo a las propiedades del Alimento.
|
|
189
|
+
def <=>(other)
|
|
190
|
+
# binding.pry
|
|
191
|
+
return nil unless other.instance_of? Alimento
|
|
192
|
+
valorEnergetico <=> other.valorEnergetico
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
# def ==(other)
|
|
196
|
+
# return false unless other.instance_of? Alimento
|
|
197
|
+
# return true if (@valorEnergetico == other.valorEnergetico && @proteinas == other.proteinas)
|
|
198
|
+
# return false
|
|
199
|
+
# end
|
|
200
|
+
|
|
201
|
+
# def +(other)
|
|
202
|
+
# return nil unless other.instance_of? Alimento
|
|
203
|
+
# return Alimento.new("#{@nombre} y #{other.nombre}",@proteinas + other.proteinas, @carbohidratos + other.carbohidratos, @lipidos + other.lipidos, @gei + other.gei, @terreno + other.terreno)
|
|
204
|
+
# end
|
|
205
|
+
end
|