class Stressfactor::Interval

Attributes

end_point[RW]
start_point[RW]

Public Class Methods

new(start_point, end_point) click to toggle source
# File lib/stressfactor/interval.rb, line 5
def initialize(start_point, end_point)
  @start_point = start_point
  @end_point = end_point
end

Public Instance Methods

distance() click to toggle source

distance in km

# File lib/stressfactor/interval.rb, line 18
def distance
  end_point.haversine_distance_from(start_point)
end
grade() click to toggle source

grade in percent incline/decline

# File lib/stressfactor/interval.rb, line 23
def grade
  elevation_change = end_point.elevation - start_point.elevation
  # Normalize to meters
  distance_change = distance * 1000
  radians = Math.atan(elevation_change / distance_change)
  180 * radians / Math::PI
end
time(options={}) click to toggle source

time in seconds

# File lib/stressfactor/interval.rb, line 11
def time(options={})
  delta = end_point.time - start_point.time
  delta /= 60.0 if options[:units] == :minutes
  delta
end
to_s() click to toggle source
# File lib/stressfactor/interval.rb, line 31
def to_s
  "i: #{time}s | #{distance * 1000}m | #{grade}%"
end