gema-alu0101040882 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 (58) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +8 -0
  4. data/.rake_tasks~ +7 -0
  5. data/.rspec +3 -0
  6. data/.travis.yml +5 -0
  7. data/.yardoc/checksums +9 -0
  8. data/.yardoc/complete +0 -0
  9. data/.yardoc/object_types +0 -0
  10. data/.yardoc/objects/root.dat +0 -0
  11. data/.yardoc/proxy_types +0 -0
  12. data/Gemfile +6 -0
  13. data/Gemfile.lock +111 -0
  14. data/Guardfile +82 -0
  15. data/README.md +32 -0
  16. data/Rakefile +8 -0
  17. data/bin/bundle +105 -0
  18. data/bin/console +14 -0
  19. data/bin/htmldiff +29 -0
  20. data/bin/ldiff +29 -0
  21. data/bin/rake +29 -0
  22. data/bin/rspec +29 -0
  23. data/bin/setup +8 -0
  24. data/doc/Dll.html +1502 -0
  25. data/doc/Dll/Node.html +398 -0
  26. data/doc/Etiqueta_nut.html +1717 -0
  27. data/doc/Gema.html +134 -0
  28. data/doc/Individuo.html +289 -0
  29. data/doc/Menu_dietetico.html +483 -0
  30. data/doc/Paciente.html +233 -0
  31. data/doc/Paciente_obeso.html +1386 -0
  32. data/doc/Valores_nut.html +777 -0
  33. data/doc/_index.html +208 -0
  34. data/doc/class_list.html +51 -0
  35. data/doc/css/common.css +1 -0
  36. data/doc/css/full_list.css +58 -0
  37. data/doc/css/style.css +496 -0
  38. data/doc/file.README.html +115 -0
  39. data/doc/file_list.html +56 -0
  40. data/doc/frames.html +17 -0
  41. data/doc/index.html +115 -0
  42. data/doc/js/app.js +292 -0
  43. data/doc/js/full_list.js +216 -0
  44. data/doc/js/jquery.js +4 -0
  45. data/doc/method_list.html +651 -0
  46. data/doc/top-level-namespace.html +112 -0
  47. data/gema.gemspec +43 -0
  48. data/lib/gema.rb +14 -0
  49. data/lib/gema/etiqueta_nut.rb +46 -0
  50. data/lib/gema/individuo.rb +14 -0
  51. data/lib/gema/list.rb +212 -0
  52. data/lib/gema/menu.rb +134 -0
  53. data/lib/gema/menu_dietetico.rb +37 -0
  54. data/lib/gema/paciente.rb +12 -0
  55. data/lib/gema/paciente_obeso.rb +75 -0
  56. data/lib/gema/valores_nut.rb +40 -0
  57. data/lib/gema/version.rb +4 -0
  58. metadata +197 -0
@@ -0,0 +1,112 @@
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
+ &mdash; Documentation by YARD 0.9.16
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> &raquo;
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="Gema.html" title="Gema (module)">Gema</a></span>
86
+
87
+
88
+
89
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Dll.html" title="Dll (class)">Dll</a></span>, <span class='object_link'><a href="Etiqueta_nut.html" title="Etiqueta_nut (class)">Etiqueta_nut</a></span>, <span class='object_link'><a href="Individuo.html" title="Individuo (class)">Individuo</a></span>, <span class='object_link'><a href="Menu_dietetico.html" title="Menu_dietetico (class)">Menu_dietetico</a></span>, <span class='object_link'><a href="Paciente.html" title="Paciente (class)">Paciente</a></span>, <span class='object_link'><a href="Paciente_obeso.html" title="Paciente_obeso (class)">Paciente_obeso</a></span>, <span class='object_link'><a href="Valores_nut.html" title="Valores_nut (class)">Valores_nut</a></span>
90
+
91
+
92
+ </p>
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+ </div>
103
+
104
+ <div id="footer">
105
+ Generated on Wed Dec 19 11:49:27 2018 by
106
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
107
+ 0.9.16 (ruby-2.5.1).
108
+ </div>
109
+
110
+ </div>
111
+ </body>
112
+ </html>
data/gema.gemspec ADDED
@@ -0,0 +1,43 @@
1
+
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 = "gema-alu0101040882"
8
+ spec.version = Gema::VERSION
9
+ spec.authors = ["Daniel Suarez"]
10
+ spec.email = ["alu0101040882@ull.edu.es"]
11
+
12
+ spec.summary = %q{Etiqueta de información nutricional}
13
+ spec.description = %q{Esta es una gema que muestra la información nutricional}
14
+ spec.homepage = "https://github.com/ULL-ESIT-LPP-1819/tdd-alu0101040882"
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'] = "https://rubygems.org"
20
+ #else
21
+ # raise "RubyGems 2.0 or newer is required to protect against " \
22
+ # "public gem pushes."
23
+ # end
24
+
25
+ # Specify which files should be added to the gem when it is released.
26
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
27
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
28
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
29
+ end
30
+ spec.bindir = "exe"
31
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ["lib"]
33
+
34
+ spec.add_development_dependency "bundler", "~> 1.16"
35
+ spec.add_development_dependency "rake", "~> 10.0"
36
+ spec.add_development_dependency "rspec", "~> 3.0"
37
+ spec.add_development_dependency "guard"
38
+ spec.add_development_dependency "guard-rspec"
39
+ spec.add_development_dependency "guard-bundler"
40
+
41
+ spec.add_development_dependency "coveralls"
42
+
43
+ end
data/lib/gema.rb ADDED
@@ -0,0 +1,14 @@
1
+ require "gema/version"
2
+ require "gema/etiqueta_nut"
3
+ require "gema/list.rb"
4
+ require "gema/valores_nut.rb"
5
+ require "gema/individuo.rb"
6
+ require "gema/paciente.rb"
7
+ require "gema/paciente_obeso.rb"
8
+ require "gema/menu_dietetico.rb"
9
+ require 'benchmark'
10
+ require "gema/menu.rb"
11
+
12
+ module Gema
13
+ # Your code goes here...
14
+ end
@@ -0,0 +1,46 @@
1
+ #Etiqueta nutricional de un individuo
2
+ class Etiqueta_nut
3
+
4
+ include Comparable
5
+
6
+ attr_reader :kj, :kcal, :nombre, :grasas, :grasas_s, :hidratos, :azucares, :proteinas, :sal, :grasas_mon, :grasas_pol, :polialcoholes, :almidon, :fibra, :vitaminas, :minerales, :n_porciones, :tamaño
7
+
8
+
9
+ def initialize(nombre,grasas,grasas_s,hidratos,azucares,proteinas,sal,grasas_mon,grasas_pol,polialcoholes,almidon,fibra,vitaminas,minerales)
10
+ @nombre,@grasas,@grasas_s,@hidratos,@azucares,@proteinas,@sal,@grasas_mon,@grasas_pol,@polialcoholes,@almidon,@fibra,@vitaminas,@minerales = nombre,grasas,grasas_s,hidratos,azucares,proteinas,sal,grasas_mon,grasas_pol,polialcoholes,almidon,fibra,vitaminas,minerales
11
+ end
12
+
13
+ #Añade la porciones y el tamaño a la etiqueta
14
+ def porciones(n_porciones,tamaño)
15
+ @n_porciones,@tamaño = n_porciones,tamaño
16
+ end
17
+
18
+ #Calcula el valor energetico de una etiqueta
19
+ def valor_energetico()
20
+ @kj = @grasas*37 + @grasas_s*37 + @hidratos*17 + @azucares*81 + @proteinas*50 + @sal*25 + @grasas_mon*37 + @grasas_pol*37 + @polialcoholes*10 + @almidon*17 + @fibra * 8 + @minerales*5
21
+ @kcal = @grasas*9 + @grasas_s*9 + @hidratos*4 + @azucares*19 + @proteinas*4 + @sal*6 + @grasas_mon*9 + @grasas_pol*9 + @polialcoholes*2.4 + @almidon*4 + @fibra*2 + @minerales*2
22
+
23
+ end
24
+
25
+ def to_s()
26
+
27
+ "#{@nombre}".ljust(24) + "#{@grasas}\t#{@hidratos}\t\t#{@azucares}\t\t#{@proteinas}\t\t#{@sal}\t#{@polialcoholes}\t\t#{@almidon}\t#{@fibra}\t#{@vitaminas}\t\t#{@minerales}\t\t#{@kcal}"
28
+
29
+ end
30
+
31
+ #Convierte la etiqueta a una cadena
32
+ def to_s_()
33
+ "Nombre:#{@nombre}\nGrasas:#{@grasas}\nGrasas Saturadas:#{@grasas_s}\nHidratos:#{@hidratos}\nAzúcares:#{@azucares}\nNombre:#{@proteinas}\nSal:#{@sal}\nGrasas Monoinsaturasas:#{@grasas_mon}\nGrasas Polisaturadas:#{@grasas_pol}\nPolialcoholes:#{@polialcoholes}\nAlmidon:#{@almidon}\nFibra:#{@fibra}\nVitaminas:#{@vitaminas}\nMinerales:#{@minerales}\nEnergía (Kj):#{@kj}\nEnergía (Kcal):#{@kcal}\n"
34
+ end
35
+
36
+ #Convierte la etiqueta a una cadena comoun porcentaje
37
+ def to_s_porcentaje()
38
+ "Nombre:#{@nombre}\nGrasas:#{@grasas/100.0}\nGrasas Saturadas:#{@grasas_s/100.0}\nHidratos:#{@hidratos/100.0}\nAzúcares:#{@azucares/100.0}\nNombre:#{@proteinas/100.0}\nSal:#{@sal/100.0}\nGrasas Monoinsaturasas:#{@grasas_mon/100.0}\nGrasas Polisaturadas:#{@grasas_pol/100.0}\nPolialcoholes:#{@polialcoholes/100.0}\nAlmidon:#{@almidon/100.0}\nFibra:#{@fibra/100.0}\nVitaminas:#{@vitaminas/100.0}\nMinerales:#{@minerales/100.0}\nEnergía (Kj):#{@kj/100.0}\nEnergía (Kcal):#{@kcal/100.0}\nVALORES DE REFERENCIA:\nValor energético:8.400kJ/ 2000kcal/g\nGrasa total: 70g\nAcidos grasos saturados: 20g\nHidratos de carbono: 260g\nAzúcares: 90g\nProteínas: 50g\nSal: 6g\n"
39
+ end
40
+
41
+ #Metodo de comparaciones utilizado para el modulo comparable
42
+ def <=> (other)
43
+ self.nombre <=> other.nombre
44
+ end
45
+ end
46
+
@@ -0,0 +1,14 @@
1
+ #Individuo
2
+ class Individuo
3
+
4
+ def initialize(nombre,edad,genero)
5
+ @nombre,@edad,@genero = nombre,edad,genero
6
+ end
7
+
8
+ #Convierte el individuo en una cadena
9
+ def to_s
10
+ "#{@nombre},#{@edad},#{@genero}"
11
+ end
12
+
13
+ end
14
+
data/lib/gema/list.rb ADDED
@@ -0,0 +1,212 @@
1
+ #Lista doblemente enlazada
2
+ class Dll
3
+ include Enumerable
4
+ attr_accessor :head, :tail, :size
5
+
6
+ Node = Struct.new( :value, :next, :prev)
7
+
8
+ def initialize
9
+ @head = nil
10
+ @tail = nil
11
+ @size = 0
12
+ end
13
+
14
+ #Comprueba si la lista esta vacía
15
+ def empty
16
+ @size == 0
17
+ end
18
+
19
+ #Inserta por la cabeza
20
+ def insert_head(value)
21
+
22
+ if empty()
23
+ @head = Node.new(value,nil,nil)
24
+ @tail = @head
25
+ else
26
+ @head.prev = Node.new(value,@head,nil)
27
+ @head = @head.prev;
28
+ end
29
+
30
+ @size = @size + 1
31
+
32
+ end
33
+
34
+ #Inserta por la cola
35
+ def insert_tail(value)
36
+
37
+ if empty()
38
+ @head = Node.new(value,nil,nil)
39
+ @tail = @head
40
+ else
41
+ @tail.next = Node.new(value,nil,@tail)
42
+ @tail = @tail.next;
43
+ end
44
+
45
+ @size = @size + 1
46
+
47
+ end
48
+
49
+ #Extrae por la cabeza
50
+ def extract_head
51
+
52
+ aux = @head
53
+ @head = @head.next
54
+
55
+ if @head != nil
56
+ @tail.next = nil
57
+ else
58
+ @tail = nil
59
+ end
60
+
61
+ aux.next = nil
62
+ aux.prev = nil
63
+
64
+ @size = @size - 1
65
+ return aux
66
+ end
67
+
68
+
69
+ #Extrae por la cola
70
+ def extract_tail
71
+
72
+ aux = @tail
73
+ @tail = @tail.prev
74
+
75
+ if @tail != nil
76
+ @tail.next = nil
77
+ else
78
+ @head = nil
79
+ end
80
+
81
+ aux.next = nil
82
+ aux.prev = nil
83
+
84
+ @size = @size - 1
85
+ return aux
86
+ end
87
+
88
+ #Imprime la lista
89
+ def print
90
+ aux = @head
91
+
92
+ while aux != nil do
93
+ puts aux.value.to_s
94
+ aux = aux.next
95
+ end
96
+ end
97
+
98
+ #Imprime la lista a la inversa
99
+ def reverse_print
100
+ aux = @tail
101
+
102
+ while aux != nil do
103
+ puts aux.value.to_s
104
+ aux = aux.prev
105
+ end
106
+ end
107
+
108
+ #Obtiene el elemento en la posicion n
109
+ def get(n)
110
+ i = 0
111
+ aux = @head
112
+ while i < n do
113
+ aux = aux.next
114
+ i += 1
115
+ end
116
+
117
+ return aux
118
+
119
+ end
120
+
121
+
122
+ #Elimina el elemento al que corresponda value
123
+ def remove(value)
124
+
125
+ node = @head
126
+ while node.value.sal != value do
127
+ node = node.next
128
+ end
129
+
130
+ if node != nil
131
+
132
+ if node != @head
133
+ node.prev.next = node.next
134
+ else
135
+ @head = node.next
136
+ end
137
+
138
+ if node != @tail
139
+ node.next.prev = node.prev
140
+ else
141
+ @tail = node.prev
142
+ end
143
+
144
+ @size-=1
145
+ end
146
+
147
+ end
148
+
149
+
150
+ #Clasifica usando la sal
151
+ def clasify_salt
152
+
153
+ i = 0
154
+ sz = @size
155
+
156
+ sorted_dll = Dll.new()
157
+
158
+ while i < sz do
159
+ aux = @head
160
+ min = aux.value
161
+
162
+ while aux != nil do
163
+ if aux.value.sal < min.sal
164
+ min = aux.value
165
+ end
166
+
167
+ aux = aux.next
168
+ end
169
+
170
+ sorted_dll.insert_tail(min)
171
+ remove(min.sal)
172
+ i+=1
173
+ end
174
+
175
+ return sorted_dll
176
+ end
177
+
178
+
179
+ #Clasifica usando la sal con el metodo de la burbuja
180
+ def salt_bubble
181
+ i = 1
182
+
183
+ while i < @size
184
+ j = 0
185
+ aux = @head
186
+ while j < (@size - i)
187
+ if aux.value.sal > aux.next.value.sal
188
+ aux.value, aux.next.value = aux.next.value, aux.value
189
+ end
190
+ aux = aux.next
191
+ j+=1
192
+ end
193
+ i+=1
194
+ end
195
+
196
+ end
197
+
198
+ #Metodo each utilizado para poder hacer uso del modulo Enumerable
199
+ def each
200
+ aux = @head
201
+ while aux != nil do
202
+ yield aux.value
203
+ aux = aux.next
204
+
205
+ end
206
+
207
+ end
208
+
209
+
210
+ end
211
+
212
+