nutritag 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []