alimentos-alu0100648782 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/.coveralls.yml +1 -0
- data/.gitignore +9 -0
- data/.rake_tasks~ +7 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +7 -0
- data/Guardfile +82 -0
- data/LICENSE.txt +21 -0
- data/README.md +50 -0
- data/Rakefile +6 -0
- data/alimentos.gemspec +45 -0
- data/bin/bundler +17 -0
- data/bin/console +14 -0
- data/bin/htmldiff +17 -0
- data/bin/ldiff +17 -0
- data/bin/rake +17 -0
- data/bin/rspec +17 -0
- data/bin/setup +8 -0
- data/docs/Alimento.html +469 -0
- data/docs/Alimentos.html +109 -0
- data/docs/CODE_OF_CONDUCT_md.html +195 -0
- data/docs/Gemfile.html +103 -0
- data/docs/Gemfile_lock.html +180 -0
- data/docs/Grupo.html +383 -0
- data/docs/Grupo_bebidas.html +102 -0
- data/docs/Grupo_carbohidratos.html +102 -0
- data/docs/Grupo_carnes.html +102 -0
- data/docs/Grupo_frutas.html +102 -0
- data/docs/Grupo_grasos.html +102 -0
- data/docs/Grupo_lacteos.html +102 -0
- data/docs/Grupo_pescados.html +102 -0
- data/docs/Grupo_verduras.html +102 -0
- data/docs/Guardfile.html +180 -0
- data/docs/LICENSE_txt.html +117 -0
- data/docs/Lista.html +457 -0
- data/docs/Object.html +116 -0
- data/docs/README_md.html +177 -0
- data/docs/Rakefile.html +101 -0
- data/docs/alimentos_gemspec.html +135 -0
- data/docs/bin/setup.html +101 -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 +129 -0
- data/docs/js/darkfish.js +161 -0
- data/docs/js/jquery.js +4 -0
- data/docs/js/navigation.js +142 -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 +228 -0
- data/docs/js/searcher.js.gz +0 -0
- data/docs/table_of_contents.html +236 -0
- data/lib/alimentos.rb +11 -0
- data/lib/alimentos/alimento.rb +40 -0
- data/lib/alimentos/calculadora.rb +52 -0
- data/lib/alimentos/comida.rb +58 -0
- data/lib/alimentos/grupo.rb +54 -0
- data/lib/alimentos/harvard_dsl.rb +160 -0
- data/lib/alimentos/individuo.rb +43 -0
- data/lib/alimentos/lista.rb +65 -0
- data/lib/alimentos/version.rb +3 -0
- metadata +237 -0
data/lib/alimentos.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require "alimentos/version"
|
2
|
+
require "alimentos/alimento"
|
3
|
+
require "alimentos/lista"
|
4
|
+
require "alimentos/grupo"
|
5
|
+
require "alimentos/comida"
|
6
|
+
require "alimentos/individuo"
|
7
|
+
require "alimentos/calculadora"
|
8
|
+
require "alimentos/harvard_dsl"
|
9
|
+
module Alimentos
|
10
|
+
# Your code goes here...
|
11
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# creacion de los metodos:
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
class Alimento
|
6
|
+
attr_reader :nombre, :proteinas, :glucidos, :lipidos
|
7
|
+
def initialize nombre, proteinas, glucidos, lipidos
|
8
|
+
@nombre, @proteinas, @glucidos, @lipidos = nombre, proteinas, glucidos, lipidos
|
9
|
+
end
|
10
|
+
|
11
|
+
def get_nombre
|
12
|
+
@nombre
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_proteinas
|
16
|
+
@proteinas
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_glucidos
|
20
|
+
@glucidos
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_lipidos
|
24
|
+
@lipidos
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_energetico
|
28
|
+
@aux = (@glucidos * 4) + (@lipidos * 9) + (@proteinas * 4)
|
29
|
+
@aux
|
30
|
+
end
|
31
|
+
|
32
|
+
def == (otro)
|
33
|
+
self.class == otro.class && @nombre == otro.nombre && @proteinas == otro.proteinas && @glucidos == otro.glucidos && @lipidos == otro.lipidos
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_s
|
37
|
+
"#{nombre}, #{proteinas}, #{glucidos}, #{lipidos}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
class Calculadora
|
2
|
+
# método inicializar clase
|
3
|
+
def initialize(individuos)
|
4
|
+
# atributos
|
5
|
+
@individuos = individuos
|
6
|
+
@resultados = []
|
7
|
+
end
|
8
|
+
|
9
|
+
#metodo que calcula el indice glucemico de todos los alimentos de los
|
10
|
+
#individuos
|
11
|
+
def calcular()
|
12
|
+
lista_nombres=@individuos[0].get_lista_nombres
|
13
|
+
lista_nombres.each do |nombre|
|
14
|
+
cont=0
|
15
|
+
igind=0
|
16
|
+
#puts nombre
|
17
|
+
for j in 0..@individuos.length-1
|
18
|
+
glucosa=@individuos[j].get_glucosa.to_f
|
19
|
+
#puts glucosa
|
20
|
+
aibc=@individuos[j].get_aibc(nombre)
|
21
|
+
#puts aibc
|
22
|
+
aux=aibc/glucosa*100
|
23
|
+
#puts aux
|
24
|
+
igind=igind+aux
|
25
|
+
cont=cont+1
|
26
|
+
end
|
27
|
+
igind=igind/cont
|
28
|
+
#puts igind
|
29
|
+
@resultados << nombre + " " + igind.round(2).to_s + "\n"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
#metodo que muestra por pantalla los resultados obtenenidos con el metodo
|
34
|
+
#calcular. Alimento -> Indice glucemico
|
35
|
+
def mostrar_resultados
|
36
|
+
calcular
|
37
|
+
s="Resultados\n"
|
38
|
+
for j in 0..@resultados.length-1
|
39
|
+
s << @resultados[j].to_s
|
40
|
+
end
|
41
|
+
s
|
42
|
+
end
|
43
|
+
|
44
|
+
#salida por pantalla de clase
|
45
|
+
def to_s
|
46
|
+
s = "\nLista de Individuos y sus alimentos\n"
|
47
|
+
for j in 0..@individuos.length-1
|
48
|
+
s << @individuos[j].to_s + "\n"
|
49
|
+
end
|
50
|
+
s
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
class Comida
|
2
|
+
# método inicializar clase
|
3
|
+
def initialize(nombre, tiempo,concentraciones)
|
4
|
+
# atributos
|
5
|
+
@nombre = nombre
|
6
|
+
@concentraciones = concentraciones
|
7
|
+
@tiempo = tiempo
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_nombre()
|
11
|
+
return @nombre
|
12
|
+
end
|
13
|
+
|
14
|
+
#método que nos devuelve el calculo del aibc del alimento
|
15
|
+
def get_aibc()
|
16
|
+
#metodo imperativo
|
17
|
+
#total = 0
|
18
|
+
#for j in 1..@concentraciones.length-1
|
19
|
+
# aux=@concentraciones[j].to_f-@concentraciones[0].to_f
|
20
|
+
# aux2=@concentraciones[j-1].to_f-@concentraciones[0].to_f
|
21
|
+
# if aux < 0
|
22
|
+
# aux=0
|
23
|
+
# end
|
24
|
+
# if aux2 < 0
|
25
|
+
# aux2=0
|
26
|
+
# end
|
27
|
+
# aux3=aux+aux2
|
28
|
+
# aux3=aux3*@tiempo.to_f
|
29
|
+
# aux3=aux3/2
|
30
|
+
# total=total+aux3
|
31
|
+
#end
|
32
|
+
|
33
|
+
#otro metodo
|
34
|
+
s=[]
|
35
|
+
@concentraciones[1..@concentraciones.length-1].zip(@concentraciones[0..@concentraciones.length-2]) do |x,y|
|
36
|
+
if x < @concentraciones[0]
|
37
|
+
s << 0.0
|
38
|
+
else
|
39
|
+
s << (((x - @concentraciones[0])+(y-@concentraciones[0]))/2)*5
|
40
|
+
end
|
41
|
+
end
|
42
|
+
#puts s.reduce(:+).round(2)
|
43
|
+
#puts total.round(2)
|
44
|
+
#return total.round(2)
|
45
|
+
return s.reduce(:+).round(2)
|
46
|
+
end
|
47
|
+
|
48
|
+
#salida por pantalla de clase
|
49
|
+
def to_s
|
50
|
+
s = "\n"
|
51
|
+
s << "#{@nombre}\n"
|
52
|
+
s << "\nConcentraciones: #{@concentraciones}"
|
53
|
+
s << "\nPeriodo de Tiempo: #{@tiempo} minutos"
|
54
|
+
s << "\n"
|
55
|
+
s << "\nAIBC: " + get_aibc.to_s
|
56
|
+
s
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
class Grupo
|
2
|
+
|
3
|
+
include Comparable
|
4
|
+
|
5
|
+
attr_reader :titulo, :alimentos
|
6
|
+
def initialize titulo, alimentos
|
7
|
+
@titulo, @alimentos = titulo, alimentos
|
8
|
+
end
|
9
|
+
def get_titulo
|
10
|
+
@titulo
|
11
|
+
end
|
12
|
+
def get_alimento i
|
13
|
+
@alimentos[i]
|
14
|
+
end
|
15
|
+
def getall_alimentos
|
16
|
+
@alimentos
|
17
|
+
end
|
18
|
+
def to_s
|
19
|
+
out = "#{@titulo.upcase}\n"
|
20
|
+
out << @alimentos.map { |alimento| "-#{alimento}" }.join(",\n")
|
21
|
+
out
|
22
|
+
end
|
23
|
+
def <=> (otro)
|
24
|
+
@titulo<=>otro.titulo
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Grupo_lacteos < Grupo
|
29
|
+
end
|
30
|
+
|
31
|
+
class Grupo_carnes < Grupo
|
32
|
+
end
|
33
|
+
|
34
|
+
class Grupo_pescados < Grupo
|
35
|
+
end
|
36
|
+
|
37
|
+
class Grupo_grasos < Grupo
|
38
|
+
end
|
39
|
+
|
40
|
+
class Grupo_carbohidratos < Grupo
|
41
|
+
end
|
42
|
+
|
43
|
+
class Grupo_verduras < Grupo
|
44
|
+
end
|
45
|
+
|
46
|
+
class Grupo_lacteos < Grupo
|
47
|
+
end
|
48
|
+
|
49
|
+
class Grupo_frutas < Grupo
|
50
|
+
end
|
51
|
+
|
52
|
+
class Grupo_bebidas < Grupo
|
53
|
+
end
|
54
|
+
|
@@ -0,0 +1,160 @@
|
|
1
|
+
class Harvard_DSL
|
2
|
+
attr_accessor :name, :platos, :entotal
|
3
|
+
|
4
|
+
def initialize(name, &block)
|
5
|
+
self.name = name
|
6
|
+
self.platos = []
|
7
|
+
self.entotal = 0
|
8
|
+
|
9
|
+
instance_eval &block
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
#funciones del block
|
14
|
+
def vegetal(titulo, options = {})
|
15
|
+
porcion = ""
|
16
|
+
porcion << " (#{options[:porcion]})" if options[:porcion]
|
17
|
+
porcion = porcion.tr("^0-9","")
|
18
|
+
gramos = ""
|
19
|
+
gramos << " (#{options[:gramos]})" if options[:gramos]
|
20
|
+
gramos = gramos.tr("^0-9","")
|
21
|
+
|
22
|
+
if gramos != ""
|
23
|
+
glucidos = (gramos.to_f * 10 * 30)/100
|
24
|
+
lipidos = (gramos.to_f * 10 * 20)/100
|
25
|
+
proteinas = (gramos.to_f * 10 * 50)/100
|
26
|
+
end
|
27
|
+
|
28
|
+
if porcion != ""
|
29
|
+
glucidos = (porcion.to_f * 10 * 30)/100
|
30
|
+
lipidos = (porcion.to_f * 10 * 20)/100
|
31
|
+
proteinas = (porcion.to_f * 10 * 50)/100
|
32
|
+
end
|
33
|
+
|
34
|
+
alimento = Alimento.new(titulo,glucidos,proteinas,lipidos)
|
35
|
+
@entotal = @entotal + alimento.get_energetico()
|
36
|
+
platos << alimento
|
37
|
+
end
|
38
|
+
|
39
|
+
def fruta(titulo,options = {})
|
40
|
+
porcion = ""
|
41
|
+
porcion << " (#{options[:porcion]})" if options[:porcion]
|
42
|
+
porcion = porcion.tr("^0-9","")
|
43
|
+
gramos = ""
|
44
|
+
gramos << " (#{options[:gramos]})" if options[:gramos]
|
45
|
+
gramos = gramos.tr("^0-9","")
|
46
|
+
|
47
|
+
if gramos != ""
|
48
|
+
glucidos = (gramos.to_f * 3 * 30)/100
|
49
|
+
lipidos = (gramos.to_f * 3 * 20)/100
|
50
|
+
proteinas = (gramos.to_f * 3 * 50)/100
|
51
|
+
end
|
52
|
+
|
53
|
+
if porcion != ""
|
54
|
+
glucidos = (porcion.to_f * 10 * 30)/100
|
55
|
+
lipidos = (porcion.to_f * 10 * 20)/100
|
56
|
+
proteinas = (porcion.to_f * 10 * 50)/100
|
57
|
+
end
|
58
|
+
|
59
|
+
alimento = Alimento.new(titulo,glucidos,proteinas,lipidos)
|
60
|
+
@entotal = @entotal + alimento.get_energetico()
|
61
|
+
platos << alimento
|
62
|
+
end
|
63
|
+
|
64
|
+
def cereal(titulo,options = {})
|
65
|
+
porcion = ""
|
66
|
+
porcion << " (#{options[:porcion]})" if options[:porcion]
|
67
|
+
porcion = porcion.tr("^0-9","")
|
68
|
+
gramos = ""
|
69
|
+
gramos << " (#{options[:gramos]})" if options[:gramos]
|
70
|
+
gramos = gramos.tr("^0-9","")
|
71
|
+
|
72
|
+
if gramos != ""
|
73
|
+
glucidos = (gramos.to_f * 10 * 30)/100
|
74
|
+
lipidos = (gramos.to_f * 10 * 20)/100
|
75
|
+
proteinas = (gramos.to_f * 10 * 50)/100
|
76
|
+
end
|
77
|
+
if porcion != ""
|
78
|
+
glucidos = (porcion.to_f * 10 * 30)/100
|
79
|
+
lipidos = (porcion.to_f * 10 * 20)/100
|
80
|
+
proteinas = (porcion.to_f * 10 * 50)/100
|
81
|
+
end
|
82
|
+
|
83
|
+
alimento = Alimento.new(titulo,glucidos,proteinas,lipidos)
|
84
|
+
@entotal = @entotal + alimento.get_energetico()
|
85
|
+
platos << alimento
|
86
|
+
end
|
87
|
+
|
88
|
+
def proteina(titulo,options = {})
|
89
|
+
porcion = ""
|
90
|
+
porcion << " (#{options[:porcion]})" if options[:porcion]
|
91
|
+
porcion = porcion.tr("^0-9","")
|
92
|
+
gramos = ""
|
93
|
+
gramos << " (#{options[:gramos]})" if options[:gramos]
|
94
|
+
gramos = gramos.tr("^0-9","")
|
95
|
+
|
96
|
+
if gramos != ""
|
97
|
+
glucidos = (gramos.to_f * 10 * 30)/100
|
98
|
+
lipidos = (gramos.to_f * 10 * 20)/100
|
99
|
+
proteinas = (gramos.to_f * 10 * 50)/100
|
100
|
+
end
|
101
|
+
|
102
|
+
if porcion != ""
|
103
|
+
glucidos = (porcion.to_f * 10 * 30)/100
|
104
|
+
lipidos = (porcion.to_f * 10 * 20)/100
|
105
|
+
proteinas = (porcion.to_f * 10 * 50)/100
|
106
|
+
end
|
107
|
+
|
108
|
+
alimento = Alimento.new(titulo,glucidos,proteinas,lipidos)
|
109
|
+
@entotal = @entotal + alimento.get_energetico()
|
110
|
+
platos << alimento
|
111
|
+
end
|
112
|
+
|
113
|
+
def aceite(titulo,options = {})
|
114
|
+
porcion = ""
|
115
|
+
porcion << " (#{options[:porcion]})" if options[:porcion]
|
116
|
+
porcion = porcion.tr("^0-9","")
|
117
|
+
gramos = ""
|
118
|
+
gramos << " (#{options[:gramos]})" if options[:gramos]
|
119
|
+
gramos = gramos.tr("^0-9","")
|
120
|
+
|
121
|
+
if gramos != ""
|
122
|
+
glucidos = (gramos.to_f * 10 * 30)/100
|
123
|
+
lipidos = (gramos.to_f * 10 * 20)/100
|
124
|
+
proteinas = (gramos.to_f * 10 * 50)/100
|
125
|
+
end
|
126
|
+
|
127
|
+
if porcion != ""
|
128
|
+
glucidos = (porcion.to_f * 5 * 30)/100
|
129
|
+
lipidos = (porcion.to_f * 5 * 20)/100
|
130
|
+
proteinas = (porcion.to_f * 5 * 50)/100
|
131
|
+
end
|
132
|
+
|
133
|
+
alimento = Alimento.new(titulo,glucidos,proteinas,lipidos)
|
134
|
+
@entotal = @entotal + alimento.get_energetico()
|
135
|
+
platos << alimento
|
136
|
+
end
|
137
|
+
|
138
|
+
def to_s
|
139
|
+
output = ""
|
140
|
+
output << name
|
141
|
+
output << "\n"
|
142
|
+
for i in 0..name.size-1 do
|
143
|
+
output << "="
|
144
|
+
end
|
145
|
+
output << "\n"
|
146
|
+
output << "\nComposición nutricional:\n"
|
147
|
+
output << "\n"
|
148
|
+
platos.each_with_index do |plato, index|
|
149
|
+
output << "#{plato} #{plato.get_energetico}\n"
|
150
|
+
#if index>0
|
151
|
+
#if (index-1) % 3 == 1
|
152
|
+
#output << "\n"
|
153
|
+
#end
|
154
|
+
#end
|
155
|
+
end
|
156
|
+
output << "Valor Energetico total #{@entotal}"
|
157
|
+
output
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class Individuo
|
2
|
+
# método inicializar clase
|
3
|
+
def initialize(num, alimentos, glucosa)
|
4
|
+
# atributos
|
5
|
+
@num = num
|
6
|
+
@alimentos = alimentos
|
7
|
+
@glucosa = glucosa
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_glucosa()
|
11
|
+
@glucosa.get_aibc
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_aibc(nombre)
|
15
|
+
for j in 0..@alimentos.length-1
|
16
|
+
if @alimentos[j].get_nombre==nombre
|
17
|
+
return @alimentos[j].get_aibc
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
#metodo que nos devuelve una lista con los nombres de todos los alimentos
|
23
|
+
def get_lista_nombres()
|
24
|
+
lista = []
|
25
|
+
for j in 0..@alimentos.length-1
|
26
|
+
lista<<@alimentos[j].get_nombre
|
27
|
+
end
|
28
|
+
return lista
|
29
|
+
end
|
30
|
+
|
31
|
+
#salida por pantalla de clase
|
32
|
+
def to_s
|
33
|
+
s = "Individuo " + @num
|
34
|
+
s << "\nAlimentos:\n"
|
35
|
+
for j in 0..@alimentos.length-1
|
36
|
+
s << @alimentos[j].to_s
|
37
|
+
end
|
38
|
+
s << @glucosa.to_s
|
39
|
+
s << "\n"
|
40
|
+
s
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
@@ -0,0 +1,65 @@
|
|
1
|
+
Nodo = Struct.new(:value, :next, :prev)
|
2
|
+
|
3
|
+
class Lista
|
4
|
+
|
5
|
+
include Enumerable
|
6
|
+
|
7
|
+
attr_accessor :cabeza, :cola, :nodo_actual
|
8
|
+
|
9
|
+
def initialize(cabeza,cola)
|
10
|
+
@cabeza = cabeza
|
11
|
+
@cola = cola
|
12
|
+
end
|
13
|
+
|
14
|
+
def insertar(x)
|
15
|
+
node = Nodo.new(x,nil,nil)
|
16
|
+
|
17
|
+
if @cabeza==nil && @cola==nil
|
18
|
+
node.prev = @cola
|
19
|
+
node.next = @cabeza
|
20
|
+
@nodo_actual = node
|
21
|
+
@cabeza = node
|
22
|
+
@cola = node
|
23
|
+
else
|
24
|
+
node.prev = @cabeza
|
25
|
+
node.next = nil
|
26
|
+
@nodo_actual = node
|
27
|
+
@cabeza.next = node
|
28
|
+
@cabeza = node
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def insertar_varios(nodos)
|
33
|
+
nodos.each do |nd|
|
34
|
+
insertar(nd)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
#eliminar el nodo y cambiar los valores al nodo anterior
|
39
|
+
def extraer_inicio()
|
40
|
+
@cola=@cola.next
|
41
|
+
end
|
42
|
+
|
43
|
+
def extrar_final()
|
44
|
+
@cabeza = @cabeza.prev
|
45
|
+
end
|
46
|
+
|
47
|
+
def to_s
|
48
|
+
@cabeza.to_s
|
49
|
+
end
|
50
|
+
|
51
|
+
def each
|
52
|
+
while @cabeza != @cola
|
53
|
+
yield @cabeza.value
|
54
|
+
@cabeza=@cabeza.prev
|
55
|
+
end
|
56
|
+
|
57
|
+
if @cabeza == @cola
|
58
|
+
if @cabeza == nil
|
59
|
+
nil
|
60
|
+
else
|
61
|
+
yield @cola.value
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|