tddAlimentos 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.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +2 -0
  3. data/.gitignore +13 -0
  4. data/.rspec +3 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +101 -0
  8. data/Guardfile +83 -0
  9. data/README.md +46 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/docs/Alimento.html +428 -0
  14. data/docs/Gemfile.html +98 -0
  15. data/docs/Gemfile_lock.html +183 -0
  16. data/docs/Guardfile.html +166 -0
  17. data/docs/List.html +682 -0
  18. data/docs/Object.html +128 -0
  19. data/docs/Plato.html +607 -0
  20. data/docs/PlatoAmbiental.html +492 -0
  21. data/docs/README_md.html +126 -0
  22. data/docs/Rakefile.html +100 -0
  23. data/docs/TddAlimentos.html +110 -0
  24. data/docs/TddAlimentos/Error.html +103 -0
  25. data/docs/bin/setup.html +100 -0
  26. data/docs/created.rid +17 -0
  27. data/docs/css/fonts.css +167 -0
  28. data/docs/css/rdoc.css +590 -0
  29. data/docs/fonts/Lato-Light.ttf +0 -0
  30. data/docs/fonts/Lato-LightItalic.ttf +0 -0
  31. data/docs/fonts/Lato-Regular.ttf +0 -0
  32. data/docs/fonts/Lato-RegularItalic.ttf +0 -0
  33. data/docs/fonts/SourceCodePro-Bold.ttf +0 -0
  34. data/docs/fonts/SourceCodePro-Regular.ttf +0 -0
  35. data/docs/images/add.png +0 -0
  36. data/docs/images/arrow_up.png +0 -0
  37. data/docs/images/brick.png +0 -0
  38. data/docs/images/brick_link.png +0 -0
  39. data/docs/images/bug.png +0 -0
  40. data/docs/images/bullet_black.png +0 -0
  41. data/docs/images/bullet_toggle_minus.png +0 -0
  42. data/docs/images/bullet_toggle_plus.png +0 -0
  43. data/docs/images/date.png +0 -0
  44. data/docs/images/delete.png +0 -0
  45. data/docs/images/find.png +0 -0
  46. data/docs/images/loadingAnimation.gif +0 -0
  47. data/docs/images/macFFBgHack.png +0 -0
  48. data/docs/images/package.png +0 -0
  49. data/docs/images/page_green.png +0 -0
  50. data/docs/images/page_white_text.png +0 -0
  51. data/docs/images/page_white_width.png +0 -0
  52. data/docs/images/plugin.png +0 -0
  53. data/docs/images/ruby.png +0 -0
  54. data/docs/images/tag_blue.png +0 -0
  55. data/docs/images/tag_green.png +0 -0
  56. data/docs/images/transparent.png +0 -0
  57. data/docs/images/wrench.png +0 -0
  58. data/docs/images/wrench_orange.png +0 -0
  59. data/docs/images/zoom.png +0 -0
  60. data/docs/index.html +117 -0
  61. data/docs/js/darkfish.js +161 -0
  62. data/docs/js/jquery.js +4 -0
  63. data/docs/js/navigation.js +141 -0
  64. data/docs/js/navigation.js.gz +0 -0
  65. data/docs/js/search.js +109 -0
  66. data/docs/js/search_index.js +1 -0
  67. data/docs/js/search_index.js.gz +0 -0
  68. data/docs/js/searcher.js +229 -0
  69. data/docs/js/searcher.js.gz +0 -0
  70. data/docs/table_of_contents.html +307 -0
  71. data/docs/tddAlimentos_gemspec.html +133 -0
  72. data/lib/tddAlimentos.rb +12 -0
  73. data/lib/tddAlimentos/alimento.rb +56 -0
  74. data/lib/tddAlimentos/lista.rb +172 -0
  75. data/lib/tddAlimentos/menu.rb +51 -0
  76. data/lib/tddAlimentos/plato.rb +125 -0
  77. data/lib/tddAlimentos/platoAmbiental.rb +108 -0
  78. data/lib/tddAlimentos/platoDSL.rb +94 -0
  79. data/lib/tddAlimentos/version.rb +3 -0
  80. data/tddAlimentos.gemspec +39 -0
  81. metadata +249 -0
@@ -0,0 +1,108 @@
1
+ require 'markup'
2
+
3
+ # = platoAmbiental.rb
4
+ #
5
+ # Autor:: Himar Manuel Barquín Carrasco
6
+ # Web:: https://github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373
7
+ #
8
+ # == Descripción
9
+ #
10
+ # Clase que hereda de la clase Plato, y que incorpora los atributos gei y terreno, que nos informan de los gases de efecto invernadero y el terreno en metros cuadrados que son necesarios para producir este plato
11
+ # == Métodos
12
+ # * to_s
13
+ # * calc_vct
14
+ # * nutritional_footprint
15
+ # * calc_gei
16
+ # * calc_terrain
17
+ # * <=>
18
+
19
+ class PlatoAmbiental < Plato
20
+
21
+ attr_reader :gei, :terrain
22
+
23
+ # Constructor de la clase PlatoAmbiental
24
+ # Parámetros::
25
+ # * name: Nombre del plato
26
+ # * alimentos: Conjunto de alimentos que componen el plato
27
+ # * gramos: Cantidades en gramos de cada alimento del plato
28
+ def initialize (name, alimentos = [], gramos = [])
29
+ super(name, alimentos, gramos)
30
+
31
+ @gei = calc_gei
32
+ @terrain = calc_terrain
33
+ end
34
+
35
+ # Imprime la información de la clase Plato y le añade la información del GEI y el terreno
36
+ # Devuelve::
37
+ # Cadena de texto con la información del plato de la clase Plato y la información del GEI y el terreno
38
+ def to_s
39
+ result = ""
40
+
41
+ result += super.to_s
42
+ result += "\nGEI: #{@gei.round(2)} kgCO2eq"
43
+ result += "\nTerreno: #{@terrain.round(2)} m2 / año"
44
+ end
45
+
46
+ # Calcula la huella nutricional del plato
47
+ # Devuelve::
48
+ # Valor de la huella nutricional
49
+ def nutritional_footprint
50
+ kcal_impact = 0
51
+ if @vct < 670
52
+ kcal_impact = 1
53
+ elsif @vct > 830
54
+ kcal_impact = 3
55
+ else
56
+ kcal_impact = 2
57
+ end
58
+
59
+ gei_impact = 0
60
+ if @gei < 800
61
+ gei_impact = 1
62
+ elsif @gei > 1200
63
+ gei_impact = 3
64
+ else
65
+ gei_impact = 2
66
+ end
67
+
68
+ (kcal_impact + gei_impact) / 2.0
69
+ end
70
+
71
+ # Calcula el gas de efecto invernadero que se produce al crear el plato
72
+ # Devuelve::
73
+ # GEI del plato
74
+ def calc_gei
75
+ datos = @food.collect { |x| x.gei }
76
+ gramos = @quantities.collect { |x| x/100.0 }
77
+ result = 0.0
78
+
79
+ for i in 0...datos.size
80
+ result += datos[i] * gramos[i]
81
+ end
82
+ result
83
+ end
84
+
85
+ # Calcula el terreno consumido por la producción del plato
86
+ # Devuelve::
87
+ # Valor del terreno
88
+ def calc_terrain
89
+ datos = @food.collect { |x| x.terrain }
90
+ gramos = @quantities.collect { |x| x/100.0 }
91
+ result = 0.0
92
+
93
+ for i in 0...datos.size
94
+ result += datos[i] * gramos[i]
95
+ end
96
+ result
97
+ end
98
+
99
+ # Permite la comparación de dos 'platos ambientales' mediante la huella nutricional
100
+ # Parámetros::
101
+ # * another: objeto PlatoAmbiental que comparar con el objeto invocante
102
+ # Devuelve::
103
+ # 'true' si la comparación es verdadera. 'false' en otro caso
104
+ def <=> (another)
105
+ self.nutritional_footprint <=> another.nutritional_footprint
106
+ end
107
+
108
+ end
@@ -0,0 +1,94 @@
1
+ class PlatoDSL
2
+
3
+ attr_accessor :name, :description, :food, :gr, :vct, :gei, :terrain
4
+
5
+ def initialize (name, &block)
6
+
7
+ @name = name
8
+ @description = ""
9
+ @food = []
10
+ @gr = []
11
+
12
+ if block_given?
13
+ if block.arity == 1
14
+ yield self
15
+ else
16
+ instance_eval(&block)
17
+ end
18
+ end
19
+
20
+ @vct = calc_vct
21
+ @gei = calc_gei
22
+ @terrain = calc_terrain
23
+
24
+ end
25
+
26
+ def descripcion (description)
27
+ @description = description
28
+ end
29
+
30
+ def alimento (options = {})
31
+ @food << options[:valor]
32
+ @gr << options[:gramos]
33
+ end
34
+
35
+ def to_s
36
+ str = ""
37
+
38
+ str += @name + "\n"
39
+ str += @description + "\n"
40
+ str += "Ingredientes: "
41
+ @food.each_with_index do |ingredient,index|
42
+ str += "#{ingredient.name} (#{@gr[index]} gr.)"
43
+ if index < (@food.size - 1)
44
+ str += ", "
45
+ end
46
+ end
47
+ str += "\nValor calorico total: " + @vct.to_s + " kcal.\n"
48
+ str += "Uso de terreno: " + @terrain.to_s + "\n"
49
+ str += "GEI: " + @gei.to_s
50
+ end
51
+
52
+ # Calcula el Valor Calórico Total del plato
53
+ # Devuelve::
54
+ # Valor Calórico Total del plato
55
+ def calc_vct
56
+ alimentos = @food.collect { |x| x.energetic_value }
57
+ gramos = @gr.collect { |x| x/100.0 }
58
+ result = 0.0
59
+
60
+ for i in 0...alimentos.size
61
+ result += (gramos[i] * alimentos[i])
62
+ end
63
+ result.round(2)
64
+ end
65
+
66
+ # Calcula el gas de efecto invernadero que se produce al crear el plato
67
+ # Devuelve::
68
+ # GEI del plato
69
+ def calc_gei
70
+ datos = @food.collect { |x| x.gei }
71
+ gramos = @gr.collect { |x| x/100.0 }
72
+ result = 0.0
73
+
74
+ for i in 0...datos.size
75
+ result += datos[i] * gramos[i]
76
+ end
77
+ result.round(2)
78
+ end
79
+
80
+ # Calcula el terreno consumido por la producción del plato
81
+ # Devuelve::
82
+ # Valor del terreno
83
+ def calc_terrain
84
+ datos = @food.collect { |x| x.terrain }
85
+ gramos = @gr.collect { |x| x/100.0 }
86
+ result = 0.0
87
+
88
+ for i in 0...datos.size
89
+ result += datos[i] * gramos[i]
90
+ end
91
+ result
92
+ end
93
+
94
+ end
@@ -0,0 +1,3 @@
1
+ module TddAlimentos
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,39 @@
1
+ lib = File.expand_path("lib", __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "tddAlimentos/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "tddAlimentos"
7
+ spec.version = TddAlimentos::VERSION
8
+ spec.authors = ["Himar Barquin"]
9
+ spec.email = ["alu0101119373@ull.edu.es"]
10
+
11
+ spec.summary = %q{Contiene la clase Alimento, que describe un alimento.}
12
+ spec.homepage = "https://github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373"
13
+
14
+ #spec.metadata["allowed_push_host"] = "Set to 'http://mygemserver.com'"
15
+
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
+ spec.metadata["source_code_uri"] = "https://github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373"
18
+ #spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
19
+
20
+ # Specify which files should be added to the gem when it is released.
21
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
23
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
+ end
25
+ spec.bindir = "exe"
26
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
+ spec.require_paths = ["lib"]
28
+
29
+ spec.add_development_dependency "bundler", "~> 2.0"
30
+ spec.add_development_dependency "rake", "~> 10.0"
31
+ spec.add_development_dependency "rspec", "~> 3.0"
32
+ spec.add_development_dependency "guard"
33
+ spec.add_development_dependency "guard-rspec"
34
+ spec.add_development_dependency "guard-bundler"
35
+ spec.add_development_dependency "markup"
36
+ spec.add_development_dependency "rdoc"
37
+ spec.add_development_dependency "coveralls"
38
+
39
+ end
metadata ADDED
@@ -0,0 +1,249 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tddAlimentos
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Himar Barquin
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2020-01-08 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: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
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: markup
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: rdoc
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
+ - !ruby/object:Gem::Dependency
126
+ name: coveralls
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description:
140
+ email:
141
+ - alu0101119373@ull.edu.es
142
+ executables: []
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - ".coveralls.yml"
147
+ - ".gitignore"
148
+ - ".rspec"
149
+ - ".travis.yml"
150
+ - Gemfile
151
+ - Gemfile.lock
152
+ - Guardfile
153
+ - README.md
154
+ - Rakefile
155
+ - bin/console
156
+ - bin/setup
157
+ - docs/Alimento.html
158
+ - docs/Gemfile.html
159
+ - docs/Gemfile_lock.html
160
+ - docs/Guardfile.html
161
+ - docs/List.html
162
+ - docs/Object.html
163
+ - docs/Plato.html
164
+ - docs/PlatoAmbiental.html
165
+ - docs/README_md.html
166
+ - docs/Rakefile.html
167
+ - docs/TddAlimentos.html
168
+ - docs/TddAlimentos/Error.html
169
+ - docs/bin/setup.html
170
+ - docs/created.rid
171
+ - docs/css/fonts.css
172
+ - docs/css/rdoc.css
173
+ - docs/fonts/Lato-Light.ttf
174
+ - docs/fonts/Lato-LightItalic.ttf
175
+ - docs/fonts/Lato-Regular.ttf
176
+ - docs/fonts/Lato-RegularItalic.ttf
177
+ - docs/fonts/SourceCodePro-Bold.ttf
178
+ - docs/fonts/SourceCodePro-Regular.ttf
179
+ - docs/images/add.png
180
+ - docs/images/arrow_up.png
181
+ - docs/images/brick.png
182
+ - docs/images/brick_link.png
183
+ - docs/images/bug.png
184
+ - docs/images/bullet_black.png
185
+ - docs/images/bullet_toggle_minus.png
186
+ - docs/images/bullet_toggle_plus.png
187
+ - docs/images/date.png
188
+ - docs/images/delete.png
189
+ - docs/images/find.png
190
+ - docs/images/loadingAnimation.gif
191
+ - docs/images/macFFBgHack.png
192
+ - docs/images/package.png
193
+ - docs/images/page_green.png
194
+ - docs/images/page_white_text.png
195
+ - docs/images/page_white_width.png
196
+ - docs/images/plugin.png
197
+ - docs/images/ruby.png
198
+ - docs/images/tag_blue.png
199
+ - docs/images/tag_green.png
200
+ - docs/images/transparent.png
201
+ - docs/images/wrench.png
202
+ - docs/images/wrench_orange.png
203
+ - docs/images/zoom.png
204
+ - docs/index.html
205
+ - docs/js/darkfish.js
206
+ - docs/js/jquery.js
207
+ - docs/js/navigation.js
208
+ - docs/js/navigation.js.gz
209
+ - docs/js/search.js
210
+ - docs/js/search_index.js
211
+ - docs/js/search_index.js.gz
212
+ - docs/js/searcher.js
213
+ - docs/js/searcher.js.gz
214
+ - docs/table_of_contents.html
215
+ - docs/tddAlimentos_gemspec.html
216
+ - lib/tddAlimentos.rb
217
+ - lib/tddAlimentos/alimento.rb
218
+ - lib/tddAlimentos/lista.rb
219
+ - lib/tddAlimentos/menu.rb
220
+ - lib/tddAlimentos/plato.rb
221
+ - lib/tddAlimentos/platoAmbiental.rb
222
+ - lib/tddAlimentos/platoDSL.rb
223
+ - lib/tddAlimentos/version.rb
224
+ - tddAlimentos.gemspec
225
+ homepage: https://github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373
226
+ licenses: []
227
+ metadata:
228
+ homepage_uri: https://github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373
229
+ source_code_uri: https://github.com/ULL-ESIT-LPP-1920/tdd-alu0101119373
230
+ post_install_message:
231
+ rdoc_options: []
232
+ require_paths:
233
+ - lib
234
+ required_ruby_version: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - ">="
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
239
+ required_rubygems_version: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ requirements: []
245
+ rubygems_version: 3.0.3
246
+ signing_key:
247
+ specification_version: 4
248
+ summary: Contiene la clase Alimento, que describe un alimento.
249
+ test_files: []