Class: Nutri::Dieta

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/nutri/dieta.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(paciente) ⇒ type

initialize

Parameters:

  • patiente (Paciente)
    description


18
19
20
21
22
23
24
25
26
27
# File 'lib/nutri/dieta.rb', line 18

def initialize(paciente)
	@peso_teorico_ideal = (paciente.talla - 150) * 0.75 + 50
	@gasto_energetico_basal = (10 * paciente.peso) + (6.25 * paciente.talla) - (5 * paciente.edad) + ((paciente.sexo==1)? -161 : 5)
	@efecto_termogeno = @gasto_energetico_basal * 0.1
	@factor_actividad_fisica = 0.0
	@gasto_actividad_fisica = @gasto_energetico_basal * @factor_actividad_fisica
	@gasto_energetico_total = @gasto_energetico_basal * @efecto_termogeno + @gasto_actividad_fisica
	@food = Listas.new()
	@food_energy = 0.0
end

Instance Attribute Details

#factor_actividad_fisicaObject

getter y setter



11
12
13
# File 'lib/nutri/dieta.rb', line 11

def factor_actividad_fisica
  @factor_actividad_fisica
end

#food_energyObject

getter y setter



11
12
13
# File 'lib/nutri/dieta.rb', line 11

def food_energy
  @food_energy
end

#gasto_energetico_totalObject

getter y setter



11
12
13
# File 'lib/nutri/dieta.rb', line 11

def gasto_energetico_total
  @gasto_energetico_total
end

Instance Method Details

#analizestring

analize given data and calculate if patientes consumed food was enough or too much for his phys activity

Returns:

  • (string)
    too much/less/right


70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/nutri/dieta.rb', line 70

def analize()
	difference = @gasto_energetico_total - @food_energy
	puts "Consumed Energy:\t#{@food_energy.round(2)}\nBurned Energy:\t\t#{@gasto_energetico_total.round(2)}\n\n"
	if difference.abs <= @gasto_energetico_total * 0.1
		puts "La cantidad de la alimentación es suficiente para cubrir las exigencias calóricas del organismo y mantiene el equilibrio de su balance.\n Difference: #{difference.round(2)}"
	elsif @food_energy < @gasto_energetico_total
		puts "La cantidad de la alimentación no es suficiente para cubrir las exigencias calóricas del organismo.\nTomaste #{difference.round(2)}kcal/g muy poco."
	elsif @food_energy > @gasto_energetico_total
		puts "Ha consumido demasiado calóricas. No mantiene el equilibrio de su balance.\nTomaste #{difference.round(2)}kcal/g demasiado."
	# else puts "Strange ERROR"
	end
	return difference
end

#eat(item) ⇒ Object

add eaten item to food

Parameters:

  • item (Nutri)
    Item what was eate

Returns:

  • no return


34
35
36
37
# File 'lib/nutri/dieta.rb', line 34

def eat(item)
	@food.push(item)
	@food_energy = @food.reduce(0) { |sum, obj| sum + obj.energia.to_i }
end

#sport(intensity) ⇒ Object

change factor of phys activity

Parameters:

  • intensity (int)
    intensity from 0 to 3

Returns:

  • no return


44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/nutri/dieta.rb', line 44

def sport(intensity)
	
	if intensity == 0 || intensity == "reposo"
		@factor_actividad_fisica = 0.0
	elsif intensity == 1 || intensity == "ligera"
		@factor_actividad_fisica = 0.12
	elsif intensity == 2 || intensity == "moderada"
		@factor_actividad_fisica = 0.27
	elsif intensity == 3 || intensity == "intensa"
		@factor_actividad_fisica = 0.54
	end
	
	@gasto_actividad_fisica = @gasto_energetico_basal * @factor_actividad_fisica
	@gasto_energetico_total = @gasto_energetico_basal * @efecto_termogeno + @gasto_actividad_fisica
	return @factor_actividad_fisica
end