Dieta 0.2.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 +8 -0
  3. data/.travis.yml +5 -0
  4. data/Dieta.gemspec +36 -0
  5. data/Gemfile +4 -0
  6. data/Guardfile +82 -0
  7. data/README.md +49 -0
  8. data/Rakefile +6 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/doc/Dieta.html +111 -0
  12. data/doc/Dieta/Dieta.html +648 -0
  13. data/doc/Lista.html +313 -0
  14. data/doc/ListaDoblementeEnlazada.html +472 -0
  15. data/doc/MenuPorClaseDeAlimento.html +267 -0
  16. data/doc/MenuPorGrupoDeEdad.html +267 -0
  17. data/doc/Object.html +121 -0
  18. data/doc/created.rid +5 -0
  19. data/doc/css/fonts.css +167 -0
  20. data/doc/css/rdoc.css +590 -0
  21. data/doc/fonts/Lato-Light.ttf +0 -0
  22. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  23. data/doc/fonts/Lato-Regular.ttf +0 -0
  24. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  25. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  26. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  27. data/doc/images/add.png +0 -0
  28. data/doc/images/arrow_up.png +0 -0
  29. data/doc/images/brick.png +0 -0
  30. data/doc/images/brick_link.png +0 -0
  31. data/doc/images/bug.png +0 -0
  32. data/doc/images/bullet_black.png +0 -0
  33. data/doc/images/bullet_toggle_minus.png +0 -0
  34. data/doc/images/bullet_toggle_plus.png +0 -0
  35. data/doc/images/date.png +0 -0
  36. data/doc/images/delete.png +0 -0
  37. data/doc/images/find.png +0 -0
  38. data/doc/images/loadingAnimation.gif +0 -0
  39. data/doc/images/macFFBgHack.png +0 -0
  40. data/doc/images/package.png +0 -0
  41. data/doc/images/page_green.png +0 -0
  42. data/doc/images/page_white_text.png +0 -0
  43. data/doc/images/page_white_width.png +0 -0
  44. data/doc/images/plugin.png +0 -0
  45. data/doc/images/ruby.png +0 -0
  46. data/doc/images/tag_blue.png +0 -0
  47. data/doc/images/tag_green.png +0 -0
  48. data/doc/images/transparent.png +0 -0
  49. data/doc/images/wrench.png +0 -0
  50. data/doc/images/wrench_orange.png +0 -0
  51. data/doc/images/zoom.png +0 -0
  52. data/doc/index.html +92 -0
  53. data/doc/js/darkfish.js +161 -0
  54. data/doc/js/jquery.js +4 -0
  55. data/doc/js/navigation.js +142 -0
  56. data/doc/js/navigation.js.gz +0 -0
  57. data/doc/js/search.js +109 -0
  58. data/doc/js/search_index.js +1 -0
  59. data/doc/js/search_index.js.gz +0 -0
  60. data/doc/js/searcher.js +228 -0
  61. data/doc/js/searcher.js.gz +0 -0
  62. data/doc/table_of_contents.html +212 -0
  63. data/lib/Dieta.rb +7 -0
  64. data/lib/Dieta/dieta_codigo.rb +149 -0
  65. data/lib/Dieta/lista_codigo.rb +151 -0
  66. data/lib/Dieta/version.rb +3 -0
  67. metadata +193 -0
@@ -0,0 +1,7 @@
1
+ require "Dieta/version"
2
+ require "Dieta/dieta_codigo"
3
+ require "Dieta/lista_codigo"
4
+
5
+ module Dieta
6
+ # Your code goes here...
7
+ end
@@ -0,0 +1,149 @@
1
+ # Author: Pablo Pastor Martín
2
+
3
+ #Modulo que contiene la dieta
4
+ module Dieta
5
+
6
+ #Clase para representar menús dietéticos
7
+ class Dieta
8
+ include Comparable
9
+ attr_reader :descripcion, :ingredientes, :informacion
10
+
11
+ #Metodo encargado de inicializar la clase
12
+ def initialize(descripcion=[], ingredientes=[], informacion=[], &block)
13
+ @descripcion = Array.new(2)
14
+ @ingredientes = Array.new
15
+ @informacion = Array.new
16
+ if block_given?
17
+ instance_eval(&block)
18
+ else
19
+ @descripcion=descripcion
20
+ @ingredientes=ingredientes
21
+ @informacion=informacion
22
+ end
23
+ end
24
+
25
+ def plato(options)
26
+ ingredientes << [options[:componente],options[:cantidad], options[:peso]]
27
+ end
28
+
29
+ def porcentajes(options)
30
+ informacion << options[:vct] << options[:proteinas] << options[:grasas] << options[:hidratos]
31
+ end
32
+
33
+ def titulo(title)
34
+ descripcion[0] = title
35
+ end
36
+
37
+ def porcentaje (valor)
38
+ descripcion[1] = valor
39
+ end
40
+
41
+ #Metodo para imprimir el menu formateado
42
+ def to_s
43
+ output = @descripcion[0] + " | " + "#{@descripcion[1]}" + "%\n"
44
+ for i in 0..@ingredientes.size-1
45
+ output+="- " + @ingredientes[i][0] + ": " + " #{@ingredientes[i][1]}, " + " #{@ingredientes[i][2]} gramos \n"
46
+ end
47
+ output+= "V.C.T | % " + "#{@informacion[0]} " + "kcal | " + "#{@informacion[1]}% - #{@informacion[2]}% - #{@informacion[3]}%"
48
+ output
49
+ end
50
+
51
+ #Metodo que devuelve el tipo de menu que es
52
+ def get_desc
53
+ @descripcion[0]
54
+ end
55
+
56
+ #Metodo para obtener el % de la ingesta calorica diaria
57
+ def get_porcentaje_diario
58
+ @descripcion[1]
59
+ end
60
+
61
+ #Devuelve el ingrediente i-esimo del menu
62
+ def get_plato(i)
63
+ @ingredientes[i]
64
+ end
65
+
66
+ #Devuelve el vector de ingredientes
67
+ def get_ingredientes
68
+ @ingredientes
69
+ end
70
+
71
+ #Devuelve las calorías
72
+ def get_vct
73
+ @informacion[0]
74
+ end
75
+
76
+ #Devuelve el % de proteinas
77
+ def get_proteinas
78
+ @informacion[1]
79
+ end
80
+
81
+ #Devuelve el % de grasas
82
+ def get_grasas
83
+ @informacion[2]
84
+ end
85
+
86
+ #Devuelve el % de hidratos
87
+ def get_hidratos
88
+ @informacion[3]
89
+ end
90
+
91
+ #Devuelve el ingrediente i-esimo formateado
92
+ def get_desc_plato(i)
93
+ @ingredientes[i][0] + ": " + " #{@ingredientes[i][1]}, " + " #{@ingredientes[i][2]} gramos"
94
+ end
95
+
96
+ #Compara dos menus
97
+ def ==(other)
98
+ self.to_s == other.to_s
99
+ end
100
+
101
+ #Metodo usado para comparar
102
+ def <=>(anOther)
103
+ @informacion[0]<=>anOther.get_vct
104
+ end
105
+
106
+ end
107
+ end
108
+
109
+ #Clase que añade al menu una categoria de alimento
110
+ class MenuPorClaseDeAlimento < Dieta::Dieta
111
+ attr_reader :grupo
112
+
113
+ def initialize(descripcion, ingredientes, informacion, grupo)
114
+ super(descripcion, ingredientes, informacion)
115
+ @grupo = grupo
116
+ end
117
+
118
+ #Añade al to_s de la clase padre el tipo de alimento
119
+ def to_s
120
+ output = super
121
+ output += "\nGrupo: #{@grupo}"
122
+ end
123
+
124
+ #Devuelve el grupo de alimento
125
+ def get_grupo
126
+ @grupo
127
+ end
128
+ end
129
+
130
+ #Clase que agrupa los menus por grupo de edad
131
+ class MenuPorGrupoDeEdad < Dieta::Dieta
132
+ attr_reader :grupo
133
+
134
+ def initialize(descripcion, ingredientes, informacion, grupo_de_edad)
135
+ super(descripcion, ingredientes, informacion)
136
+ @grupo = grupo_de_edad
137
+ end
138
+
139
+ #Añade al to_s original la descripcion del grupo de edad
140
+ def to_s
141
+ output = super
142
+ output += "\nGrupo de edad: #{@grupo[0]}-#{@grupo[1]} años"
143
+ end
144
+
145
+ #Devuelve el array representando el rango de edad
146
+ def get_grupo_edad
147
+ @grupo
148
+ end
149
+ end
@@ -0,0 +1,151 @@
1
+ # Author: Pablo Pastor Martín
2
+
3
+ #Estructura representando el nodo de una lista simplemente enlazada
4
+ Node = Struct.new(:value, :next)
5
+
6
+ #Clase que representa una lista simplemente enlazada
7
+ class Lista
8
+ attr_reader :head
9
+
10
+ def initialize
11
+ @head = Node.new
12
+ end
13
+
14
+ #Inserta un valor al comienzo de la lista
15
+ def push(x)
16
+ if @head[:value] == nil
17
+ @head[:value]=x
18
+ else
19
+ aux= @head.clone
20
+ @head = Node.new(x,aux)
21
+ end
22
+ @head[:value]
23
+ end
24
+
25
+ #Devuelve el numero de elementos de la lista
26
+ def size
27
+ count = 0
28
+ if @head[:value] != nil then
29
+ count=1
30
+ end
31
+ aux= @head
32
+ until aux[:next] == nil do
33
+ count+=1
34
+ aux=aux[:next]
35
+ end
36
+ count
37
+ end
38
+
39
+ #Extrae por el comienzo de la lista
40
+ def pop
41
+ if @head!= nil then
42
+ aux = @head[:value]
43
+ @head = @head[:next]
44
+ else
45
+ aux=nil
46
+ end
47
+ if @head ==nil then
48
+ @head = Node.new
49
+ end
50
+ aux
51
+ end
52
+
53
+ end
54
+
55
+ #Representa un nodo de una lista doblemente enlazada
56
+ Node2 = Struct.new(:value, :next, :prev)
57
+
58
+ #Representa una lista doblemente enlazada
59
+ class ListaDoblementeEnlazada
60
+ include Enumerable
61
+
62
+ attr_reader :head, :tail
63
+
64
+ def initialize
65
+ @head = Node2.new
66
+ @tail = @head
67
+ end
68
+
69
+ #Inserta al comienzo
70
+ def push(x)
71
+ if @head[:value] == nil
72
+ @head[:value]=x
73
+ @tail=@head
74
+ else
75
+ aux= @head
76
+ @head = Node2.new(x,aux)
77
+ @head[:next][:prev]=@head
78
+ end
79
+ @head[:value]
80
+ end
81
+
82
+ #Inserta al final de la lista
83
+ def insert_back(x)
84
+ if @head[:value] == nil
85
+ @head[:value]=x
86
+ else
87
+ old_tail = @tail
88
+ @tail = Node2.new(x, nil, old_tail)
89
+ old_tail[:next] = @tail
90
+ end
91
+
92
+ @tail[:value]
93
+ end
94
+
95
+ #Extrae el ultimo elemento de la lista
96
+ def get_back
97
+ aux = nil
98
+ if @tail[:value]==nil
99
+ aux=nil
100
+ else
101
+ aux = @tail[:value]
102
+ @tail = @tail[:prev]
103
+ @tail[:next]=nil
104
+ end
105
+ if @tail==nil
106
+ @tail = Node2.new
107
+ @head = @tail
108
+ end
109
+ aux
110
+ end
111
+
112
+ #Devuelve el tamaño de la lista
113
+ def size
114
+ count = 0
115
+ if @head[:value] != nil then
116
+ count=1
117
+ end
118
+ aux= @head
119
+ until aux[:next] == nil do
120
+ count+=1
121
+ aux=aux[:next]
122
+ end
123
+ count
124
+ end
125
+
126
+ #Extrae el primer elemento
127
+ def pop
128
+ if @head!= nil then
129
+ aux = @head[:value]
130
+ @head = @head[:next]
131
+ else
132
+ aux=nil
133
+ end
134
+ if @head ==nil then
135
+ @head = Node2.new
136
+ end
137
+ aux
138
+ end
139
+
140
+ #Hace un yield con cada elemento de la lista
141
+ def each
142
+ aux= @head
143
+ until aux[:next] == nil do
144
+ yield aux[:value]
145
+ aux=aux[:next]
146
+ end
147
+ if aux[:value] != nil then
148
+ yield aux[:value]
149
+ end
150
+ end
151
+ end
@@ -0,0 +1,3 @@
1
+ module Dieta
2
+ VERSION = "0.2.0"
3
+ end
metadata ADDED
@@ -0,0 +1,193 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Dieta
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - alu0100890839
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-12-13 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.12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
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: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.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
+ description: Practica 8, en la que a los menús de la 6 y 7 les añadimos la clase lista
98
+ doblemente enlazada y nos aproximamos a la jerarquia de clases (Herencia)
99
+ email:
100
+ - alu0100890839@ull.edu.es
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - ".gitignore"
106
+ - ".travis.yml"
107
+ - Dieta.gemspec
108
+ - Gemfile
109
+ - Guardfile
110
+ - README.md
111
+ - Rakefile
112
+ - bin/console
113
+ - bin/setup
114
+ - doc/Dieta.html
115
+ - doc/Dieta/Dieta.html
116
+ - doc/Lista.html
117
+ - doc/ListaDoblementeEnlazada.html
118
+ - doc/MenuPorClaseDeAlimento.html
119
+ - doc/MenuPorGrupoDeEdad.html
120
+ - doc/Object.html
121
+ - doc/created.rid
122
+ - doc/css/fonts.css
123
+ - doc/css/rdoc.css
124
+ - doc/fonts/Lato-Light.ttf
125
+ - doc/fonts/Lato-LightItalic.ttf
126
+ - doc/fonts/Lato-Regular.ttf
127
+ - doc/fonts/Lato-RegularItalic.ttf
128
+ - doc/fonts/SourceCodePro-Bold.ttf
129
+ - doc/fonts/SourceCodePro-Regular.ttf
130
+ - doc/images/add.png
131
+ - doc/images/arrow_up.png
132
+ - doc/images/brick.png
133
+ - doc/images/brick_link.png
134
+ - doc/images/bug.png
135
+ - doc/images/bullet_black.png
136
+ - doc/images/bullet_toggle_minus.png
137
+ - doc/images/bullet_toggle_plus.png
138
+ - doc/images/date.png
139
+ - doc/images/delete.png
140
+ - doc/images/find.png
141
+ - doc/images/loadingAnimation.gif
142
+ - doc/images/macFFBgHack.png
143
+ - doc/images/package.png
144
+ - doc/images/page_green.png
145
+ - doc/images/page_white_text.png
146
+ - doc/images/page_white_width.png
147
+ - doc/images/plugin.png
148
+ - doc/images/ruby.png
149
+ - doc/images/tag_blue.png
150
+ - doc/images/tag_green.png
151
+ - doc/images/transparent.png
152
+ - doc/images/wrench.png
153
+ - doc/images/wrench_orange.png
154
+ - doc/images/zoom.png
155
+ - doc/index.html
156
+ - doc/js/darkfish.js
157
+ - doc/js/jquery.js
158
+ - doc/js/navigation.js
159
+ - doc/js/navigation.js.gz
160
+ - doc/js/search.js
161
+ - doc/js/search_index.js
162
+ - doc/js/search_index.js.gz
163
+ - doc/js/searcher.js
164
+ - doc/js/searcher.js.gz
165
+ - doc/table_of_contents.html
166
+ - lib/Dieta.rb
167
+ - lib/Dieta/dieta_codigo.rb
168
+ - lib/Dieta/lista_codigo.rb
169
+ - lib/Dieta/version.rb
170
+ homepage: https://github.com/ULL-ESIT-LPP-1617/menu-dietetico-alu0100890839
171
+ licenses: []
172
+ metadata: {}
173
+ post_install_message:
174
+ rdoc_options: []
175
+ require_paths:
176
+ - lib
177
+ required_ruby_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ required_rubygems_version: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ requirements: []
188
+ rubyforge_project:
189
+ rubygems_version: 2.5.1
190
+ signing_key:
191
+ specification_version: 4
192
+ summary: Practica 7 de LPP
193
+ test_files: []