prct06_alu0100948097 1.0.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/.DS_Store +0 -0
- data/.gitignore +13 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Guardfile +82 -0
- data/LICENSE.txt +21 -0
- data/README.md +3 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docs/Alimentos.html +1033 -0
- data/docs/Array.html +345 -0
- data/docs/G_alimentos.html +476 -0
- data/docs/List.html +1196 -0
- data/docs/Node.html +421 -0
- data/docs/Prct06.html +117 -0
- data/docs/_index.html +166 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +499 -0
- data/docs/file.README.html +74 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +74 -0
- data/docs/js/app.js +248 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +299 -0
- data/docs/top-level-namespace.html +194 -0
- data/lib/.DS_Store +0 -0
- data/lib/prct06.rb +11 -0
- data/lib/prct06/alimentos.rb +91 -0
- data/lib/prct06/array.rb +47 -0
- data/lib/prct06/lista.rb +141 -0
- data/lib/prct06/nodo.rb +14 -0
- data/lib/prct06/receta.rb +145 -0
- data/lib/prct06/version.rb +3 -0
- data/prct06.gemspec +41 -0
- metadata +198 -0
@@ -0,0 +1,194 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Top Level Namespace
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.12
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
pathId = "";
|
19
|
+
relpath = '';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="_index.html">Index</a> »
|
40
|
+
|
41
|
+
|
42
|
+
<span class="title">Top Level Namespace</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Top Level Namespace
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
</div>
|
80
|
+
|
81
|
+
<h2>Defined Under Namespace</h2>
|
82
|
+
<p class="children">
|
83
|
+
|
84
|
+
|
85
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Prct06.html" title="Prct06 (module)">Prct06</a></span>
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Alimentos.html" title="Alimentos (class)">Alimentos</a></span>, <span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span>, <span class='object_link'><a href="G_alimentos.html" title="G_alimentos (class)">G_alimentos</a></span>, <span class='object_link'><a href="List.html" title="List (class)">List</a></span>, <span class='object_link'><a href="Node.html" title="Node (class)">Node</a></span>
|
90
|
+
|
91
|
+
|
92
|
+
</p>
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
<h2>
|
102
|
+
Instance Method Summary
|
103
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
104
|
+
</h2>
|
105
|
+
|
106
|
+
<ul class="summary">
|
107
|
+
|
108
|
+
<li class="public ">
|
109
|
+
<span class="summary_signature">
|
110
|
+
|
111
|
+
<a href="top-level-namespace.html#<=>-instance_method" title="#<=> (instance method)">#<strong><=></strong>(other) ⇒ Object </a>
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
</span>
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
<span class="summary_desc"><div class='inline'>
|
126
|
+
<p>Método para definir la forma en la que comparar nodos.</p>
|
127
|
+
</div></span>
|
128
|
+
|
129
|
+
</li>
|
130
|
+
|
131
|
+
|
132
|
+
</ul>
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
<div id="instance_method_details" class="method_details_list">
|
138
|
+
<h2>Instance Method Details</h2>
|
139
|
+
|
140
|
+
|
141
|
+
<div class="method_details first">
|
142
|
+
<h3 class="signature first" id="<=>-instance_method">
|
143
|
+
|
144
|
+
#<strong><=></strong>(other) ⇒ <tt>Object</tt>
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
</h3><div class="docstring">
|
151
|
+
<div class="discussion">
|
152
|
+
|
153
|
+
<p>Método para definir la forma en la que comparar nodos</p>
|
154
|
+
|
155
|
+
|
156
|
+
</div>
|
157
|
+
</div>
|
158
|
+
<div class="tags">
|
159
|
+
|
160
|
+
|
161
|
+
</div><table class="source_code">
|
162
|
+
<tr>
|
163
|
+
<td>
|
164
|
+
<pre class="lines">
|
165
|
+
|
166
|
+
|
167
|
+
12
|
168
|
+
13
|
169
|
+
14</pre>
|
170
|
+
</td>
|
171
|
+
<td>
|
172
|
+
<pre class="code"><span class="info file"># File 'lib/prct06/nodo.rb', line 12</span>
|
173
|
+
|
174
|
+
<span class='kw'>def</span> <span class='op'><=></span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
|
175
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'><=></span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
|
176
|
+
<span class='kw'>end</span></pre>
|
177
|
+
</td>
|
178
|
+
</tr>
|
179
|
+
</table>
|
180
|
+
</div>
|
181
|
+
|
182
|
+
</div>
|
183
|
+
|
184
|
+
</div>
|
185
|
+
|
186
|
+
<div id="footer">
|
187
|
+
Generated on Tue Nov 28 12:07:27 2017 by
|
188
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
189
|
+
0.9.12 (ruby-2.4.2).
|
190
|
+
</div>
|
191
|
+
|
192
|
+
</div>
|
193
|
+
</body>
|
194
|
+
</html>
|
data/lib/.DS_Store
ADDED
Binary file
|
data/lib/prct06.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Esta clase permite representar alimentos con sus distintos macronutrientres.
|
3
|
+
# Su desarrollo ha sido dirigido por pruebas (TDD).
|
4
|
+
# Se han incluido el mixin Comparable
|
5
|
+
#
|
6
|
+
# Author:: Sergio Ferrera de Diego (mailto:sergioferrera1296@gmail.com)
|
7
|
+
# Copyright:: Cretive Commons
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
|
10
|
+
class Alimentos
|
11
|
+
|
12
|
+
include Comparable
|
13
|
+
|
14
|
+
attr_reader :alimento, :proteinas, :glucidos, :grasas
|
15
|
+
|
16
|
+
attr_accessor :g
|
17
|
+
|
18
|
+
# Método para definir la forma en la que comparar instancias de la clase
|
19
|
+
def <=>(other)
|
20
|
+
valor_ener <=> other.valor_ener
|
21
|
+
end
|
22
|
+
|
23
|
+
def == (other)
|
24
|
+
alimento == other.alimento
|
25
|
+
end
|
26
|
+
|
27
|
+
# Método para asignar los datos del alimento
|
28
|
+
#
|
29
|
+
# @param alimento nombre del alimento
|
30
|
+
# @param proteinas cantidad de proteinas del alimento
|
31
|
+
# @param glucidos cantidad de glucidos del alimento
|
32
|
+
# @param grasas cantidad de grasas del alimento
|
33
|
+
def initialize(alimento,proteinas,glucidos,grasas)
|
34
|
+
@alimento = alimento
|
35
|
+
@proteinas = proteinas
|
36
|
+
@glucidos = glucidos
|
37
|
+
@grasas = grasas
|
38
|
+
end
|
39
|
+
|
40
|
+
# Método para definir la forma en la que mostrar los datos del alimento
|
41
|
+
def to_s
|
42
|
+
"(#{@alimento}, #{@proteinas}, #{@glucidos}, #{@grasas})"
|
43
|
+
end
|
44
|
+
|
45
|
+
# Método para calcular el valor energetico del alimento
|
46
|
+
def valor_ener
|
47
|
+
(@glucidos*4) + (@grasas*9) + (@proteinas*4)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Método para calcular el Área incremental bajo la curva (AIBC) de un alimento o glucosa, dependiendo de que se le pase por parametro
|
51
|
+
#
|
52
|
+
# @param mediciones vector que contiene mediciones de glucosa o de un alimento
|
53
|
+
def AIBC
|
54
|
+
aibc=Array.new
|
55
|
+
g.each do |x|
|
56
|
+
almacen=Array.new
|
57
|
+
vec_2=(1..x.length-1).to_a.zip(x.drop(1))
|
58
|
+
vec_2.each{ |val| almacen<<(((val[1]-x[0]+x[val[0]-1]-x[0])/2)*5).round(2)}
|
59
|
+
aibc<<(almacen.reduce :+)
|
60
|
+
end
|
61
|
+
aibc
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
# Esta clase permite representar los grupos de alimento
|
67
|
+
# de un alimento representado por la clase Alimentos.
|
68
|
+
# Su desarrollo ha sido dirigido por pruebas (TDD).
|
69
|
+
|
70
|
+
class G_alimentos < Alimentos
|
71
|
+
|
72
|
+
attr_reader :grupo
|
73
|
+
|
74
|
+
# Método para asignar los datos del alimento
|
75
|
+
#
|
76
|
+
# @param alimento nombre del alimento
|
77
|
+
# @param proteinas cantidad de proteinas del alimento
|
78
|
+
# @param glucidos cantidad de glucidos del alimento
|
79
|
+
# @param grasas cantidad de grasas del alimento
|
80
|
+
# @param grupo grupo de alimentos al que pertenece el alimento
|
81
|
+
def initialize(alimento,proteinas,glucidos,grasas,grupo)
|
82
|
+
super(alimento,proteinas,glucidos,grasas)
|
83
|
+
@grupo = grupo
|
84
|
+
end
|
85
|
+
|
86
|
+
# Método para definir la forma en la que mostrar los datos del alimento con su respectivo grupo
|
87
|
+
def to_s
|
88
|
+
"(#{@alimento}, #{@proteinas}, #{@glucidos}, #{@grasas}, [#{@grupo}])"
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
data/lib/prct06/array.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Se definen nuevos métodos para la clase Array por defecto
|
3
|
+
# Su desarrollo ha sido dirigido por pruebas (TDD).
|
4
|
+
#
|
5
|
+
# Author:: Sergio Ferrera de Diego (mailto:sergioferrera1296@gmail.com)
|
6
|
+
# Copyright:: Cretive Commons
|
7
|
+
# License:: Distributes under the same terms as Ruby
|
8
|
+
class Array
|
9
|
+
|
10
|
+
# Método para ordenador por inserción un array mediante bucles for
|
11
|
+
def ordenar_for
|
12
|
+
ordenado=Array.new
|
13
|
+
ordenado << self[0]
|
14
|
+
for i in (1..self.length-1)
|
15
|
+
for j in (0..ordenado.length-1)
|
16
|
+
if self[i]>=ordenado[j]
|
17
|
+
ordenado.insert(j,self[i])
|
18
|
+
break
|
19
|
+
end
|
20
|
+
if j==ordenado.length-1
|
21
|
+
ordenado << self[i]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
ordenado
|
26
|
+
end
|
27
|
+
|
28
|
+
# Método para ordenador por inserción un array mediante método each
|
29
|
+
def ordenar_each
|
30
|
+
ordenado=Array.new
|
31
|
+
ordenado << self[0]
|
32
|
+
self.drop(1).each do |x|
|
33
|
+
ordenado.each_with_index do |y,i|
|
34
|
+
if x>=y
|
35
|
+
ordenado.insert(i,x)
|
36
|
+
break
|
37
|
+
end
|
38
|
+
if i==ordenado.length-1
|
39
|
+
ordenado << x
|
40
|
+
break
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
ordenado
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
data/lib/prct06/lista.rb
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Esta clase permite representar listas doblemente enlazadas.
|
3
|
+
# Su desarrollo ha sido dirigido por pruebas (TDD).
|
4
|
+
# Se han incluido el mixin Enumerable
|
5
|
+
#
|
6
|
+
# Author:: Sergio Ferrera de Diego (mailto:sergioferrera1296@gmail.com)
|
7
|
+
# Copyright:: Cretive Commons
|
8
|
+
# License:: Distributes under the same terms as Ruby
|
9
|
+
|
10
|
+
class List
|
11
|
+
|
12
|
+
include Enumerable
|
13
|
+
|
14
|
+
attr_reader :cola, :cabeza, :tam
|
15
|
+
|
16
|
+
# Método para asignar los datos de la lista
|
17
|
+
#
|
18
|
+
# @param cola cola de la lista
|
19
|
+
# @param cabeza cabeza de la lista
|
20
|
+
# @param tam tamaño de la lista
|
21
|
+
def initialize
|
22
|
+
|
23
|
+
@cola=nil
|
24
|
+
@cabeza=nil
|
25
|
+
@tam=0
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
# Método para definir como recorrer los elementos de la lista
|
30
|
+
def each
|
31
|
+
yield temp = @cabeza
|
32
|
+
if tam!=0
|
33
|
+
for i in (1 ..tam-1)
|
34
|
+
yield temp = temp.prev
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Método para introducir un nuevo elemento en la cola de lista
|
40
|
+
#
|
41
|
+
# @param valor elemento a introducir
|
42
|
+
def introducir_en_cola!(valor)
|
43
|
+
|
44
|
+
if(@tam==0)
|
45
|
+
@cola=Node.new(valor,nil,nil)
|
46
|
+
@cabeza= cola
|
47
|
+
|
48
|
+
else
|
49
|
+
@cola.prev=Node.new(valor,cola,nil)
|
50
|
+
@cola.prev.next= cola
|
51
|
+
@cola= cola.prev
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
@tam+=1
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
# Método para introducir un nuevo elemento en la cabeza de lista
|
60
|
+
#
|
61
|
+
# @param valor elemento a introducir
|
62
|
+
def introducir_en_cabeza!(valor)
|
63
|
+
|
64
|
+
if(@tam==0)
|
65
|
+
@cabeza=Node.new(valor,nil,nil)
|
66
|
+
@cola= cabeza
|
67
|
+
|
68
|
+
else
|
69
|
+
@cabeza.next=Node.new(valor,cola,nil)
|
70
|
+
@cabeza.next.prev= cabeza
|
71
|
+
@cabeza= cabeza.next
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
@tam+=1
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
# Método para eliminar un elemento de la cola de lista
|
80
|
+
def quitar_cola!
|
81
|
+
|
82
|
+
temp=@cola
|
83
|
+
|
84
|
+
if(tam>0)
|
85
|
+
@cola= cola.next
|
86
|
+
if cola.nil?
|
87
|
+
@cabeza=nil
|
88
|
+
else
|
89
|
+
@cola.prev=nil
|
90
|
+
end
|
91
|
+
temp.next=nil
|
92
|
+
temp.prev=nil
|
93
|
+
@tam-=1
|
94
|
+
end
|
95
|
+
|
96
|
+
temp
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
# Método para eliminar un elemento de la cabeza de lista
|
101
|
+
def quitar_cabeza!
|
102
|
+
|
103
|
+
temp=@cabeza
|
104
|
+
|
105
|
+
if(tam>0)
|
106
|
+
@cabeza= cabeza.prev
|
107
|
+
if cabeza.nil?
|
108
|
+
@cola=nil
|
109
|
+
else
|
110
|
+
@cabeza.next=nil
|
111
|
+
end
|
112
|
+
temp.next=nil
|
113
|
+
temp.prev=nil
|
114
|
+
@tam-=1
|
115
|
+
end
|
116
|
+
|
117
|
+
temp
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
# Método para definir la forma en la que mostrar los datos de la lista
|
122
|
+
def to_s
|
123
|
+
if(tam>0)
|
124
|
+
"tamaño:#{tam} contenido:(#{cabeza.value} #{cola.value})"
|
125
|
+
else
|
126
|
+
"Sin valores almacenados."
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Método para introducir un varios nuevos elementos provenientes de una cadena de caracteres en la cabeza de lista
|
131
|
+
#
|
132
|
+
# @param cadena de caracteres que contiene los nuevos elementos a introducir
|
133
|
+
def introducir_string!(valor)
|
134
|
+
|
135
|
+
for num in (0..valor.length-1)
|
136
|
+
introducir_en_cabeza!(valor[num])
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
140
|
+
|
141
|
+
end
|