linkedlist_alu0100221879 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.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +4 -0
  5. data/Guardfile +82 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +9 -0
  8. data/Rakefile +11 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +7 -0
  11. data/html/Linkedlist.html +112 -0
  12. data/html/Linkedlist/List.html +429 -0
  13. data/html/Linkedlist/Menu.html +611 -0
  14. data/html/Linkedlist/MenuEdades.html +267 -0
  15. data/html/Linkedlist/MenuGrupos.html +266 -0
  16. data/html/Linkedlist/Node.html +206 -0
  17. data/html/Linkedlist/Plato.html +317 -0
  18. data/html/created.rid +4 -0
  19. data/html/css/fonts.css +167 -0
  20. data/html/css/rdoc.css +590 -0
  21. data/html/fonts/Lato-Light.ttf +0 -0
  22. data/html/fonts/Lato-LightItalic.ttf +0 -0
  23. data/html/fonts/Lato-Regular.ttf +0 -0
  24. data/html/fonts/Lato-RegularItalic.ttf +0 -0
  25. data/html/fonts/SourceCodePro-Bold.ttf +0 -0
  26. data/html/fonts/SourceCodePro-Regular.ttf +0 -0
  27. data/html/images/add.png +0 -0
  28. data/html/images/arrow_up.png +0 -0
  29. data/html/images/brick.png +0 -0
  30. data/html/images/brick_link.png +0 -0
  31. data/html/images/bug.png +0 -0
  32. data/html/images/bullet_black.png +0 -0
  33. data/html/images/bullet_toggle_minus.png +0 -0
  34. data/html/images/bullet_toggle_plus.png +0 -0
  35. data/html/images/date.png +0 -0
  36. data/html/images/delete.png +0 -0
  37. data/html/images/find.png +0 -0
  38. data/html/images/loadingAnimation.gif +0 -0
  39. data/html/images/macFFBgHack.png +0 -0
  40. data/html/images/package.png +0 -0
  41. data/html/images/page_green.png +0 -0
  42. data/html/images/page_white_text.png +0 -0
  43. data/html/images/page_white_width.png +0 -0
  44. data/html/images/plugin.png +0 -0
  45. data/html/images/ruby.png +0 -0
  46. data/html/images/tag_blue.png +0 -0
  47. data/html/images/tag_green.png +0 -0
  48. data/html/images/transparent.png +0 -0
  49. data/html/images/wrench.png +0 -0
  50. data/html/images/wrench_orange.png +0 -0
  51. data/html/images/zoom.png +0 -0
  52. data/html/index.html +93 -0
  53. data/html/js/darkfish.js +161 -0
  54. data/html/js/jquery.js +4 -0
  55. data/html/js/navigation.js +142 -0
  56. data/html/js/navigation.js.gz +0 -0
  57. data/html/js/search.js +109 -0
  58. data/html/js/search_index.js +1 -0
  59. data/html/js/search_index.js.gz +0 -0
  60. data/html/js/searcher.js +229 -0
  61. data/html/js/searcher.js.gz +0 -0
  62. data/html/table_of_contents.html +198 -0
  63. data/lib/linkedlist.rb +6 -0
  64. data/lib/linkedlist/linkedlist.rb +302 -0
  65. data/lib/linkedlist/version.rb +3 -0
  66. data/linkedlist.gemspec +29 -0
  67. metadata +207 -0
@@ -0,0 +1,6 @@
1
+ require "linkedlist/version"
2
+ require "linkedlist/linkedlist"
3
+
4
+ module Linkedlist
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,302 @@
1
+ # encoding: utf-8
2
+
3
+ # Lista de menús dietéticos.
4
+ module Linkedlist
5
+
6
+ # Plato de un menú.
7
+ class Plato
8
+
9
+ # Descripción del plato.
10
+ attr_reader :descr
11
+ # Tamaño de la porción recomendada.
12
+ attr_reader :porcion
13
+ # Ingesta en gramos.
14
+ attr_reader :ingesta
15
+
16
+ # Inicializa el plato con los datos pasados.
17
+ def initialize(descr, porcion, ingesta)
18
+ raise ArgumentError, "[Plato.initialize] La ingesta en gramos debe ser mayor que 0" unless ingesta > 0
19
+ @descr, @porcion, @ingesta = descr, porcion, ingesta
20
+ end
21
+
22
+ # Comprobación de la igualdad entre platos.
23
+ def ==(plato)
24
+ return @descr == plato.descr && @porcion == plato.porcion && @ingesta == plato.ingesta
25
+ end
26
+
27
+ # Comprobación de la igualdad entre platos.
28
+ def eql?(plato)
29
+ return self == plato
30
+ end
31
+
32
+ # Devuelve el plato formateado como cadena.
33
+ def to_s
34
+ return "#{@descr}, #{@porcion}, #{@ingesta} g"
35
+ end
36
+
37
+ end
38
+
39
+ # Menú básico.
40
+ class Menu
41
+
42
+ # Incluye Comparable
43
+ include Comparable
44
+
45
+ # Título del menú.
46
+ attr_reader :titulo
47
+ # Porcentaje de ingesta diaria.
48
+ attr_reader :pct_ingesta
49
+ # Valor calórico total (VCT) en kcal.
50
+ attr_reader :vct
51
+ # Porcentaje de proteínas de sus platos.
52
+ attr_reader :pct_prot
53
+ # Porcentaje de grasas de sus platos.
54
+ attr_reader :pct_grasas
55
+ # Porcentaje de hidratos de carbono de sus platos.
56
+ attr_reader :pct_hdc
57
+ # Array de platos del menú.
58
+ attr_reader :platos
59
+
60
+ # Inicializa el menú con los datos pasados (formato DSL).
61
+ def initialize(&block)
62
+ instance_eval(&block)
63
+ raise ArgumentError, Menu.err_pct('ingesta diaria') unless Menu.is_pct?(@pct_ingesta)
64
+ raise ArgumentError, Menu.err_pct('proteínas') unless Menu.is_pct?(@pct_prot)
65
+ raise ArgumentError, Menu.err_pct('grasas') unless Menu.is_pct?(@pct_grasas)
66
+ raise ArgumentError, Menu.err_pct('hidratos') unless Menu.is_pct?(@pct_hdc)
67
+ raise ArgumentError, "[Menu.initialize] Los porcentajes de macronutrientes deben sumar 100%" unless @pct_prot + @pct_grasas + @pct_hdc == 100
68
+ raise ArgumentError, "[Menu.initialize] Debe haber al menos un plato" unless @platos.count > 0
69
+ end
70
+
71
+ # Establece el título del menú.
72
+ def tit(titulo)
73
+ @titulo = titulo
74
+ end
75
+
76
+ # Establece el porcentaje de ingesta diaria.
77
+ def ingesta(ingesta)
78
+ @pct_ingesta = ingesta
79
+ end
80
+
81
+ # Establece el valor calórico total (VCT) y los porcentajes de proteínas, grasas e hidratos de carbono.
82
+ def porcentajes(porcentajes)
83
+ @vct = porcentajes[:vct]
84
+ @pct_prot = porcentajes[:proteinas]
85
+ @pct_grasas = porcentajes[:grasas]
86
+ @pct_hdc = porcentajes[:hidratos]
87
+ end
88
+
89
+ # Añade un plato al menú.
90
+ def plato(plato)
91
+ @platos = [] if @platos.nil?
92
+ @platos.push(Plato.new(plato[:descripcion], plato[:porcion], plato[:gramos]))
93
+ end
94
+
95
+ # Obtiene el plato correspondiente al número _num_ o nil si éste no existe.
96
+ def get_plate(num)
97
+ return (num >= 0 && num < platos.count) ? platos[num] : nil
98
+ end
99
+
100
+ # Devuelve el menú formateado como cadena.
101
+ def to_s
102
+ s = ''
103
+ s << "#{@titulo.upcase} (#{@pct_ingesta}%)\n" # Título y porcentaje de ingesta diaria
104
+ @platos.each {|plato| s << "- #{plato.to_s}\n"} # Platos
105
+ s << "V.C.T. | % #{@vct} kcal | #{@pct_prot}% - #{pct_grasas}% - #{pct_hdc}%\n" # VCT y porcentajes de macronutrientes
106
+ return s
107
+ end
108
+
109
+ # Comprueba que _num_ está entre 0 y 100 (ambos incluidos).
110
+ def self.is_pct?(num)
111
+ return (0.0..100.0).include?(num)
112
+ end
113
+
114
+ # Devuelve la cadena de error si el porcentaje no es correcto.
115
+ def self.err_pct(str)
116
+ return "[Menu.initialize] El porcentaje de #{str} debe estar entre 0 y 100"
117
+ end
118
+
119
+ # Comparación de menús.
120
+ # La comparación es por orden alfabético de títulos y por cantidad de platos (de más a menos) si hay igualdad en los títulos.
121
+ def <=>(c_menu)
122
+ titulos_ord = @titulo <=> c_menu.titulo
123
+ if titulos_ord == 0
124
+ return -(@platos.count <=> c_menu.platos.count)
125
+ else
126
+ return titulos_ord
127
+ end
128
+ end
129
+
130
+ end
131
+
132
+ # Menú por grupo de alimentos.
133
+ class MenuGrupos < Menu
134
+
135
+ # Grupo de alimentos.
136
+ attr_reader :grupo_alimentos
137
+
138
+ # Inicializa el menú con los datos pasados (formato DSL).
139
+ def initialize(&block)
140
+ instance_eval(&block)
141
+ raise ArgumentError, Menu.err_pct('ingesta diaria') unless Menu.is_pct?(@pct_ingesta)
142
+ raise ArgumentError, Menu.err_pct('proteínas') unless Menu.is_pct?(@pct_prot)
143
+ raise ArgumentError, Menu.err_pct('grasas') unless Menu.is_pct?(@pct_grasas)
144
+ raise ArgumentError, Menu.err_pct('hidratos') unless Menu.is_pct?(@pct_hdc)
145
+ raise ArgumentError, "[Menu.initialize] Los porcentajes de macronutrientes deben sumar 100%" unless @pct_prot + @pct_grasas + @pct_hdc == 100
146
+ raise ArgumentError, "[Menu.initialize] Debe haber al menos un plato" unless @platos.count > 0
147
+ end
148
+
149
+ # Establece el grupo de alimentos.
150
+ def grupo(grupo)
151
+ @grupo_alimentos = grupo
152
+ end
153
+
154
+ # Devuelve el menú por grupo de alimentos formateado como cadena.
155
+ def to_s
156
+ return super << "El menú está formado exclusivamente por #{@grupo_alimentos}\n" # Grupo de alimentos
157
+ end
158
+
159
+ end
160
+
161
+ # Menú por edades.
162
+ class MenuEdades < Menu
163
+
164
+ # Rango de edades recomendado para el menú.
165
+ attr_reader :rango_edad
166
+
167
+ # Inicializa el menú con los datos pasados (formato DSL).
168
+ def initialize(&block)
169
+ instance_eval(&block)
170
+ raise ArgumentError, Menu.err_pct('ingesta diaria') unless Menu.is_pct?(@pct_ingesta)
171
+ raise ArgumentError, Menu.err_pct('proteínas') unless Menu.is_pct?(@pct_prot)
172
+ raise ArgumentError, Menu.err_pct('grasas') unless Menu.is_pct?(@pct_grasas)
173
+ raise ArgumentError, Menu.err_pct('hidratos') unless Menu.is_pct?(@pct_hdc)
174
+ raise ArgumentError, "[Menu.initialize] Los porcentajes de macronutrientes deben sumar 100%" unless @pct_prot + @pct_grasas + @pct_hdc == 100
175
+ raise ArgumentError, "[Menu.initialize] Debe haber al menos un plato" unless @platos.count > 0
176
+ raise ArgumentError, "[MenuEdades.initialize] El rango de edades debe ser de tipo Range" unless @rango_edad.kind_of?(Range)
177
+ end
178
+
179
+ # Establece el rango de edades recomendado para el menú.
180
+ def rango(rango)
181
+ @rango_edad = rango
182
+ end
183
+
184
+ # Devuelve el menú por edades formateado como cadena.
185
+ def to_s
186
+ return super << "Apropiado para edades comprendidas entre los #{@rango_edad.first} y los #{@rango_edad.last} años\n" # Rango de edades
187
+ end
188
+
189
+ end
190
+
191
+ # Nodo que contiene un menú dietético de cualquier tipo.
192
+ class Node
193
+
194
+ # Valor del nodo (menú dietético).
195
+ attr_accessor :value
196
+ # Enlace al siguiente nodo de la lista de menús dietéticos.
197
+ attr_accessor :next_node
198
+ # Enlace al anterior nodo de la lista de menús dietéticos.
199
+ attr_accessor :prev_node
200
+
201
+ # Inicializa el nodo con el valor _value_. Si se especifican también inicializa los enlaces al siguiente y anterior nodo de la lista.
202
+ def initialize(value, next_node = nil, prev_node = nil)
203
+ @value = value
204
+ @next_node = next_node
205
+ @prev_node = prev_node
206
+ end
207
+
208
+ end
209
+
210
+ # Lista de menús dietéticos.
211
+ class List
212
+
213
+ # Incluye Enumerable
214
+ include Enumerable
215
+
216
+ # Nodo cabeza de la lista.
217
+ attr_reader :head
218
+ # Nodo cola de la lista.
219
+ attr_reader :tail
220
+ # Tamaño de la lista.
221
+ attr_reader :size
222
+
223
+ # Inicializa la lista vacía.
224
+ def initialize()
225
+ @head = nil
226
+ @tail = nil
227
+ @size = 0
228
+ end
229
+
230
+ # Devuelve si la lista está vacía.
231
+ def empty?()
232
+ return (@head == nil)
233
+ end
234
+
235
+ # Inserta un menú en la lista vacía.
236
+ def push_empty(ref)
237
+
238
+ raise RuntimeError, "[List.push_empty]: Lista no vacía" unless empty?()
239
+
240
+ nodo = Node.new(ref)
241
+ @head = nodo
242
+ @tail = nodo
243
+ @size += 1
244
+
245
+ return self
246
+
247
+ end
248
+
249
+ # Inserta el menú _ref_ al final de la lista.
250
+ def push(ref)
251
+ if empty?()
252
+ return push_empty(ref)
253
+ else
254
+ nodo = Node.new(ref, nil, @tail)
255
+ @tail.next_node = nodo
256
+ @tail = nodo
257
+ @size += 1
258
+ return self
259
+ end
260
+ end
261
+
262
+ # Inserta múltiples elementos al final de la lista.
263
+ def push_multi(*refs)
264
+ refs.each { |ref| push(ref)}
265
+ end
266
+
267
+ # Extrae y devuelve el menú del principio de la lista.
268
+ def pop()
269
+
270
+ raise RuntimeError, "[List.pop]: No se puede extraer elementos de una lista vacía" if empty?()
271
+
272
+ nodo = @head
273
+ if @head.equal?(@tail)
274
+ @head = nil
275
+ @tail = nil
276
+ else
277
+ @head = @head.next_node
278
+ @head.prev_node = nil
279
+ end
280
+
281
+ @size -= 1
282
+
283
+ return nodo.value
284
+
285
+ end
286
+
287
+ # Itera la lista, ejecutando el bloque pasado pasándole como parámetro el valor de cada nodo.
288
+ def each
289
+
290
+ nodo = @head
291
+ until nodo.nil?
292
+ yield nodo.value
293
+ nodo = nodo.next_node
294
+ end
295
+
296
+ end
297
+
298
+ private :push_empty
299
+
300
+ end
301
+
302
+ end
@@ -0,0 +1,3 @@
1
+ module Linkedlist
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'linkedlist/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "linkedlist_alu0100221879"
8
+ spec.version = Linkedlist::VERSION
9
+ spec.authors = ["alu0100221879"]
10
+ spec.email = ["alu0100221879@ull.edu.es"]
11
+
12
+ spec.summary = %q{Gema de la clase LinkedList.}
13
+ spec.description = %q{Gema que guarda una lista de menús dietéticos (lista enlazada).}
14
+ spec.homepage = "https://github.com/ULL-ESIT-LPP-1617/menu-dietetico-alu0100221879"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.10"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "guard"
26
+ spec.add_development_dependency "guard-rspec"
27
+ spec.add_development_dependency "guard-bundler"
28
+ spec.add_development_dependency "rdoc"
29
+ end
metadata ADDED
@@ -0,0 +1,207 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: linkedlist_alu0100221879
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - alu0100221879
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-12-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard-bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rdoc
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Gema que guarda una lista de menús dietéticos (lista enlazada).
112
+ email:
113
+ - alu0100221879@ull.edu.es
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".rspec"
120
+ - Gemfile
121
+ - Guardfile
122
+ - LICENSE.txt
123
+ - README.md
124
+ - Rakefile
125
+ - bin/console
126
+ - bin/setup
127
+ - html/Linkedlist.html
128
+ - html/Linkedlist/List.html
129
+ - html/Linkedlist/Menu.html
130
+ - html/Linkedlist/MenuEdades.html
131
+ - html/Linkedlist/MenuGrupos.html
132
+ - html/Linkedlist/Node.html
133
+ - html/Linkedlist/Plato.html
134
+ - html/created.rid
135
+ - html/css/fonts.css
136
+ - html/css/rdoc.css
137
+ - html/fonts/Lato-Light.ttf
138
+ - html/fonts/Lato-LightItalic.ttf
139
+ - html/fonts/Lato-Regular.ttf
140
+ - html/fonts/Lato-RegularItalic.ttf
141
+ - html/fonts/SourceCodePro-Bold.ttf
142
+ - html/fonts/SourceCodePro-Regular.ttf
143
+ - html/images/add.png
144
+ - html/images/arrow_up.png
145
+ - html/images/brick.png
146
+ - html/images/brick_link.png
147
+ - html/images/bug.png
148
+ - html/images/bullet_black.png
149
+ - html/images/bullet_toggle_minus.png
150
+ - html/images/bullet_toggle_plus.png
151
+ - html/images/date.png
152
+ - html/images/delete.png
153
+ - html/images/find.png
154
+ - html/images/loadingAnimation.gif
155
+ - html/images/macFFBgHack.png
156
+ - html/images/package.png
157
+ - html/images/page_green.png
158
+ - html/images/page_white_text.png
159
+ - html/images/page_white_width.png
160
+ - html/images/plugin.png
161
+ - html/images/ruby.png
162
+ - html/images/tag_blue.png
163
+ - html/images/tag_green.png
164
+ - html/images/transparent.png
165
+ - html/images/wrench.png
166
+ - html/images/wrench_orange.png
167
+ - html/images/zoom.png
168
+ - html/index.html
169
+ - html/js/darkfish.js
170
+ - html/js/jquery.js
171
+ - html/js/navigation.js
172
+ - html/js/navigation.js.gz
173
+ - html/js/search.js
174
+ - html/js/search_index.js
175
+ - html/js/search_index.js.gz
176
+ - html/js/searcher.js
177
+ - html/js/searcher.js.gz
178
+ - html/table_of_contents.html
179
+ - lib/linkedlist.rb
180
+ - lib/linkedlist/linkedlist.rb
181
+ - lib/linkedlist/version.rb
182
+ - linkedlist.gemspec
183
+ homepage: https://github.com/ULL-ESIT-LPP-1617/menu-dietetico-alu0100221879
184
+ licenses:
185
+ - MIT
186
+ metadata: {}
187
+ post_install_message:
188
+ rdoc_options: []
189
+ require_paths:
190
+ - lib
191
+ required_ruby_version: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ required_rubygems_version: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ requirements: []
202
+ rubyforge_project:
203
+ rubygems_version: 2.5.1
204
+ signing_key:
205
+ specification_version: 4
206
+ summary: Gema de la clase LinkedList.
207
+ test_files: []