Module: Strava::Models::Mixins::TotalElevationGain

Extended by:
ActiveSupport::Concern
Included in:
DetailedActivity, DetailedSegment, Lap, SummaryActivity
Defined in:
lib/strava/models/mixins/total_elevation_gain.rb

Overview

Provides total elevation gain conversion and formatting methods.

Total elevation gain represents the cumulative upward elevation change during an activity. This is distinct from elevation_gain - this property is typically used for activities while elevation_gain is used for routes.

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

Examples:

Using total elevation gain helpers

activity = client.activity(1234567890)
puts activity.total_elevation_gain              # => 725.3 (meters)
puts activity.total_elevation_gain_s            # => "725.3m"
puts activity.total_elevation_gain_in_feet_s    # => "2379.6ft"

Instance Method Summary collapse

Instance Method Details

#total_elevation_gain_in_feetFloat

Returns total elevation gain in feet.

Returns:

  • (Float)

    Total elevation gain in feet



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

def total_elevation_gain_in_feet
  total_elevation_gain * 3.28084
end

#total_elevation_gain_in_feet_sString?

Returns formatted total elevation gain in feet.

Returns:

  • (String, nil)

    Formatted elevation (e.g., "2379.6ft")



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

def total_elevation_gain_in_feet_s
  return if total_elevation_gain.nil?

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

#total_elevation_gain_in_metersFloat

Returns total elevation gain in meters (same as total_elevation_gain).

Returns:

  • (Float)

    Total elevation gain in meters



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

def total_elevation_gain_in_meters
  total_elevation_gain
end

#total_elevation_gain_in_meters_sString?

Returns formatted total elevation gain in meters.

Returns:

  • (String, nil)

    Formatted elevation (e.g., "725.3m")



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

def total_elevation_gain_in_meters_s
  return if total_elevation_gain.nil?

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

#total_elevation_gain_sString?

Returns default formatted total elevation gain (meters).

Returns:

  • (String, nil)

    Formatted elevation (e.g., "725.3m")



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

def total_elevation_gain_s
  total_elevation_gain_in_meters_s
end