module Fit4Ruby::Converters

Constants

FACTORS
OFFSETS

Public Instance Methods

conversion_factor(from_unit, to_unit) click to toggle source
# File lib/fit4ruby/Converters.rb, line 28
def conversion_factor(from_unit, to_unit)
  return 1.0 if from_unit == to_unit

  unless FACTORS.include?(from_unit)
    Log.fatal 'No conversion factors defined for unit ' \
              "'#{from_unit}' to '#{to_unit}'"
  end

  factor = FACTORS[from_unit][to_unit]
  if factor.nil?
    Log.fatal "No conversion factor from '#{from_unit}' to '#{to_unit}' " \
              'defined.'
  end

  factor
end
conversion_offset(from_unit, to_unit) click to toggle source
# File lib/fit4ruby/Converters.rb, line 45
def conversion_offset(from_unit, to_unit)
  return 0.0 if from_unit == to_unit || !OFFSETS.include?(from_unit) ||
                !OFFSETS[from_unit].include?(to_unit)

  OFFSETS[from_unit][to_unit]
end
fit_time_to_time(ft) click to toggle source
# File lib/fit4ruby/Converters.rb, line 97
def fit_time_to_time(ft)
  Time.parse('1989-12-31T00:00:00+00:00') + ft.to_i
end
secsToDHMS(secs) click to toggle source
# File lib/fit4ruby/Converters.rb, line 82
def secsToDHMS(secs)
  secs = secs.to_i
  s = secs % 60
  mins = secs / 60
  m = mins % 60
  hours = mins / 60
  h = hours % 24
  d = hours / 24
  "#{d} days #{h}:#{'%02d' % m}:#{'%02d' % s}"
end
secsToHM(secs) click to toggle source
# File lib/fit4ruby/Converters.rb, line 64
def secsToHM(secs)
  secs = secs.to_i
  s = secs % 60
  mins = secs / 60
  m = mins % 60
  h = mins / 60
  "#{h}:#{'%02d' % m}"
end
secsToHMS(secs) click to toggle source
# File lib/fit4ruby/Converters.rb, line 73
def secsToHMS(secs)
  secs = secs.to_i
  s = secs % 60
  mins = secs / 60
  m = mins % 60
  h = mins / 60
  "#{h}:#{'%02d' % m}:#{'%02d' % s}"
end
speedToPace(speed, distance = 1000.0) click to toggle source
# File lib/fit4ruby/Converters.rb, line 52
def speedToPace(speed, distance = 1000.0)
  if speed && speed > 0.01
    # We only show 2 fractional digits, so make sure we round accordingly
    # before we crack it up.
    pace = (distance.to_f / (speed * 60.0)).round(2)
    int, dec = pace.divmod 1
    "#{int}:#{'%02d' % (dec * 60)}"
  else
    "-:--"
  end
end
time_to_fit_time(t) click to toggle source
# File lib/fit4ruby/Converters.rb, line 93
def time_to_fit_time(t)
  (t - Time.parse('1989-12-31T00:00:00+00:00')).to_i
end