practica_alu0100951844 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.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +12 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Guardfile +82 -0
- data/LICENSE.txt +21 -0
- data/README.md +6 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/docs/Alimentos.html +1125 -0
- data/docs/Array.html +377 -0
- data/docs/Grupo.html +441 -0
- data/docs/List.html +1210 -0
- data/docs/Node.html +426 -0
- data/docs/_index.html +142 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +492 -0
- data/docs/file_list.html +51 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +142 -0
- data/docs/js/app.js +248 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +291 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/practica_6/Alimentos.rb +138 -0
- data/lib/practica_6/Lista.rb +121 -0
- data/lib/practica_6/Recipe.rb +130 -0
- data/lib/practica_6/nodo.rb +4 -0
- data/lib/practica_6/version.rb +3 -0
- data/lib/practica_6.rb +10 -0
- data/practica_6.gemspec +43 -0
- metadata +207 -0
@@ -0,0 +1,110 @@
|
|
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
|
+
— Documentation by YARD 0.9.9
|
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> »
|
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
|
+
|
86
|
+
|
87
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Alimentos.html" title="Alimentos (class)">Alimentos</a></span>, <span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span>, <span class='object_link'><a href="Grupo.html" title="Grupo (class)">Grupo</a></span>, <span class='object_link'><a href="List.html" title="List (class)">List</a></span>, <span class='object_link'><a href="Node.html" title="Node (class)">Node</a></span>
|
88
|
+
|
89
|
+
|
90
|
+
</p>
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
</div>
|
101
|
+
|
102
|
+
<div id="footer">
|
103
|
+
Generated on Tue Nov 28 16:16:51 2017 by
|
104
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
105
|
+
0.9.9 (ruby-2.3.0).
|
106
|
+
</div>
|
107
|
+
|
108
|
+
</div>
|
109
|
+
</body>
|
110
|
+
</html>
|
@@ -0,0 +1,138 @@
|
|
1
|
+
# @author Yeray Expósito García
|
2
|
+
# La clase Alimentos permite almacenar los datos a nivel nutricional de un alimento, hallar su valor energético y compararlos.
|
3
|
+
class Alimentos
|
4
|
+
|
5
|
+
include Comparable
|
6
|
+
|
7
|
+
attr_reader :nombre, :proteinas, :glucidos, :lipidos
|
8
|
+
attr_accessor :datos_IG
|
9
|
+
|
10
|
+
# Metodo que permite declarar e inicializar las variables de instancia.
|
11
|
+
#
|
12
|
+
# @param name nombre del alimento
|
13
|
+
# @param protein Contiene la cantidad de proteinas del alimento.
|
14
|
+
# @param glucids Contiene la cantidad de glúcidos del alimento.
|
15
|
+
# @param lipids Contiene la cantidad de lípidos del alimento.
|
16
|
+
def initialize(name,protein,glucids,lipids)
|
17
|
+
@nombre = name
|
18
|
+
@proteinas = protein
|
19
|
+
@glucidos = glucids
|
20
|
+
@lipidos = lipids
|
21
|
+
end
|
22
|
+
|
23
|
+
# Método para calcular el Área incremental bajo la curva (AIBC) de un alimento o de la glucosa.
|
24
|
+
#
|
25
|
+
# @return Devuelve un vector con los resultados del AIBC de cada individuo.
|
26
|
+
def aibc
|
27
|
+
|
28
|
+
almacen=Array.new
|
29
|
+
datos_IG.each do |x|
|
30
|
+
almacen<<[]
|
31
|
+
x.each_cons(2){ |val| almacen.last<<((val[1]-x[0]+val[0]-x[0])/2)*5 }
|
32
|
+
end
|
33
|
+
|
34
|
+
almacen.map{ |x| (x.reduce :+).round(2) }
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
# El método <=> se encarga de poner en práctica los operadores convencionales de comparación ( <, <=, ==, >=, y >) y el método between?
|
39
|
+
#
|
40
|
+
# @param other Representa al objeto situado a la derecha del operador en una comparación
|
41
|
+
# @return Un valor numérico (-1,0,+1) dependiendo de si el receptor es menor, igual o mayor que el otro objeto.
|
42
|
+
def <=>(other)
|
43
|
+
valor_energetico <=> other.valor_energetico
|
44
|
+
end
|
45
|
+
|
46
|
+
# El método == ofrece una forma específica de aplicar el operador ==
|
47
|
+
#
|
48
|
+
# @param other Representa al objeto situado a la derecha del operador en una comparación
|
49
|
+
def ==(other)
|
50
|
+
@nombre == other.nombre
|
51
|
+
end
|
52
|
+
|
53
|
+
# El método to_s se encarga de formatear la salida cuando intentamos visualizar un objeto
|
54
|
+
#
|
55
|
+
# @return [string] En el que se representan las variables de instancia del objeto.
|
56
|
+
def to_s
|
57
|
+
"Nombre del alimento: #{@nombre} Proteínas: #{@proteinas}g Glúcidos: #{@glucidos}g Lípidos: #{@lipidos}g"
|
58
|
+
end
|
59
|
+
|
60
|
+
# El método valor_energetico se encarga de calcular el valor energético de un alimento en función de de @proteinas, @glucidos y @lipidos.
|
61
|
+
#
|
62
|
+
# @return Un valor numérico que representa el valor energético del alimento.
|
63
|
+
def valor_energetico
|
64
|
+
@glucidos*4 + @lipidos*9 + @proteinas*4
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
# @author Yeray Expósito García
|
70
|
+
# La clase Grupo < Alimentos permite clasificar cada alimento en un grupo determinado.
|
71
|
+
class Grupo < Alimentos
|
72
|
+
|
73
|
+
# Define los getter y setter de las variables de instancia
|
74
|
+
# @return [Numeric] El valor de dichas variables de instancia.
|
75
|
+
attr_reader :grupo
|
76
|
+
|
77
|
+
# Metodo que permite declarar e inicializar las variables de instancia.
|
78
|
+
def initialize(group,name,protein,glucids,lipids)
|
79
|
+
super(name,protein,glucids,lipids)
|
80
|
+
@grupo = group
|
81
|
+
end
|
82
|
+
|
83
|
+
# El método to_s se encarga de formatear la salida cuando intentamos visualizar un objeto
|
84
|
+
#
|
85
|
+
# @return [string] En el que se representan las variables de instancia del objeto.
|
86
|
+
def to_s
|
87
|
+
"Grupo: #{@grupo} alimento: #{nombre} Proteínas: #{proteinas}g Glúcidos: #{glucidos}g Lípidos: #{lipidos}g"
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
# Abrimos la clase Array para añadir los métodos de ordenación.
|
93
|
+
class Array
|
94
|
+
|
95
|
+
# metodo que ordena un array mediante bucles for.
|
96
|
+
# @return Un nuevo array con los datos ordenados según el valor energético.
|
97
|
+
def ordenar_for
|
98
|
+
solucion=Array.new
|
99
|
+
solucion << self[0]
|
100
|
+
|
101
|
+
for i in (1..self.length-1)
|
102
|
+
for j in (0..solucion.length-1)
|
103
|
+
if self[i]<=solucion[j]
|
104
|
+
solucion.insert(j,self[i])
|
105
|
+
break
|
106
|
+
end
|
107
|
+
|
108
|
+
if j==solucion.length-1
|
109
|
+
solucion << self[i]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
solucion
|
114
|
+
end
|
115
|
+
|
116
|
+
# metodo que ordena un array mediante el método each.
|
117
|
+
# @return Un nuevo array con los datos ordenados según el valor energético.
|
118
|
+
def ordenar_each
|
119
|
+
solucion=Array.new
|
120
|
+
solucion << self[0]
|
121
|
+
|
122
|
+
self.drop(1).each do |val_1|
|
123
|
+
solucion.each_with_index do |val_2,i|
|
124
|
+
if val_1<=val_2
|
125
|
+
solucion.insert(i,val_1)
|
126
|
+
break
|
127
|
+
end
|
128
|
+
|
129
|
+
if i==solucion.length-1
|
130
|
+
solucion << val_1
|
131
|
+
break
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
solucion
|
136
|
+
end
|
137
|
+
|
138
|
+
end
|
@@ -0,0 +1,121 @@
|
|
1
|
+
# @author Yeray Expósito García
|
2
|
+
# La clase List proporcionar los métodos necesarios para trabajar con una lista doblemente enlazada.
|
3
|
+
class List
|
4
|
+
|
5
|
+
include Enumerable
|
6
|
+
attr_reader :tail, :head, :sz
|
7
|
+
|
8
|
+
# Metodo que permite declarar e inicializar las variables de instancia.
|
9
|
+
def initialize
|
10
|
+
@tail=nil
|
11
|
+
@head=nil
|
12
|
+
@sz=0
|
13
|
+
end
|
14
|
+
|
15
|
+
# El método each genera elementos sucesivos de la lista doblemente enlazada.
|
16
|
+
# Es necesario para poder emplear los diferentes métodos de recorrido que ofrece Enumerable.
|
17
|
+
def each
|
18
|
+
var=@head
|
19
|
+
for num in (0..@sz-1)
|
20
|
+
yield var.value
|
21
|
+
var=var.next
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# El método insert_string! se encarga de introducir (a través del head) una cadena de elementos en la lista doblemente enlazada.
|
26
|
+
#
|
27
|
+
# @param val_string Representa el vector que contiene la cadena de elementos a insertar
|
28
|
+
def insert_string!(val_string)
|
29
|
+
for num in (0..val_string.length-1)
|
30
|
+
insert_head!(val_string[num])
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# El método insert_tail! se encarga de introducir un nodo por la cola de la lista doblemente enlazada.
|
35
|
+
#
|
36
|
+
# @param val Representa el valor que contendrá el nodo a insertar en la cola de la lista doblemente enlazada.
|
37
|
+
# @return @sz Variable de instancia que indica el tamaño actual de la lista tras la inserción.
|
38
|
+
def insert_tail!(val)
|
39
|
+
if(@sz==0)
|
40
|
+
@tail=Node.new(val,nil,nil)
|
41
|
+
@head= tail
|
42
|
+
@sz= @sz+1
|
43
|
+
else
|
44
|
+
@tail.next=Node.new(val,nil,tail)
|
45
|
+
@tail= tail.next
|
46
|
+
@sz= @sz+1
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# El método insert_head! se encarga de introducir un nodo por el head de la lista doblemente enlazada.
|
51
|
+
#
|
52
|
+
# @param val Representa el valor que contendrá el nodo a insertar en el head de la lista doblemente enlazada.
|
53
|
+
# @return @sz Variable de instancia que indica el tamaño actual de la lista tras la inserción.
|
54
|
+
def insert_head!(val)
|
55
|
+
if(@sz==0)
|
56
|
+
@head=Node.new(val,nil,nil)
|
57
|
+
@tail= head
|
58
|
+
@sz= @sz+1
|
59
|
+
else
|
60
|
+
@head.prev=Node.new(val,head,nil)
|
61
|
+
@head= head.prev
|
62
|
+
@sz= @sz+1
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# El método extract_head! se encarga de extraer el nodo que actualmente está en el head de la lista doblemente enlazada.
|
67
|
+
#
|
68
|
+
# @return extraer Variable que contiene el nodo que ha sido extraído del head de la lista.
|
69
|
+
def extract_head!
|
70
|
+
extraer=@head
|
71
|
+
|
72
|
+
if(sz>0)
|
73
|
+
@head= head.next
|
74
|
+
|
75
|
+
if head.nil?
|
76
|
+
@tail=nil
|
77
|
+
else
|
78
|
+
@head.prev=nil
|
79
|
+
end
|
80
|
+
|
81
|
+
extraer.next=nil
|
82
|
+
extraer.prev=nil
|
83
|
+
@sz= @sz-1
|
84
|
+
end
|
85
|
+
extraer
|
86
|
+
end
|
87
|
+
|
88
|
+
# El método extract_tail! se encarga de extraer el nodo que actualmente está en la cola de la lista doblemente enlazada.
|
89
|
+
#
|
90
|
+
# @return extraer Variable que contiene el nodo que ha sido extraído de la cola de la lista.
|
91
|
+
def extract_tail!
|
92
|
+
extraer=@tail
|
93
|
+
|
94
|
+
if(sz>0)
|
95
|
+
@tail= tail.prev
|
96
|
+
|
97
|
+
if tail.nil?
|
98
|
+
@head=nil
|
99
|
+
else
|
100
|
+
@tail.next=nil
|
101
|
+
end
|
102
|
+
|
103
|
+
extraer.next=nil
|
104
|
+
extraer.prev=nil
|
105
|
+
@sz= @sz-1
|
106
|
+
end
|
107
|
+
extraer
|
108
|
+
end
|
109
|
+
|
110
|
+
# El método to_s se encarga de formatear la salida cuando intentamos visualizar un objeto
|
111
|
+
#
|
112
|
+
# @return [string] En el que se representan las variables de instancia del objeto.
|
113
|
+
def to_s
|
114
|
+
if(sz>0)
|
115
|
+
"(size=#{sz} ==> head=#{head.value} tail=#{tail.value})"
|
116
|
+
else
|
117
|
+
"La lista está vacía."
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
|
2
|
+
class Recipe
|
3
|
+
|
4
|
+
attr_reader :name, :ingredients, :v_energetico_total
|
5
|
+
|
6
|
+
|
7
|
+
def initialize(name,&block)
|
8
|
+
|
9
|
+
@@cantidades={"cucharada"=>15,"cucharon"=>40,"taza"=>100,"pieza"=>150}
|
10
|
+
@@lista_alimentos=[Alimentos.new("Huevo frito",14.1,0.0,19.5), Alimentos.new("Leche vaca",3.3,4.8,3.2), Alimentos.new("Yogurt",3.8,4.9,3.8), Alimentos.new("Cerdo",21.5,0.0,6.3), Alimentos.new("Ternera",21.1,0.0,3.1), Alimentos.new("Pollo",20.6,0.0,5.6), Alimentos.new("Bacalao",17.7,0.0,0.4), Alimentos.new("Atun",21.5,0.0,15.5), Alimentos.new("Salmon",19.9,0.0,13.6), Alimentos.new("Aceite de oliva",0.0,0.2,99.6), Alimentos.new("Aceite de girasol",0.0,0.9,83.1), Alimentos.new("Mantequilla",0.7,0.0,83.2), Alimentos.new("Chocolate",5.3,47.0,30.0), Alimentos.new("Azucar",0.0,99.8,0.0), Alimentos.new("Arroz",6.8,77.7,0.6), Alimentos.new("Lentejas",23.5,52.0,1.4), Alimentos.new("Papas",2.0,15.4,0.1), Alimentos.new("Tomate",1.0,3.5,0.2), Alimentos.new("Cebolla",1.3,5.8,0.3), Alimentos.new("Calabaza",1.1,4.8,0.1), Alimentos.new("Manzana",0.3,12.4,0.4), Alimentos.new("Platano",1.2,21.4,0.2), Alimentos.new("Pera",0.5,12.7,0.3)]
|
11
|
+
|
12
|
+
@name = name
|
13
|
+
@ingredients=[]
|
14
|
+
@v_energetico_total=0;
|
15
|
+
|
16
|
+
if block_given? #Comprueba si el bloque existe
|
17
|
+
if block.arity == 1 #Devuelve la cantidad de argumentos del bloque
|
18
|
+
yield self
|
19
|
+
else
|
20
|
+
instance_eval(&block)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
output = @name
|
28
|
+
output << "\n#{'=' * @name.size}\n"
|
29
|
+
output << "Composición nutricional:\n"
|
30
|
+
output << " Glúcidos Proteínas Lípidos Valor energético Cantidad\n"
|
31
|
+
output << "#{@ingredients.join("\n")}\n\n"
|
32
|
+
output << "valor energético total ==> #{@v_energetico_total}\n\n"
|
33
|
+
output
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def vegetal(alimento, options = {})
|
38
|
+
|
39
|
+
food=@@lista_alimentos.find{|x| x.nombre==alimento}
|
40
|
+
ingredient = food.nombre
|
41
|
+
|
42
|
+
sz=23-food.nombre.size
|
43
|
+
ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
|
44
|
+
|
45
|
+
if options[:porcion]
|
46
|
+
almacen=options[:porcion].split
|
47
|
+
ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr"
|
48
|
+
end
|
49
|
+
|
50
|
+
@v_energetico_total+=food.valor_energetico
|
51
|
+
@ingredients << ingredient
|
52
|
+
ingredient
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
def fruta(alimento, options = {})
|
57
|
+
|
58
|
+
food=@@lista_alimentos.find{|x| x.nombre==alimento}
|
59
|
+
ingredient = food.nombre
|
60
|
+
|
61
|
+
sz=23-food.nombre.size
|
62
|
+
ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
|
63
|
+
|
64
|
+
if options[:porcion]
|
65
|
+
almacen=options[:porcion].split
|
66
|
+
ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr"
|
67
|
+
end
|
68
|
+
|
69
|
+
@v_energetico_total+=food.valor_energetico
|
70
|
+
@ingredients << ingredient
|
71
|
+
ingredient
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
def cereal(alimento, options = {})
|
76
|
+
|
77
|
+
food=@@lista_alimentos.find{|x| x.nombre==alimento}
|
78
|
+
ingredient = food.nombre
|
79
|
+
|
80
|
+
sz=23-food.nombre.size
|
81
|
+
ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
|
82
|
+
|
83
|
+
if options[:porcion]
|
84
|
+
almacen=options[:porcion].split
|
85
|
+
ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr"
|
86
|
+
end
|
87
|
+
|
88
|
+
@v_energetico_total+=food.valor_energetico
|
89
|
+
@ingredients << ingredient
|
90
|
+
ingredient
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
def proteina(alimento, options = {})
|
95
|
+
|
96
|
+
food=@@lista_alimentos.find{|x| x.nombre==alimento}
|
97
|
+
ingredient = food.nombre
|
98
|
+
|
99
|
+
sz=23-food.nombre.size
|
100
|
+
ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
|
101
|
+
|
102
|
+
if options[:porcion]
|
103
|
+
almacen=options[:porcion].split
|
104
|
+
ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr"
|
105
|
+
end
|
106
|
+
|
107
|
+
@v_energetico_total+=food.valor_energetico
|
108
|
+
@ingredients << ingredient
|
109
|
+
ingredient
|
110
|
+
end
|
111
|
+
|
112
|
+
|
113
|
+
def aceite(alimento, options = {})
|
114
|
+
|
115
|
+
food=@@lista_alimentos.find{|x| x.nombre==alimento}
|
116
|
+
ingredient = food.nombre
|
117
|
+
|
118
|
+
sz=23-food.nombre.size
|
119
|
+
ingredient << "#{" "*sz}#{food.glucidos}#{" "*9}#{food.proteinas}#{" "*8}#{food.lipidos}#{" "*8}#{food.valor_energetico.round(2)} "
|
120
|
+
|
121
|
+
if options[:porcion]
|
122
|
+
almacen=options[:porcion].split
|
123
|
+
ingredient << "#{" "*11}#{almacen[0].to_f*@@cantidades[almacen[1]]} gr"
|
124
|
+
end
|
125
|
+
|
126
|
+
@v_energetico_total+=food.valor_energetico
|
127
|
+
@ingredients << ingredient
|
128
|
+
ingredient
|
129
|
+
end
|
130
|
+
end
|
data/lib/practica_6.rb
ADDED
data/practica_6.gemspec
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "practica_6/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "practica_alu0100951844"
|
8
|
+
spec.version = Practica6::VERSION
|
9
|
+
spec.authors = ["Yeray Expósito"]
|
10
|
+
spec.email = ["alu0100951844@ull.edu.es"]
|
11
|
+
|
12
|
+
spec.summary = "Practica 6 TDD"
|
13
|
+
spec.description = "Practica 6 TDD"
|
14
|
+
spec.homepage = "https://github.com/ULL-ESIT-LPP-1718/tdd-alu0100951844.git"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
+
if spec.respond_to?(:metadata)
|
20
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
21
|
+
else
|
22
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
23
|
+
"public gem pushes."
|
24
|
+
end
|
25
|
+
|
26
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
|
+
f.match(%r{^(test|spec|features)/})
|
28
|
+
end
|
29
|
+
spec.bindir = "exe"
|
30
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
+
spec.require_paths = ["lib"]
|
32
|
+
|
33
|
+
spec.add_development_dependency "bundler", "~> 1.15"
|
34
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
35
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
36
|
+
spec.add_development_dependency "guard"
|
37
|
+
spec.add_development_dependency "guard-rspec"
|
38
|
+
spec.add_development_dependency "guard-bundler"
|
39
|
+
spec.add_development_dependency "yard"
|
40
|
+
spec.add_development_dependency "yard-rspec"
|
41
|
+
spec.add_development_dependency "coveralls"
|
42
|
+
|
43
|
+
end
|