Sha256: 6009bc09a99f1e47144f2ba64ec7de05d7e3add228e7407c9899fb4249b3fac8

Contents?: true

Size: 1.74 KB

Versions: 6

Compression:

Stored size: 1.74 KB

Contents

#!/usr/bin/env ruby -w
# encoding: UTF-8
#
# = Record.rb -- Fit4Ruby - FIT file processing library for Ruby
#
# Copyright (c) 2014, 2020 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/FDR_DevField_Extension'

module Fit4Ruby

  # The Record corresponds to the record FIT message. A Record is a basic set
  # of primary measurements that are associated with a certain timestamp.
  class Record < FitDataRecord

    include FDR_DevField_Extension

    # Create a new Record object.
    # @param fit_entity The FitEntity this record belongs to
    # @param field_values [Hash] Hash that provides initial values for certain
    #        fields.
    def initialize(top_level_record, field_values = {})
      super('record')
      @top_level_record = top_level_record
      @meta_field_units['pace'] = 'min/km'
      @meta_field_units['run_cadence'] = 'spm'

      # Create instance variables for developer fields
      create_dev_field_instance_variables

      set_field_values(field_values)
    end

    def run_cadence
      if @cadence && @fractional_cadence
        (@cadence + @fractional_cadence) * 2
      elsif @cadence
        @cadence * 2
      else
        nil
      end
    end

    # Convert the 'speed' or 'enhanced_speed' field into a running pace. The
    # pace is measured in minutes per Kilometer.
    # @return [Float or nil] pace for this Record in m/s or nil if not
    #         available.
    def pace
      return nil unless @speed || @enhanced_speed

      1000.0 / ((@speed || @enhanced_speed) * 60.0)
    end

  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fit4ruby-3.13.0 lib/fit4ruby/Record.rb
fit4ruby-3.12.0 lib/fit4ruby/Record.rb
fit4ruby-3.11.0 lib/fit4ruby/Record.rb
fit4ruby-3.10.0 lib/fit4ruby/Record.rb
fit4ruby-3.9.0 lib/fit4ruby/Record.rb
fit4ruby-3.8.0 lib/fit4ruby/Record.rb