Class: M26::AgeGrade

Inherits:
Object
  • Object
show all
Defined in:
lib/m26_age_grade.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(a1, a2) ⇒ AgeGrade

Returns a new instance of AgeGrade.



13
14
15
# File 'lib/m26_age_grade.rb', line 13

def initialize(a1, a2)
  @age1, @age2 = a1.to_f, a2.to_f
end

Instance Attribute Details

#age1Object

Returns the value of attribute age1.



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

def age1
  @age1
end

#age2Object

Returns the value of attribute age2.



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

def age2
  @age2
end

Instance Method Details

#maxpulse(age) ⇒ Object



43
44
45
46
47
48
# File 'lib/m26_age_grade.rb', line 43

def maxpulse(age)
  p = 220 - age
  p = 196 if p > 196  # age 24 is "peak" (220-24=196)
  p = 1   if p < 1
  p
end

#maxpulse1Object



35
36
37
# File 'lib/m26_age_grade.rb', line 35

def maxpulse1
  maxpulse(age1)
end

#maxpulse2Object



39
40
41
# File 'lib/m26_age_grade.rb', line 39

def maxpulse2
  maxpulse(age2)
end

#predict(elapsed_time, formula = 'maxpulse') ⇒ Object



19
20
21
22
23
24
25
# File 'lib/m26_age_grade.rb', line 19

def predict(elapsed_time, formula='maxpulse')
  if formula.to_s == 'maxpulse'
    predict_maxpulse(elapsed_time)
  else
    nil
  end
end

#predict_maxpulse(elapsed_time) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/m26_age_grade.rb', line 27

def predict_maxpulse(elapsed_time)
  p1, p2 = maxpulse1.to_f, maxpulse2.to_f
  ratio  = p1 / p2
  psecs  = ratio * elapsed_time.secs.to_f
  ptime  = M26::ElapsedTime.new(psecs)
  ptime.as_hhmmss
end