alimento_odmc 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,192 @@
1
+ require "alimento/lista.rb"
2
+ require "alimento/version.rb"
3
+
4
+ class PlatoDls
5
+ attr_accessor :nombre, :v_energetico, :vegetales, :frutas, :cereales, :proteinas, :aceites
6
+
7
+ #@note Lista de alimentos para la costrucción de los platos
8
+ @@lista = Lista.new()
9
+ @HuevoFrito = AlimentoC.new("Huevo Frito", 14.1, 0.0, 19.5, "Huevos, lacteos y helados" )
10
+ @LecheVaca = AlimentoC.new("Leche vaca", 3.3, 4.8, 3.2, "Huevos, lacteos y helados")
11
+ @Yogurt = AlimentoC.new("Yogurt", 3.8, 4.9, 3.8, "Huevos, lacteos y helados")
12
+ @Cerdo = AlimentoC.new("Cerdo", 21.5, 0.0, 6.3, "Carnes y derivados")
13
+ @Ternera = AlimentoC.new("Ternera", 21.1, 0.0, 3.1, "Carnes y derivados")
14
+ @Pollo = AlimentoC.new("Pollo", 20.6, 0.0, 5.6, "Carnes y derivados")
15
+ @Bacalao = AlimentoC.new("Bacalao", 17.7, 0.0, 0.4, "Pescados y mariscos")
16
+ @Atun = AlimentoC.new("Atun", 21.5, 0.0, 15.5, "Pescados y mariscos")
17
+ @Salmon = AlimentoC.new("Salmon", 19.9, 0.0, 13.6, "Pescados y mariscos")
18
+ @AceiteOliva = AlimentoC.new("Aceite Oliva", 0.0, 0.2, 99.6, "Alimentos grasos")
19
+ @Mantequilla = AlimentoC.new("Mantequilla", 0.7, 0.0, 83.2, "Alimentos grasos")
20
+ @Chocolate = AlimentoC.new("Chocolate", 5.3, 47.0, 30.0, "Alimentos grasos")
21
+ @Azucar = AlimentoC.new("Azucar", 0.0, 99.8, 0.0, "Alimentos ricos en carbohidratos")
22
+ @Arroz = AlimentoC.new("Arroz",6.8, 77.7, 0.6, "Alimentos ricos en carbohidratos")
23
+ @Lentejas = AlimentoC.new("Lentejas", 23.5, 52.0, 1.4, "Alimentos ricos en carbohidratos")
24
+ @Papas = AlimentoC.new("Papas",2.0, 15.4, 0.1, "Alimentos ricos en carbohidratos")
25
+ @Tomate = AlimentoC.new("Tomate", 1.0, 3.5, 0.2, "Verduras y Hortalizas")
26
+ @Cebolla = AlimentoC.new("Cebolla", 1.3, 5.8, 0.3, "Verduras y Hortalizas")
27
+ @Calabaza = AlimentoC.new("Calabaza", 1.1, 4.8, 0.1, "Verduras y Hortalizas")
28
+ @Manzanas = AlimentoC.new("Manzanas", 0.3, 12.4, 0.4, "Frutas")
29
+ @Platanos = AlimentoC.new("Platanos", 1.2, 21.4, 0.2, "Frutas")
30
+ @Pera = AlimentoC.new("Pera", 0.5, 12.7, 0.3, "Frutas")
31
+
32
+ @nodo1 = Nodo.new(@HuevoFrito)
33
+ @nodo2 = Nodo.new(@LecheVaca)
34
+ @nodo3 = Nodo.new(@Yogurt)
35
+ @nodo4 = Nodo.new(@Cerdo)
36
+ @nodo5 = Nodo.new(@Ternera)
37
+ @nodo6 = Nodo.new(@Pollo)
38
+ @nodo7 = Nodo.new(@Bacalao)
39
+ @nodo8 = Nodo.new(@Atun)
40
+ @nodo9 = Nodo.new(@Salmon)
41
+ @nodo10 = Nodo.new(@AceiteOliva)
42
+ @nodo11 = Nodo.new(@Mantequilla)
43
+ @nodo12 = Nodo.new(@Chocolate)
44
+ @nodo13 = Nodo.new(@Azucar)
45
+ @nodo14 = Nodo.new(@Arroz)
46
+ @nodo15 = Nodo.new(@Lentejas)
47
+ @nodo16 = Nodo.new(@Papas)
48
+ @nodo17 = Nodo.new(@Tomate)
49
+ @nodo18 = Nodo.new(@Cebolla)
50
+ @nodo19 = Nodo.new(@Calabaza)
51
+ @nodo20 = Nodo.new(@Manzanas)
52
+ @nodo21 = Nodo.new(@Platanos)
53
+ @nodo22 = Nodo.new(@Pera)
54
+
55
+ @@lista.insertar_cabeza(@nodo1)
56
+ @@lista.insertar_mul([@nodo2, @nodo3, @nodo4, @nodo5, @nodo6, @nodo7, @nodo8, @nodo9, @nodo10,
57
+ @nodo11,@nodo12, @nodo13, @nodo14, @nodo15, @nodo16, @nodo17, @nodo18, @nodo19, @nodo20, @nodo21, @nodo22], 1)
58
+
59
+ #@note La equivalencia de las diferentes palabras en gramos
60
+ @@equGram = { "cucharadas"=>1.8,"piezas pequeñas"=>7,"taza"=>6,"cucharón"=>4,"pieza"=>10,"cucharada"=>1.8, "piezas"=>10 }
61
+
62
+ #@note Construcctor de la clase platos de DLS
63
+ #@param Le pasamos el nombre y el bloque que irá inicializando el resto de las variables.
64
+ def initialize nombreIn, &bloque
65
+ @nombre = nombreIn
66
+ @v_energetico = 0
67
+
68
+ @vegetales = []
69
+ @frutas = []
70
+ @cereales = []
71
+ @proteinas = []
72
+ @aceites = []
73
+
74
+ instance_eval(&bloque)
75
+ end
76
+
77
+ #@note Función para la cantidad de alimento que añadimos al plato
78
+ #@param porcion[String]
79
+ def get_cant porcion
80
+ #La cantidad está en el primer caracter
81
+ num = porcion.split[0].to_r
82
+ cad = ""
83
+ #Formateamos correctamente la cadena
84
+ porcion.split[1..cad.length-1].each do |i|
85
+ cad += i + " "
86
+ end
87
+ cant = num * @@equGram[cad.chomp ' ']
88
+ end
89
+
90
+ #@note Función para añadir correctamente los vegetales desde dls
91
+ #@param nom_ali[Strign], opciones[String]
92
+ def vegetal nom_ali, opciones = {}
93
+ cant = 0
94
+ ali = @@lista.detect { |i| nom_ali == i.nombre }
95
+ if opciones[:gramos]
96
+ cant = options[:gramos]
97
+ elsif opciones[:porcion]
98
+ cant = get_cant opciones[:porcion]
99
+ end
100
+ @v_energetico += cant*ali.v_energetico
101
+ @vegetales.push([ali, (cant*ali.v_energetico).round(3)])
102
+ end
103
+
104
+ #@note Función para añadir correctamente las frutas desde dls
105
+ #@param nom_ali[Strign], opciones[String]
106
+ def fruta nom_ali, opciones = {}
107
+ cant = 0
108
+ ali = @@lista.detect { |i| nom_ali == i.nombre }
109
+ if opciones[:gramos]
110
+ cant = opciones[:gramos]
111
+ elsif opciones[:porcion]
112
+ cant = get_cant opciones[:porcion]
113
+ end
114
+ @v_energetico += cant*ali.v_energetico
115
+ @frutas.push([ali, (cant*ali.v_energetico).round(3)])
116
+ end
117
+
118
+ #@note Función para añadir correctamente los cereales desde dls
119
+ #@param nom_ali[Strign], opciones[String]
120
+ def cereal nom_ali, opciones = {}
121
+ cant = 0
122
+ ali = @@lista.detect { |i| nom_ali == i.nombre }
123
+ if opciones[:gramos]
124
+ cant = opciones[:gramos]
125
+ elsif opciones[:porcion]
126
+ cant = get_cant opciones[:porcion]
127
+ end
128
+ @v_energetico += cant*ali.v_energetico
129
+ @cereales.push([ali, (cant*ali.v_energetico).round(3)])
130
+ end
131
+
132
+ #@note Función para añadir correctamente los proteinas desde dls
133
+ #@param nom_ali[Strign], opciones[String]
134
+ def proteina nom_ali, opciones = {}
135
+ cant = 0
136
+ ali = @@lista.detect { |i| nom_ali == i.nombre }
137
+ if opciones[:gramos]
138
+ cant = opciones[:gramos]
139
+ elsif opciones[:porcion]
140
+ cant = get_cant opciones[:porcion]
141
+ end
142
+ @v_energetico += cant*ali.v_energetico
143
+ @proteinas.push([ali, (cant*ali.v_energetico).round(3)])
144
+ end
145
+
146
+ #@note Función para añadir correctamente el aceite desde dls
147
+ #@param nom_ali[Strign], opciones[String]
148
+ def aceite nom_ali, opciones = {}
149
+ cant = 0
150
+ ali = @@lista.detect { |i| nom_ali == i.nombre }
151
+ if opciones[:gramos]
152
+ cant = opciones[:gramos]
153
+ elsif opciones[:porcion]
154
+ cant = get_cant opciones[:porcion]
155
+ end
156
+ @v_energetico += cant*ali.v_energetico
157
+ @aceites.push([ali, (cant*ali.v_energetico).round(3)])
158
+ end
159
+
160
+ #@note Función para mostrar el contenido de la lista.
161
+ #@return Lista formateada en una cadena para su visualización.
162
+ def to_s
163
+ salida = @nombre + "\n"
164
+ salida += "=============================================================\n"
165
+ salida += "Composición nutricional: \n"
166
+ salida += "\tglúcidos proteínas lípidos \tgrupo\t\t\t valor energético\n"
167
+
168
+ for i in 0..@vegetales.length-1 do
169
+ salida += @vegetales[i][0].to_s + "\t\t" + @vegetales[i][1].to_s + "\n"
170
+ end
171
+
172
+ for i in 0..@frutas.length-1 do
173
+ salida += @frutas[i][0].to_s + "\t\t" + @frutas[i][1].to_s + "\n"
174
+ end
175
+
176
+ for i in 0..@cereales.length-1 do
177
+ salida += @cereales[i][0].to_s + "\t\t" + @cereales[i][1].to_s + "\n"
178
+ end
179
+
180
+ for i in 0..@proteinas.length-1 do
181
+ salida += @proteinas[i][0].to_s + "\t\t" + @proteinas[i][1].to_s + "\n"
182
+ end
183
+
184
+ for i in 0..@aceites.length-1 do
185
+ salida += @aceites[i][0].to_s + "\t\t" + @aceites[i][1].to_s + "\n"
186
+ end
187
+
188
+ salida += "Valor energetico = " + v_energetico.to_s
189
+ salida
190
+ end
191
+
192
+ end
@@ -0,0 +1,3 @@
1
+ module Alimento
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alimento_odmc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Óscar
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-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.15'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
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
+ - !ruby/object:Gem::Dependency
98
+ name: coveralls
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 para representar alimentos con sus propiedades y calcular su valor
112
+ calorico '
113
+ email:
114
+ - alu0100705638@ull.edu.es
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".coveralls.yml"
120
+ - ".gitignore"
121
+ - ".travis.yml"
122
+ - Gemfile
123
+ - Guardfile
124
+ - README.md
125
+ - Rakefile
126
+ - alimento.gemspec
127
+ - bin/console
128
+ - bin/setup
129
+ - docs/Alimento.html
130
+ - docs/AlimentoC.html
131
+ - docs/Alimentos.html
132
+ - docs/Lista.html
133
+ - docs/Nodo.html
134
+ - docs/_index.html
135
+ - docs/class_list.html
136
+ - docs/css/common.css
137
+ - docs/css/full_list.css
138
+ - docs/css/style.css
139
+ - docs/file.README.html
140
+ - docs/file_list.html
141
+ - docs/frames.html
142
+ - docs/index.html
143
+ - docs/js/app.js
144
+ - docs/js/full_list.js
145
+ - docs/js/jquery.js
146
+ - docs/method_list.html
147
+ - docs/top-level-namespace.html
148
+ - lib/alimento.rb
149
+ - lib/alimento/alimento.rb
150
+ - lib/alimento/alimentoC.rb
151
+ - lib/alimento/lista.rb
152
+ - lib/alimento/platoDls.rb
153
+ - lib/alimento/version.rb
154
+ homepage: https://github.com/ULL-ESIT-LPP-1718/tdd-alu0100705638
155
+ licenses: []
156
+ metadata: {}
157
+ post_install_message:
158
+ rdoc_options: []
159
+ require_paths:
160
+ - lib
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ requirements: []
172
+ rubyforge_project:
173
+ rubygems_version: 2.6.8
174
+ signing_key:
175
+ specification_version: 4
176
+ summary: Representacion de alimentos con sus proteinas, glucidos y lipidos
177
+ test_files: []