Module: Strava::Models::Mixins::Distance
- Extended by:
- ActiveSupport::Concern
- Included in:
- ActivityTotal, DetailedActivity, DetailedGear, DetailedSegment, DetailedSegmentEffort, ExplorerSegment, Lap, Route, Split, SummaryActivity, SummaryGear, SummarySegment, SummarySegmentEffort
- Defined in:
- lib/strava/models/mixins/distance.rb
Overview
Provides distance conversion and formatting methods.
This mixin is included in models that have a distance property, such as activities, laps, segments, and routes. It provides helper methods to convert and format distances in various units.
Instance Method Summary collapse
-
#distance_in_feet ⇒ Float
Distance in feet.
-
#distance_in_kilometers ⇒ Float
Distance in kilometers.
-
#distance_in_kilometers_s ⇒ String?
Formatted distance in kilometers (e.g., "10.0km").
-
#distance_in_meters ⇒ Float
Distance in meters.
-
#distance_in_meters_s ⇒ String?
Formatted distance in meters (e.g., "10000m").
-
#distance_in_miles ⇒ Float
Distance in miles.
-
#distance_in_miles_s ⇒ String?
Formatted distance in miles (e.g., "6.21mi").
-
#distance_in_yards ⇒ Float
Distance in yards.
-
#distance_in_yards_s ⇒ String?
Formatted distance in yards (e.g., "10936.1yd").
-
#distance_s ⇒ String?
Default formatted distance (same as distance_in_kilometers_s).
Instance Method Details
#distance_in_feet ⇒ Float
Returns Distance in feet.
34 35 36 |
# File 'lib/strava/models/mixins/distance.rb', line 34 def distance_in_feet distance * 3.28084 end |
#distance_in_kilometers ⇒ Float
Returns Distance in kilometers.
70 71 72 |
# File 'lib/strava/models/mixins/distance.rb', line 70 def distance_in_kilometers distance_in_meters / 1000 end |
#distance_in_kilometers_s ⇒ String?
Returns Formatted distance in kilometers (e.g., "10.0km").
75 76 77 78 79 |
# File 'lib/strava/models/mixins/distance.rb', line 75 def distance_in_kilometers_s return unless distance&.positive? format('%gkm', format('%.2f', distance_in_kilometers)) end |
#distance_in_meters ⇒ Float
Returns Distance in meters.
29 30 31 |
# File 'lib/strava/models/mixins/distance.rb', line 29 def distance_in_meters distance end |
#distance_in_meters_s ⇒ String?
Returns Formatted distance in meters (e.g., "10000m").
63 64 65 66 67 |
# File 'lib/strava/models/mixins/distance.rb', line 63 def distance_in_meters_s return unless distance&.positive? format('%gm', format('%d', distance_in_meters)) end |
#distance_in_miles ⇒ Float
Returns Distance in miles.
39 40 41 |
# File 'lib/strava/models/mixins/distance.rb', line 39 def distance_in_miles distance_in_meters * 0.00062137 end |
#distance_in_miles_s ⇒ String?
Returns Formatted distance in miles (e.g., "6.21mi").
44 45 46 47 48 |
# File 'lib/strava/models/mixins/distance.rb', line 44 def distance_in_miles_s return unless distance&.positive? format('%gmi', format('%.2f', distance_in_miles)) end |
#distance_in_yards ⇒ Float
Returns Distance in yards.
51 52 53 |
# File 'lib/strava/models/mixins/distance.rb', line 51 def distance_in_yards distance_in_meters * 1.09361 end |
#distance_in_yards_s ⇒ String?
Returns Formatted distance in yards (e.g., "10936.1yd").
56 57 58 59 60 |
# File 'lib/strava/models/mixins/distance.rb', line 56 def distance_in_yards_s return unless distance&.positive? format('%gyd', format('%.1f', distance_in_yards)) end |
#distance_s ⇒ String?
Returns Default formatted distance (same as distance_in_kilometers_s).
82 83 84 |
# File 'lib/strava/models/mixins/distance.rb', line 82 def distance_s distance_in_kilometers_s end |