alimento-alu0100912005 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +2 -0
  3. data/.gitignore +12 -0
  4. data/.travis.yml +8 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +12 -0
  7. data/Guardfile +82 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +81 -0
  10. data/Rakefile +6 -0
  11. data/alimento.gemspec +43 -0
  12. data/bin/console +14 -0
  13. data/bin/setup +8 -0
  14. data/doc/Aibc.html +434 -0
  15. data/doc/Alimento.html +128 -0
  16. data/doc/Food.html +1063 -0
  17. data/doc/ListaDoblementeEnlazada.html +1308 -0
  18. data/doc/Node.html +409 -0
  19. data/doc/Piramide.html +407 -0
  20. data/doc/_index.html +164 -0
  21. data/doc/class_list.html +51 -0
  22. data/doc/css/common.css +1 -0
  23. data/doc/css/full_list.css +58 -0
  24. data/doc/css/style.css +499 -0
  25. data/doc/file.README.html +146 -0
  26. data/doc/file_list.html +56 -0
  27. data/doc/frames.html +17 -0
  28. data/doc/index.html +146 -0
  29. data/doc/js/app.js +248 -0
  30. data/doc/js/full_list.js +216 -0
  31. data/doc/js/jquery.js +4 -0
  32. data/doc/method_list.html +307 -0
  33. data/doc/top-level-namespace.html +112 -0
  34. data/docs/Aibc.html +434 -0
  35. data/docs/Alimento.html +128 -0
  36. data/docs/Food.html +1063 -0
  37. data/docs/ListaDoblementeEnlazada.html +1308 -0
  38. data/docs/Node.html +409 -0
  39. data/docs/Piramide.html +407 -0
  40. data/docs/_index.html +164 -0
  41. data/docs/class_list.html +51 -0
  42. data/docs/css/common.css +1 -0
  43. data/docs/css/full_list.css +58 -0
  44. data/docs/css/style.css +492 -0
  45. data/docs/file.README.html +146 -0
  46. data/docs/file_list.html +56 -0
  47. data/docs/frames.html +17 -0
  48. data/docs/index.html +146 -0
  49. data/docs/js/app.js +248 -0
  50. data/docs/js/full_list.js +216 -0
  51. data/docs/js/jquery.js +4 -0
  52. data/docs/method_list.html +307 -0
  53. data/docs/top-level-namespace.html +112 -0
  54. data/lib/alimento.rb +8 -0
  55. data/lib/alimento/alimento.rb +152 -0
  56. data/lib/alimento/lista.rb +176 -0
  57. data/lib/alimento/plato.rb +233 -0
  58. data/lib/alimento/version.rb +4 -0
  59. metadata +213 -0
@@ -0,0 +1,233 @@
1
+ # require "./lib/alimento/version"
2
+ # require_relative "alimento"
3
+ require_relative "lista"
4
+
5
+ # require "alimento/lista"
6
+ # require "./version.rb"
7
+ # require_relative 'lista'
8
+ # require "lib/alimento"
9
+
10
+
11
+ # require "alimento"
12
+ # @author Nicolangelo Famiglietti
13
+ # @note Clase Plato
14
+ class Plato
15
+ # attr_accessor :name, :vegetal, :fruta, :cereal, :proteina, :aceite, :porciones
16
+ @@lista = ListaDoblementeEnlazada.new()
17
+ @@lista.insert Food.new("Tomate", 1.0, 3.5, 0.2)
18
+ @@lista.insert Food.new("Plátano", 1.2, 21.4, 0.2)
19
+ @@lista.insert Food.new("Arroz", 6.8, 77.7, 0.6)
20
+ @@lista.insert Food.new("Lentejas", 23.5, 52.0, 1.4)
21
+ @@lista.insert Food.new("Aceite de oliva", 0.0,99.6, 0.0)
22
+ @@lista.insert Food.new("Huevo", 14.1,0.0,19.5)
23
+
24
+ @@medidas = { "cucharadas"=>2,"piezas pequeñas"=>1,"taza"=>3,"cucharón"=>3,"pieza"=>4,"cucharada"=>2 }
25
+
26
+ def initialize(names, &block)
27
+ @names = names
28
+ @ve = 0
29
+ @fruta = []
30
+ @vegetal = []
31
+ @cereal = []
32
+ @proteina = []
33
+ @aceite = []
34
+ # @porciones = []
35
+ if block_given?
36
+ if block.arity == 1
37
+ yield self
38
+ else
39
+ instance_eval(&block)
40
+ end
41
+ end
42
+ end
43
+
44
+ def to_s
45
+ s = @names
46
+ s << "\n#{'=' * @names.size}\n"
47
+ s << "Composición nutricional:\n"
48
+ s << "\t\tglúcidos proteínas lípidos valor energético\n"
49
+
50
+ for i in 0..@vegetal.size-1 do
51
+ s << @vegetal[i][0].nombre + ":"
52
+ s << "\t\t%s" % @vegetal[i][0].glucidos
53
+ s << "\t %s" % @vegetal[i][0].proteinas
54
+ s << "\t %s" % @vegetal[i][0].grasas
55
+ s << "\t %s\n" % @vegetal[i][1]
56
+ end
57
+ for i in 0..@fruta.size-1 do
58
+ s << @fruta[i][0].nombre + ":"
59
+ s << "\t%s" % @fruta[i][0].glucidos
60
+ s << "\t %s" % @fruta[i][0].proteinas
61
+ s << "\t %s" % @fruta[i][0].grasas
62
+ s << "\t %s\n" % @fruta[i][1]
63
+ end
64
+ for i in 0..@cereal.size-1 do
65
+ s << @cereal[i][0].nombre + ":"
66
+ s << "\t\t%s" % @cereal[i][0].glucidos
67
+ s << "\t %s" % @cereal[i][0].proteinas
68
+ s << "\t %s" % @cereal[i][0].grasas
69
+ s << "\t %s\n" % @cereal[i][1]
70
+ end
71
+ for i in 0..@proteina.size-1 do
72
+ s << @proteina[i][0].nombre + ": "
73
+ s << "\t%s" % @proteina[i][0].glucidos
74
+ s << "\t %s" % @proteina[i][0].proteinas
75
+ s << "\t %s" % @proteina[i][0].grasas
76
+ s << "\t %s\n" % @proteina[i][1]
77
+ end
78
+ for i in 0..@aceite.size-1 do
79
+ s << @aceite[i][0].nombre + ":"
80
+ s << "%s" % @aceite[i][0].glucidos
81
+ s << "\t %s" % @aceite[i][0].proteinas
82
+ s << "\t %s" % @aceite[i][0].grasas
83
+ s << "\t %s\n" % @aceite[i][1]
84
+ end
85
+ s << "Valor energético total"
86
+ s << "\t%f" % @ve
87
+ s
88
+ end
89
+
90
+ def vegetal(name, options = {})
91
+ cantidad = 0
92
+ numero = 0
93
+ array = []
94
+ i=0
95
+ alimento = @@lista.detect { |x| name == x.nombre }
96
+
97
+ if options[:gramos]
98
+ cantidad = options[:gramos]
99
+ elsif options[:porcion]
100
+ #la cadena de porcion la separo en 2
101
+ values = options[:porcion].split(" ", 2)
102
+ #cada parte la guardo en un array
103
+ #2 cucharadas
104
+ #array[0] = 2
105
+ #array[1] = cucharadas
106
+ values.each do |value|
107
+ array[i] = value
108
+ i+=1
109
+ end
110
+ #busco array[1] en el hash de medidas
111
+ @@medidas.each do |key, value|
112
+ if(key == array[1])
113
+ cantidad = value
114
+ end
115
+ end
116
+ #numero es array[0] pasado primero a racional luego a float
117
+ numero = array[0].to_r.to_f
118
+ cantidad = cantidad * numero
119
+ end
120
+ @ve += cantidad*alimento.get_ve
121
+ @vegetal.push([alimento, (cantidad*alimento.get_ve).round(2)])
122
+
123
+ end
124
+
125
+ def fruta(name, options = {})
126
+ cantidad = 0
127
+ numero = 0
128
+ array = []
129
+ i=0
130
+ alimento = @@lista.detect { |x| name == x.nombre }
131
+
132
+ if options[:gramos]
133
+ cantidad = options[:gramos]
134
+ elsif options[:porcion]
135
+ values = options[:porcion].split(" ", 2)
136
+ values.each do |value|
137
+ array[i] = value
138
+ i+=1
139
+ end
140
+ @@medidas.each do |key, value|
141
+ if(key == array[1])
142
+ cantidad = value
143
+ end
144
+ end
145
+ numero = array[0].to_r.to_f
146
+ cantidad = cantidad * numero
147
+ end
148
+ @ve += cantidad*alimento.get_ve
149
+ @fruta.push([alimento, (cantidad*alimento.get_ve).round(2)])
150
+
151
+ end
152
+ def cereal(name, options = {})
153
+ cantidad = 0
154
+ numero = 0
155
+ array = []
156
+ i=0
157
+ alimento = @@lista.detect { |x| name == x.nombre }
158
+
159
+ if options[:gramos]
160
+ cantidad = options[:gramos]
161
+ elsif options[:porcion]
162
+ values = options[:porcion].split(" ", 2)
163
+ values.each do |value|
164
+ array[i] = value
165
+ i+=1
166
+ end
167
+ @@medidas.each do |key, value|
168
+ if(key == array[1])
169
+ cantidad = value
170
+ end
171
+ end
172
+ numero = array[0].to_r.to_f
173
+ cantidad = cantidad * numero
174
+ end
175
+ @ve += cantidad*alimento.get_ve
176
+ @cereal.push([alimento, (cantidad*alimento.get_ve).round(2)])
177
+
178
+ end
179
+
180
+ def proteina(name, options = {})
181
+ cantidad = 0
182
+ numero = 0
183
+ array = []
184
+ i=0
185
+ alimento = @@lista.detect { |x| name == x.nombre }
186
+
187
+ if options[:gramos]
188
+ cantidad = options[:gramos]
189
+ elsif options[:porcion]
190
+ values = options[:porcion].split(" ", 2)
191
+ values.each do |value|
192
+ array[i] = value
193
+ i+=1
194
+ end
195
+ @@medidas.each do |key, value|
196
+ if(key == array[1])
197
+ cantidad = value
198
+ end
199
+ end
200
+ numero = array[0].to_r.to_f
201
+ cantidad = cantidad * numero
202
+ end
203
+ @ve += cantidad*alimento.get_ve
204
+ @proteina.push([alimento, (cantidad*alimento.get_ve).round(2)])
205
+ end
206
+ def aceite(name, options = {})
207
+ cantidad = 0
208
+ numero = 0
209
+ array = []
210
+ i=0
211
+ alimento = @@lista.detect { |x| name == x.nombre }
212
+
213
+ if options[:gramos]
214
+ cantidad = options[:gramos]
215
+ elsif options[:porcion]
216
+ values = options[:porcion].split(" ", 2)
217
+ values.each do |value|
218
+ array[i] = value
219
+ i+=1
220
+ end
221
+ @@medidas.each do |key, value|
222
+ if(key == array[1])
223
+ cantidad = value
224
+ end
225
+ end
226
+ numero = array[0].to_r.to_f
227
+ cantidad = cantidad * numero
228
+ end
229
+ @ve += cantidad*alimento.get_ve
230
+ @aceite.push([alimento, (cantidad*alimento.get_ve).round(2)])
231
+ end
232
+
233
+ end
@@ -0,0 +1,4 @@
1
+ #no se toca
2
+ module Alimento
3
+ VERSION = "0.1.0"
4
+ end
metadata ADDED
@@ -0,0 +1,213 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alimento-alu0100912005
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Nicolangelo Famiglietti
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: yard
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
+ - !ruby/object:Gem::Dependency
112
+ name: coveralls
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: Practica 6 TDD LPP 17/18
126
+ email:
127
+ - alu0100912005@ull.edu.es
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - ".coveralls.yml"
133
+ - ".gitignore"
134
+ - ".travis.yml"
135
+ - CODE_OF_CONDUCT.md
136
+ - Gemfile
137
+ - Guardfile
138
+ - LICENSE.txt
139
+ - README.md
140
+ - Rakefile
141
+ - alimento.gemspec
142
+ - bin/console
143
+ - bin/setup
144
+ - doc/Aibc.html
145
+ - doc/Alimento.html
146
+ - doc/Food.html
147
+ - doc/ListaDoblementeEnlazada.html
148
+ - doc/Node.html
149
+ - doc/Piramide.html
150
+ - doc/_index.html
151
+ - doc/class_list.html
152
+ - doc/css/common.css
153
+ - doc/css/full_list.css
154
+ - doc/css/style.css
155
+ - doc/file.README.html
156
+ - doc/file_list.html
157
+ - doc/frames.html
158
+ - doc/index.html
159
+ - doc/js/app.js
160
+ - doc/js/full_list.js
161
+ - doc/js/jquery.js
162
+ - doc/method_list.html
163
+ - doc/top-level-namespace.html
164
+ - docs/Aibc.html
165
+ - docs/Alimento.html
166
+ - docs/Food.html
167
+ - docs/ListaDoblementeEnlazada.html
168
+ - docs/Node.html
169
+ - docs/Piramide.html
170
+ - docs/_index.html
171
+ - docs/class_list.html
172
+ - docs/css/common.css
173
+ - docs/css/full_list.css
174
+ - docs/css/style.css
175
+ - docs/file.README.html
176
+ - docs/file_list.html
177
+ - docs/frames.html
178
+ - docs/index.html
179
+ - docs/js/app.js
180
+ - docs/js/full_list.js
181
+ - docs/js/jquery.js
182
+ - docs/method_list.html
183
+ - docs/top-level-namespace.html
184
+ - lib/alimento.rb
185
+ - lib/alimento/alimento.rb
186
+ - lib/alimento/lista.rb
187
+ - lib/alimento/plato.rb
188
+ - lib/alimento/version.rb
189
+ homepage: https://github.com/ULL-ESIT-LPP-1718/tdd-alu0100912005
190
+ licenses:
191
+ - MIT
192
+ metadata: {}
193
+ post_install_message:
194
+ rdoc_options: []
195
+ require_paths:
196
+ - lib
197
+ required_ruby_version: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ required_rubygems_version: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ requirements: []
208
+ rubyforge_project:
209
+ rubygems_version: 2.5.1
210
+ signing_key:
211
+ specification_version: 4
212
+ summary: Practica 6 LPP 17/18.
213
+ test_files: []