prct11_abian 0.3.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.
@@ -0,0 +1,114 @@
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.5
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"></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
+ <iframe id="search_frame" src="class_list.html"></iframe>
63
+
64
+ <div id="content"><h1>Top Level Namespace
65
+
66
+
67
+
68
+ </h1>
69
+ <div class="box_info">
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+ </div>
82
+
83
+ <h2>Defined Under Namespace</h2>
84
+ <p class="children">
85
+
86
+
87
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Prct06.html" title="Prct06 (module)">Prct06</a></span>
88
+
89
+
90
+
91
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Diet.html" title="Diet (class)">Diet</a></span>, <span class='object_link'><a href="DslDieta.html" title="DslDieta (class)">DslDieta</a></span>, <span class='object_link'><a href="LinkedList.html" title="LinkedList (class)">LinkedList</a></span>, <span class='object_link'><a href="MenuAge.html" title="MenuAge (class)">MenuAge</a></span>, <span class='object_link'><a href="MenuFood.html" title="MenuFood (class)">MenuFood</a></span>
92
+
93
+
94
+ </p>
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+ </div>
105
+
106
+ <div id="footer">
107
+ Generated on Tue Dec 13 16:00:37 2016 by
108
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
109
+ 0.9.5 (ruby-2.3.0).
110
+ </div>
111
+
112
+ </div>
113
+ </body>
114
+ </html>
@@ -0,0 +1,64 @@
1
+ #<!--
2
+ # @markup ruby
3
+ # @title Almacena tus dietas
4
+ # @author Abián Torres Torres (alu0100887686@ull.edu.es)
5
+ #-->
6
+ require "prct06/version"
7
+ class DslDieta
8
+ include Comparable
9
+ # @overload Método de acceso y escritura para los atributos de instancia.
10
+ attr_accessor :titulo,:max,:min,:vct,:proteinas,:grasas,:hidratos,:platos
11
+ # @note Método por el cual se inicializa la dieta mediante el título y un bloque
12
+ # @param [String] Título, [Block] Block
13
+ def initialize(titulo,&block)
14
+ self.titulo=titulo
15
+ self.platos =[]
16
+ if block_given?
17
+ if block.arity == 1
18
+ yield self
19
+ else
20
+ instance_eval(&block)
21
+ end
22
+ end
23
+ end
24
+ # @note Función que permite mostrar una salida formateada de la lista
25
+ # @return [String] String con el contenido de la lista
26
+ def to_s
27
+ output = "#{titulo} (#{min}-#{max}%):\n"
28
+ i=0
29
+ begin
30
+ output+="#{platos[i]}\n"
31
+ i+=1
32
+ end while (i<platos.length)
33
+ output += "V.C.T. | % #{vct} kcal | #{proteinas}% - #{grasas}% - #{hidratos}%\n"
34
+ "#{output}"
35
+ end
36
+ # @note Función que permite comparar dos dietas en función de sus valor calorífico.
37
+ # @param [Diet] Menú a comparar
38
+ # @return [Int] 1 if self>other, 0 if self == other, -1 if self<other
39
+ def <=>(other)
40
+ self.vct<=>other.vct
41
+ end
42
+ # @note Función que permite asignar valor a los atributos max y min.
43
+ # @param [Hash] Parámetro min y max
44
+ def ingesta(args = {})
45
+ self.max="#{args[:max]}" if args[:max]
46
+ self.min="#{args[:min]}" if args[:min]
47
+ end
48
+ # @note Función que permite añadir un nuevo plato a la dieta.
49
+ # @param [Hash] Parámetros descripcion, porcion y gramos
50
+ def plato(args = {})
51
+ input = " -#{args[:descripcion]}" if args[:descripcion]
52
+ input += ", #{args[:porcion]}" if args[:porcion]
53
+ input += ", #{args[:gramos]} gramos" if args[:gramos]
54
+ self.platos << "#{input}"
55
+ end
56
+ # @note Función que permite asignar valor a los parámetros: vct, proteinas, grasas y hidratos.
57
+ # @param [Hash] Parámetros descripcion, porcion y gramos
58
+ def porcentajes(args = {})
59
+ self.vct="#{args[:vct]}" if args[:vct]
60
+ self.proteinas="#{args[:proteinas]}" if args[:proteinas]
61
+ self.grasas="#{args[:grasas]}" if args[:grasas]
62
+ self.hidratos="#{args[:hidratos]}" if args[:hidratos]
63
+ end
64
+ end
@@ -0,0 +1,209 @@
1
+ #<!--
2
+ # @markup ruby
3
+ # @title Almacena tu información en una lista doblemente enlazada
4
+ # @author Abián Torres Torres (alu0100887686@ull.edu.es)
5
+ #-->
6
+
7
+ #nombre : Abián Torres Torres
8
+ #Email : alu0100887686@ull.edu.es
9
+
10
+ #Implementación de una clase para el manejo
11
+ #de listas doblemente enlazada
12
+
13
+ require "prct06/version"
14
+
15
+ class LinkedList
16
+
17
+ include Enumerable
18
+
19
+ # @overload Método de acceso y escritura para la cabeza de la lista
20
+
21
+ attr_accessor :head
22
+
23
+ # @overload Estructura Global que representará un dato de tipo nodo
24
+
25
+ Struct.new("Node", :value, :prev, :next)
26
+
27
+ # @note La clase se inicializa con la cabeza a nil
28
+
29
+ def initialize()
30
+
31
+ @head = nil
32
+
33
+ end
34
+
35
+ # @note Método por el cual se introduce un elemento por el principio
36
+ # @param [Any Type] Valor a introducir
37
+
38
+ def putFirst(value)
39
+
40
+ #Inicializamos un nodo auxiliar con el valor a introducir
41
+ #Y apuntando como siguiente a head:
42
+
43
+ node = Struct::Node.new(value,nil, @head)
44
+
45
+ #Hacemos que el head tome el comportamiento del nodo creado
46
+
47
+ @head = node
48
+
49
+ end
50
+
51
+ # @note Método que permite eliminar un elemento por el principio
52
+ # @return [Any Type] Elemento eliminado
53
+
54
+ def deleteFirst()
55
+
56
+ #Si la lista no está vacía movemos una posición head
57
+ #y el prev apuntará a nil:
58
+
59
+ tmp = @head
60
+
61
+ if @head != nil
62
+
63
+ @head = @head.next
64
+
65
+ @head.prev = nil
66
+
67
+ end
68
+
69
+ tmp
70
+
71
+ end
72
+
73
+ # @note Función que permite añadir un nuevo nodo a la lista por el final
74
+ # @param [Any Type] Valor a introducir
75
+
76
+ def putLast(value)
77
+
78
+ #Si aún no se ha introducido ningún nodo en la lista,
79
+ #tanto el head como el tail apuntarán al mismo nodo
80
+ #de lo contratio, añadiremos un nodo a continuación de tail:
81
+
82
+ if @head != nil
83
+
84
+ #Desplazamos el head hasta la última posición:
85
+
86
+ while @head.next != nil
87
+
88
+ tmp = @head
89
+
90
+ @head = @head.next
91
+
92
+ @head.prev = tmp
93
+
94
+ end
95
+
96
+ #Inicializamos un nodo auxiliar con el valor a introducir:
97
+
98
+ node = Struct::Node.new(value, @head, nil)
99
+
100
+ #Colocamos el node a continuación del último
101
+
102
+ @head.next = node
103
+
104
+ #Desplazamos nuevamente el head a la posición inicial:
105
+
106
+ while @head.prev != nil
107
+
108
+ @head = @head.prev
109
+
110
+ end
111
+
112
+ else
113
+
114
+ #Creamos el nodo inicial:
115
+
116
+ node = Struct::Node.new(value, nil, nil)
117
+
118
+ @head = node
119
+
120
+ end
121
+
122
+ end
123
+
124
+ # @note Método que permite eliminar un elemento por el final
125
+ # @return [Any Type] Elemento eliminado
126
+
127
+ def deleteLast()
128
+
129
+ #Si la lista no está vacía:
130
+
131
+ if @head != nil
132
+
133
+ #Desplazamos el head hasta la penúltima posición:
134
+
135
+ while @head.next.next != nil
136
+
137
+ tmp = @head
138
+
139
+ @head = @head.next
140
+
141
+ @head.prev = tmp
142
+
143
+ end
144
+
145
+ #Ponemos el siguiente en la penúltima posición a nil:
146
+
147
+ foo = @head.next
148
+
149
+ @head.next = nil
150
+
151
+ #Desplazamos nuevamente el head a la posición inicial:
152
+
153
+ while @head.prev != nil
154
+
155
+ @head = @head.prev
156
+
157
+ end
158
+
159
+ end
160
+
161
+ foo
162
+
163
+ end
164
+
165
+ # @note Función que permite mostrar una salida formateada de la lista
166
+ # @return [String] String con el contenido de la lista
167
+
168
+ def to_s()
169
+
170
+ #Para no modificar la estructura de la lista,
171
+ #utilizaremos una variable temporal, la cual será
172
+ #desplazada al siguiente nodo en cada iteración:
173
+
174
+ tmp = @head
175
+
176
+ #String que almacenará el contenido a mostrar:
177
+
178
+ aux = ""
179
+
180
+ while tmp != nil
181
+
182
+ aux += "#{tmp.value}\n"
183
+
184
+ tmp = tmp.next
185
+
186
+ end
187
+
188
+ aux
189
+
190
+ end
191
+
192
+ # @note Función retorna los bloques que se indique por parámetro en la invocación del método
193
+ # @return [Any Type] Bloques seleccionados
194
+
195
+ def each
196
+
197
+ tmp = @head
198
+
199
+ while tmp != nil do
200
+
201
+ yield tmp.value
202
+
203
+ tmp = tmp.next
204
+
205
+ end
206
+
207
+ end
208
+
209
+ end
@@ -0,0 +1,42 @@
1
+ #<!--
2
+ # @markup ruby
3
+ # @title Almacena tus dietas agrupadas por edades
4
+ # @author Abián Torres Torres (alu0100887686@ull.edu.es)
5
+ #-->
6
+
7
+ #Implementación de una clase hija de Diet para
8
+ #agrupar los menú por edades:
9
+
10
+ require "prct06/version"
11
+
12
+ class MenuAge < Diet
13
+
14
+ # @overload Método de acceso y escritura para el atributo que almacenará el rango de edad
15
+
16
+ attr_accessor :age
17
+
18
+ # @note Método para inicializar una dieta agrupada por edades
19
+ # @param [String] Rango de edad, [String] Título, [String] Ingesta diaria, [String] Valor calorífico,
20
+ # @param [String] Porcentaje de proteínas, [String] Porcentaje de proteínas, [String] Porcentaje de grasas
21
+ # @param [String] Porcentaje de hidratos de carbono
22
+
23
+ def initialize(age, ttl, dip, vct, pprtn, pfts, pchdt)
24
+
25
+ @age = age
26
+
27
+ super(ttl, dip, vct, pprtn, pfts, pchdt)
28
+
29
+ end
30
+
31
+ # @note Función que permite mostrar una salida formateada de la lista
32
+ # @return [String] String con el contenido de la lista
33
+
34
+ def to_s()
35
+
36
+ tmp = super.to_s + "Edad: #{@age}\n"
37
+
38
+ tmp
39
+
40
+ end
41
+
42
+ end
@@ -0,0 +1,44 @@
1
+ #<!--
2
+ # @markup ruby
3
+ # @title Almacena tus dietas agrupadas por alimentos
4
+ # @author Abián Torres Torres (alu0100887686@ull.edu.es)
5
+ #-->
6
+
7
+ #nombre : Abián Torres Torres
8
+ #Email : alu0100887686@ull.edu.es
9
+
10
+ #Implementación de una clase hija de Diet para
11
+ #agrupar los menú por alimentos:
12
+
13
+ require "prct06/version"
14
+
15
+ class MenuFood < Diet
16
+
17
+ # @overload Método de acceso y escritura para el atributo que almacenará el grupo de alimentos
18
+
19
+ attr_accessor :food
20
+
21
+ # @note Método para inicializar una dieta agrupada por alimentos
22
+ # @param [String] Grupo de alimentos, [String] Título, [String] Ingesta diaria, [String] Valor calorífico,
23
+ # @param [String] Porcentaje de proteínas, [String] Porcentaje de proteínas, [String] Porcentaje de grasas
24
+ # @param [String] Porcentaje de hidratos de carbono
25
+
26
+ def initialize(food, ttl, dip, vct, pprtn, pfts, pchdt)
27
+
28
+ @food = food
29
+
30
+ super(ttl, dip, vct, pprtn, pfts, pchdt)
31
+
32
+ end
33
+
34
+ # @note Función que permite mostrar una salida formateada de la lista
35
+ # @return [String] String con el contenido de la lista
36
+
37
+ def to_s()
38
+
39
+ tmp = super.to_s + "Alimentos: #{@food}\n"
40
+ tmp
41
+
42
+ end
43
+
44
+ end