Module: Strava::Models::Mixins::ElevationDifference

Extended by:
ActiveSupport::Concern
Included in:
Split
Defined in:
lib/strava/models/mixins/elevation_difference.rb

Overview

Provides elevation difference conversion and formatting methods.

Elevation difference represents the net elevation change (can be positive or negative) for a split or segment. This differs from elevation_gain which only counts upward movement.

This mixin adds the elevation_difference property and helper methods to convert and format it in meters or feet.

Examples:

Using elevation difference helpers

split = activity.splits_metric.first
puts split.elevation_difference              # => -15.2 (meters, downhill)
puts split.elevation_difference_s            # => "-15.2m"
puts split.elevation_difference_in_feet_s    # => "-49.9ft"

Instance Method Summary collapse

Instance Method Details

#elevation_difference_in_feetFloat

Returns elevation difference in feet.

Returns:

  • (Float)

    Elevation difference in feet



35
36
37
# File 'lib/strava/models/mixins/elevation_difference.rb', line 35

def elevation_difference_in_feet
  elevation_difference * 3.28084
end

#elevation_difference_in_feet_sString?

Returns formatted elevation difference in feet.

Returns:

  • (String, nil)

    Formatted elevation (e.g., "49.9ft" or "-49.9ft")



64
65
66
67
68
# File 'lib/strava/models/mixins/elevation_difference.rb', line 64

def elevation_difference_in_feet_s
  return if elevation_difference.nil?

  format('%gft', format('%.1f', elevation_difference_in_feet))
end

#elevation_difference_in_metersFloat

Returns elevation difference in meters (same as elevation_difference).

Returns:

  • (Float)

    Elevation difference in meters



44
45
46
# File 'lib/strava/models/mixins/elevation_difference.rb', line 44

def elevation_difference_in_meters
  elevation_difference
end

#elevation_difference_in_meters_sString?

Returns formatted elevation difference in meters.

Returns:

  • (String, nil)

    Formatted elevation (e.g., "15.2m" or "-15.2m")



53
54
55
56
57
# File 'lib/strava/models/mixins/elevation_difference.rb', line 53

def elevation_difference_in_meters_s
  return if elevation_difference.nil?

  format('%gm', format('%.1f', elevation_difference_in_meters))
end

#elevation_difference_sString?

Returns default formatted elevation difference (meters).

Returns:

  • (String, nil)

    Formatted elevation (e.g., "15.2m" or "-15.2m")



75
76
77
# File 'lib/strava/models/mixins/elevation_difference.rb', line 75

def elevation_difference_s
  elevation_difference_in_meters_s
end