nutritag 0.1.1

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,138 @@
1
+ #require "nutritag/anthro_data.rb"
2
+
3
+ # Clase *Person*
4
+ #
5
+ # Nos permitirá hacer una valoración nutricional de un individuo
6
+ class Person
7
+ attr_accessor :name, :surname
8
+
9
+ # Se crea la persona
10
+ #
11
+ # @param name [String] nombre de la persona
12
+ # @param surname [String] apellido de la persona
13
+ def initialize(name, surname)
14
+ @name=name
15
+ @surname=surname
16
+ end
17
+
18
+ # Se imprimen los datos por pantalla
19
+ #
20
+ # @return [String] nombre y apellido del individuo
21
+ def to_s
22
+ puts "#{@name} #{@surname}"
23
+ end
24
+ end
25
+
26
+
27
+ # Clase *Patient*
28
+ #
29
+ # Clase heredada de la clase _Person_,
30
+ # que indica si un individuo es paciente de una consulta
31
+ class Patient < Person
32
+ attr_accessor :data, :peso, :talla, :edad, :sexo, :cintura, :cadera, :active
33
+
34
+ include Comparable
35
+
36
+ # Se crea la clase Patient con sus respectivos datos
37
+ def initialize (name, surname, peso, talla, edad ,sexo, cintura, cadera, active)
38
+
39
+ super(name,surname)
40
+ @peso=peso
41
+ @talla=talla
42
+ @edad=edad
43
+ @sexo=sexo
44
+ @cintura=cintura
45
+ @cadera=cadera
46
+ @active=active
47
+ #@data=Anthro_data.new(peso, talla, edad ,sexo, cintura, cadera)
48
+
49
+ if (sexo == "hombre")
50
+ @sexo = 1;
51
+ elsif (sexo == "mujer")
52
+ @sexo = 0;
53
+ end
54
+ end
55
+
56
+ # Método para el cálculo de IMC
57
+ #
58
+ # @return [Float] devuelve el índice de masa corporal
59
+ def imc
60
+ @peso/(@talla * @talla)
61
+ end
62
+
63
+ # Clasificación del invividuo según su IMC
64
+ #
65
+ # @return [String] devuelve el grado del IMC
66
+ def imc_table
67
+ r_imc = @peso/(@talla * @talla)
68
+ if (r_imc < 18.5)
69
+ "Delgadez"
70
+ elsif (r_imc > 18.5 && r_imc < 24.9)
71
+ "Adecuado"
72
+ elsif (r_imc > 25 && r_imc < 29.9)
73
+ "Sobrepeso"
74
+ elsif (r_imc > 30 && r_imc < 34.9)
75
+ "Obesidad Grado 1"
76
+ elsif (r_imc > 35 && r_imc < 39.9)
77
+ "Obesidad Grado 2"
78
+ elsif (r_imc > 40)
79
+ "Obesidad Grado 3"
80
+ end
81
+ end
82
+
83
+ #Método mixin del módulo Enumerable para enumerar
84
+ def <=>(other)
85
+ return nil unless other.is_a?Patient
86
+ imc <=> other.imc
87
+ end
88
+
89
+ # Se imprime por pantalla
90
+ #
91
+ # @return [String] datos del paciente formateados
92
+ def to_s
93
+ puts "#{@name} #{@surname}: #{@peso}, #{@talla}, #{@edad}, #{@sexo}, #{@cintura}, #{@cadera}"
94
+ end
95
+
96
+ def peso_teorico_ideal
97
+ (((@talla*100)-150)*0.75+50).round(2)
98
+ end
99
+
100
+ def gasto_energetico_basal
101
+
102
+ formula = (10*@peso)+(6.25*@talla*100)-(5*@edad)
103
+
104
+ if sexo == "mujer"
105
+ formula-161
106
+ else
107
+ formula+5
108
+ end
109
+ end
110
+
111
+
112
+ def efecto_termogeno
113
+ (self.gasto_energetico_basal*0.1).round(2)
114
+ end
115
+
116
+ def gasto_actividad_fisica
117
+
118
+ if active == 0
119
+ self.gasto_energetico_basal*0
120
+ elsif active == 1
121
+ (self.gasto_energetico_basal*0.12).round(2)
122
+ elsif active == 2
123
+ (self.gasto_energetico_basal*0.27).round(2)
124
+ else
125
+ (self.gasto_energetico_basal*0.54).round(2)
126
+ end
127
+
128
+ end
129
+
130
+ def gasto_energetico_total
131
+ (self.gasto_energetico_basal + self.efecto_termogeno + self.gasto_actividad_fisica).round(2)
132
+ end
133
+
134
+
135
+
136
+
137
+
138
+ end
@@ -0,0 +1,3 @@
1
+ module Nutritag
2
+ VERSION = "0.1.1"
3
+ end
@@ -0,0 +1,43 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "nutritag/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "nutritag"
8
+ spec.version = Nutritag::VERSION
9
+ spec.authors = ["Alberto Dorta"]
10
+ spec.email = ["alu0100785630@ull.edu.es"]
11
+
12
+ spec.summary = %q{Sin funciones}
13
+ spec.description = %q{Implementación de una Etiqueta Nutricional}
14
+ spec.homepage = "https://github.com/ULL-ESIT-LPP-1819/tdd-alu0100785630.git"
15
+
16
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
18
+ # if spec.respond_to?(:metadata)
19
+ # spec.metadata["allowed_push_host"] = "https://github.com/ULL-ESIT-LPP-1819/tdd-alu0100785630.git"
20
+ # else
21
+ # raise "RubyGems 2.0 or newer is required to protect against " \
22
+ # "public gem pushes."
23
+ # end
24
+
25
+ # Specify which files should be added to the gem when it is released.
26
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
27
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
28
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
29
+ end
30
+ spec.bindir = "exe"
31
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ["lib"]
33
+
34
+ spec.add_development_dependency "bundler", "~> 1.16"
35
+ spec.add_development_dependency "rake", "~> 10.0"
36
+ spec.add_development_dependency "rspec", "~> 3.0"
37
+
38
+ spec.add_development_dependency "guard"
39
+ spec.add_development_dependency "guard-rspec"
40
+ spec.add_development_dependency "guard-bundler"
41
+
42
+ spec.add_development_dependency "coveralls"
43
+ end
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nutritag
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Alberto Dorta
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-01-09 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.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
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: Implementación de una Etiqueta Nutricional
112
+ email:
113
+ - alu0100785630@ull.edu.es
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".coveralls.yml"
119
+ - ".gitignore"
120
+ - ".rspec"
121
+ - ".travis.yml"
122
+ - Gemfile
123
+ - Gemfile.lock
124
+ - Guardfile
125
+ - README.md
126
+ - Rakefile
127
+ - bin/console
128
+ - bin/setup
129
+ - doc/Anthro_data.html
130
+ - doc/Etiqueta.html
131
+ - doc/List.html
132
+ - doc/Node.html
133
+ - doc/Nutritag.html
134
+ - doc/Patient.html
135
+ - doc/Person.html
136
+ - doc/_index.html
137
+ - doc/class_list.html
138
+ - doc/css/common.css
139
+ - doc/css/full_list.css
140
+ - doc/css/style.css
141
+ - doc/file.README.html
142
+ - doc/file_list.html
143
+ - doc/frames.html
144
+ - doc/index.html
145
+ - doc/js/app.js
146
+ - doc/js/full_list.js
147
+ - doc/js/jquery.js
148
+ - doc/method_list.html
149
+ - doc/top-level-namespace.html
150
+ - lib/nutritag.rb
151
+ - lib/nutritag/label.rb
152
+ - lib/nutritag/list.rb
153
+ - lib/nutritag/menu.rb
154
+ - lib/nutritag/person.rb
155
+ - lib/nutritag/version.rb
156
+ - nutritag.gemspec
157
+ homepage: https://github.com/ULL-ESIT-LPP-1819/tdd-alu0100785630.git
158
+ licenses: []
159
+ metadata: {}
160
+ post_install_message:
161
+ rdoc_options: []
162
+ require_paths:
163
+ - lib
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ requirements: []
175
+ rubyforge_project:
176
+ rubygems_version: 2.7.7
177
+ signing_key:
178
+ specification_version: 4
179
+ summary: Sin funciones
180
+ test_files: []