Sha256: c1300ae1a26fdf61acae3c3756e4de5cc803440db640e2a785ad930228e78b35

Contents?: true

Size: 1.57 KB

Versions: 19

Compression:

Stored size: 1.57 KB

Contents

#!/usr/bin/env ruby -w
# encoding: UTF-8
#
# = Lap.rb -- Fit4Ruby - FIT file processing library for Ruby
#
# Copyright (c) 2014, 2015 by Chris Schlaeger <cs@taskjuggler.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#

require 'fit4ruby/FitDataRecord'
require 'fit4ruby/RecordAggregator'

module Fit4Ruby

  class Lap < FitDataRecord

    include RecordAggregator

    attr_reader :records

    def initialize(records, previous_lap, field_values)
      super('lap')
      @meta_field_units['avg_stride_length'] = 'm'
      @records = records
      @previous_lap = previous_lap

      if previous_lap && previous_lap.records && previous_lap.records.last
        # Set the start time of the new lap to the timestamp of the last record
        # of the previous lap.
        @start_time = previous_lap.records.last.timestamp
      elsif records.first
        # Or to the timestamp of the first record.
        @start_time = records.first.timestamp
      end

      if records.last
        @total_elapsed_time = records.last.timestamp - @start_time
      end

      set_field_values(field_values)
    end

    def check(index)
      unless @message_index == index
        Log.fatal "message_index must be #{index}, not #{@message_index}"
      end
    end

    # Compute the average stride length for this Session.
    def avg_stride_length
      return nil unless @total_distance && @total_strides

      @total_distance / (@total_strides * 2.0)
    end

  end

end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
fit4ruby-3.3.0 lib/fit4ruby/Lap.rb
fit4ruby-3.2.0 lib/fit4ruby/Lap.rb
fit4ruby-3.1.0 lib/fit4ruby/Lap.rb
fit4ruby-3.0.0 lib/fit4ruby/Lap.rb
fit4ruby-2.0.0 lib/fit4ruby/Lap.rb
fit4ruby-1.7.0 lib/fit4ruby/Lap.rb
fit4ruby-1.6.2 lib/fit4ruby/Lap.rb
fit4ruby-1.6.1 lib/fit4ruby/Lap.rb
fit4ruby-1.6.0 lib/fit4ruby/Lap.rb
fit4ruby-1.5.1 lib/fit4ruby/Lap.rb
fit4ruby-1.5.0 lib/fit4ruby/Lap.rb
fit4ruby-1.4.0 lib/fit4ruby/Lap.rb
fit4ruby-1.3.0 lib/fit4ruby/Lap.rb
fit4ruby-1.2.0 lib/fit4ruby/Lap.rb
fit4ruby-1.1.0 lib/fit4ruby/Lap.rb
fit4ruby-1.0.1 lib/fit4ruby/Lap.rb
fit4ruby-1.0.0 lib/fit4ruby/Lap.rb
fit4ruby-0.0.12 lib/fit4ruby/Lap.rb
fit4ruby-0.0.11 lib/fit4ruby/Lap.rb