Class: Operaciones

Inherits:
Datos
  • Object
show all
Includes:
Comparable
Defined in:
lib/alimentos/antropometricos.rb

Overview

Esta clase representa los datos antopométricos de una persona x

Author:

  • Omar Pérez Znakar

Instance Attribute Summary collapse

Attributes inherited from Datos

#dni, #nombre

Instance Method Summary collapse

Constructor Details

#initialize(nombre, dni, actividad, peso, altura, hora, edad, sexo, cintura, cadera, tricipital, bicipital, subescapular, suprailiaco, brazo) ⇒ Operaciones

Returns a new instance of Operaciones.



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/alimentos/antropometricos.rb', line 23

def initialize(nombre,dni,actividad,peso,altura,hora,edad,sexo,cintura,cadera,tricipital,bicipital,subescapular,suprailiaco,brazo)
    	super(nombre,dni)
   	@peso = peso
   	@altura = altura
   	@hora = hora
   	@edad = edad
   	@sexo = sexo
   	@cintura = cintura
   	@cadera = cadera
   	@tricipital = tricipital
   	@bicipital = bicipital
   	@subescapular = subescapular
   	@suprailiaco = suprailiaco
   	@brazo = brazo
   	@actividad = actividad
end

Instance Attribute Details

#alturaObject (readonly)

Returns the value of attribute altura.



22
23
24
# File 'lib/alimentos/antropometricos.rb', line 22

def altura
  @altura
end

#edadObject (readonly)

Returns the value of attribute edad.



22
23
24
# File 'lib/alimentos/antropometricos.rb', line 22

def edad
  @edad
end

#horaObject (readonly)

Returns the value of attribute hora.



22
23
24
# File 'lib/alimentos/antropometricos.rb', line 22

def hora
  @hora
end

#imcObject (readonly)

Esta función consiste en calcular el imc

Returns:

  • imc



105
106
107
# File 'lib/alimentos/antropometricos.rb', line 105

def imc
  @imc
end

#pesoObject (readonly)

Returns the value of attribute peso.



22
23
24
# File 'lib/alimentos/antropometricos.rb', line 22

def peso
  @peso
end

#sexoObject (readonly)

Returns the value of attribute sexo.



22
23
24
# File 'lib/alimentos/antropometricos.rb', line 22

def sexo
  @sexo
end

Instance Method Details

#<=>(another) ⇒ Object

Esta funciión consiste en una sobrecarga de los aperadores <=> para que se puedan comparar dos objetos a través de las grasas



166
167
168
# File 'lib/alimentos/antropometricos.rb', line 166

def <=> another
gasto_energetico_total <=> another.gasto_energetico_total
end

#bicipitalObject

Esta función consiste en calcular la media de la cintura de los valores dado

Returns:

  • media cintura



60
61
62
63
64
65
# File 'lib/alimentos/antropometricos.rb', line 60

def bicipital
   	suma = 0
   	@bicipital.each {|elemento| suma = suma + elemento}
   	div = 0
   	div = suma / @bicipital.size()
end

#brazoObject

Esta función consiste en calcular la media de la cintura de los valores dado

Returns:

  • media cintura



96
97
98
99
100
101
# File 'lib/alimentos/antropometricos.rb', line 96

def brazo
   	suma = 0
   	@brazo.each {|elemento| suma = suma + elemento}
   	div = 0
   	div = suma / @brazo.size()
end

#caderaObject

Esta función consiste en calcular la media de la cintura de los valores dado

Returns:

  • media cintura



51
52
53
54
55
56
# File 'lib/alimentos/antropometricos.rb', line 51

def cadera
   	suma = 0
   	@cadera.each {|elemento| suma = suma + elemento}
   	div = 0
   	div = suma / @cadera.size()
end

#cinturaObject

Esta función consiste en calcular la media de la cintura de los valores dado

Returns:

  • media cintura



42
43
44
45
46
47
# File 'lib/alimentos/antropometricos.rb', line 42

def cintura
   	suma = 0
   	@cintura.each {|elemento| suma = suma + elemento}
   	div = 0
   	div = suma / @cintura.size()
end

#gasto_energetico_totalObject

Esta función consiste el cálculo de los gastos energéticos totales

Returns:

  • gastos energéticos totales



146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/alimentos/antropometricos.rb', line 146

def gasto_energetico_total()
	@peso_teorico_total = (@altura - 150) * (0.75 + 50)
	if sexo==0 
		@gasto_energetico_basal = (10*@peso) + (6.25 * @altura) - (5*@edad) - 161
	else
		@gasto_energetico_basal = (10*peso) + (6.25 * altura) - (5*edad) + 5
	end	
	@efecto_termogeno = @gasto_energetico_basal * 0.10
	case @actividad
    		when ("Reposo") then @factor = 0.0
    		when ("Ligera") then @factor = 0.12
    		when ("Moderada") then @factor = 0.27
    		when ("Intensa") then @factor = 0.54
	end
	@gasto_actividad_fisica = @gasto_energetico_basal * @factor
	
	@gasto_energetico_total = @gasto_energetico_basal + @efecto_termogeno + @gasto_actividad_fisica
end

#porcentaje_grasaObject

Esta función consiste calcular en que intervalo de porcentaje de grasa

Returns:

  • nombre del intervalo de porcentaje de grasa



112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/alimentos/antropometricos.rb', line 112

def porcentaje_grasa()
    	@porcentaje = (1.2 * @indice) + (0.23 * @edad) - (10.8 * @sexo) - 5.4
   		@resultado = case @porcentaje
        		when (-Float::INFINITY..18.4) then @resultado ="Bajo peso"
        		when (18.5..24.9) then @resultado ="Adecuado"
        		when (25.0..29.9) then @resultado ="Sobrepeso"
        		when (30.0..34.9) then @resultado ="Obesidad grado 1"
        		when (35.0..39.9) then @resultado ="Obesidad grado 2"
        		when (40.0..Float::INFINITY) then @resultado ="Obesidad grado 2"
    	end
    	@resultado
end

#rccObject

Esta función consiste calcular en que intervalo de rcc

Returns:

  • nombre del intervalo del rcc



127
128
129
130
131
132
133
134
135
136
# File 'lib/alimentos/antropometricos.rb', line 127

def rcc()
   	@rcc = cintura / cadera
   	case @rcc
       		when (0.83..0.88) then @resultado ="Bajo"
       		when (0.89..0.95) then @resultado ="Moderado"
       		when (0.96..1.01) then @resultado ="Alto"
       		when (1.02..Float::INFINITY) then @resultado ="Muy alto"
   	end
   	@resultado	
end

#subescapularObject

Esta función consiste en calcular la media del subescapular de los valores dado

Returns:

  • media subescapular



78
79
80
81
82
83
# File 'lib/alimentos/antropometricos.rb', line 78

def subescapular
   	suma = 0
   	@subescapular.each {|elemento| suma = suma + elemento}
   	div = 0
   	div = suma / @subescapular.size()
end

#suprailiacoObject

Esta función consiste en calcular la media del suprailiaco de los valores dado

Returns:

  • media suprailiaco



87
88
89
90
91
92
# File 'lib/alimentos/antropometricos.rb', line 87

def suprailiaco
   	suma = 0
   	@suprailiaco.each {|elemento| suma = suma + elemento}
   	div = 0
   	div = suma / @suprailiaco.size()
end

#to_sObject

Returns valores datos antropométricos.

Returns:

  • valores datos antropométricos



139
140
141
# File 'lib/alimentos/antropometricos.rb', line 139

def to_s
	"#{cintura}\n#{cadera}\n#{bicipital}\n#{tricipital}\n#{subescapular}\n#{suprailiaco}\n#{brazo}\n#{imc}\n#{porcentaje_grasa}\n#{rcc}\n"
end

#tricipitalObject

Esta función consiste en calcular la media del tricipital de los valores dado

Returns:

  • media tricipital



69
70
71
72
73
74
# File 'lib/alimentos/antropometricos.rb', line 69

def tricipital
   	suma = 0
   	@tricipital.each {|elemento| suma = suma + elemento}
   	div = 0
   	div = suma / @tricipital.size()
end