Class: Strava::Models::DetailedSegmentEffort

Inherits:
Response show all
Includes:
Mixins::Distance, Mixins::ElapsedTime, Mixins::MovingTime, Mixins::StartDateLocal
Defined in:
lib/strava/models/detailed_segment_effort.rb

Overview

Represents detailed information about a segment effort within an activity.

A segment effort is an attempt at a defined segment (a portion of road or trail). The detailed version includes comprehensive statistics, rankings, achievements, and sensor data for the effort.

Examples:

Accessing detailed segment effort

effort = client.segment_effort(1234567890)

puts "Segment: #{effort.name}"
puts "Time: #{effort.elapsed_time_in_hours_s}"
puts "Moving time: #{effort.moving_time_in_hours_s}"
puts "Distance: #{effort.distance_s}"

if effort.average_watts
  puts "Avg Power: #{effort.average_watts}W"
end

if effort.average_heartrate
  puts "Avg HR: #{effort.average_heartrate} bpm (max: #{effort.max_heartrate})"
end

# Check rankings
puts "KOM Rank: #{effort.kom_rank}" if effort.kom_rank
puts "PR Rank: #{effort.pr_rank}" if effort.pr_rank

# View achievements
effort.achievements.each do |achievement|
  puts "Achievement: #{achievement.type} - Rank #{achievement.rank}"
end

See Also:

Instance Method Summary collapse

Methods included from Mixins::MovingTime

#moving_time_in_hours_s

Methods included from Mixins::Distance

#distance_in_feet, #distance_in_kilometers, #distance_in_kilometers_s, #distance_in_meters, #distance_in_meters_s, #distance_in_miles, #distance_in_miles_s, #distance_in_yards, #distance_in_yards_s, #distance_s

Methods included from Mixins::ElapsedTime

#elapsed_time_in_hours_s

Instance Method Details

#achievementsArray<Achievement>

Note:

Not documented by Strava API

Returns Achievements earned during this effort (PR, yearly records, etc.).

Returns:

  • (Array<Achievement>)

    Achievements earned during this effort (PR, yearly records, etc.)



115
# File 'lib/strava/models/detailed_segment_effort.rb', line 115

property 'achievements', transform_with: ->(v) { v.map { |r| Strava::Models::Achievement.new(r) } }

#activityMetaActivity

Returns Reference to the parent activity.

Returns:



68
# File 'lib/strava/models/detailed_segment_effort.rb', line 68

property 'activity', transform_with: ->(v) { Strava::Models::MetaActivity.new(v) }

#activity_idInteger

Returns ID of the activity containing this segment effort.

Returns:

  • (Integer)

    ID of the activity containing this segment effort



47
# File 'lib/strava/models/detailed_segment_effort.rb', line 47

property 'activity_id'

#athleteMetaAthlete

Returns Reference to the athlete who performed this effort.

Returns:

  • (MetaAthlete)

    Reference to the athlete who performed this effort



71
# File 'lib/strava/models/detailed_segment_effort.rb', line 71

property 'athlete', transform_with: ->(v) { Strava::Models::MetaAthlete.new(v) }

#athlete_segment_statsSummaryPRSegmentEffort?

Note:

Not documented by Strava API

Returns Athlete's personal statistics for this segment.

Returns:



123
# File 'lib/strava/models/detailed_segment_effort.rb', line 123

property 'athlete_segment_stats', transform_with: ->(v) { Strava::Models::SummaryPRSegmentEffort.new(v) }

#average_cadenceFloat?

Returns Average cadence during the effort (RPM for cycling, steps/min for running).

Returns:

  • (Float, nil)

    Average cadence during the effort (RPM for cycling, steps/min for running)



83
# File 'lib/strava/models/detailed_segment_effort.rb', line 83

property 'average_cadence'

#average_heartrateFloat?

Returns Average heart rate during the effort in beats per minute.

Returns:

  • (Float, nil)

    Average heart rate during the effort in beats per minute



92
# File 'lib/strava/models/detailed_segment_effort.rb', line 92

property 'average_heartrate'

#average_wattsFloat?

Returns Average power output during the effort in watts.

Returns:

  • (Float, nil)

    Average power output during the effort in watts



86
# File 'lib/strava/models/detailed_segment_effort.rb', line 86

property 'average_watts'

#device_wattsBoolean?

Returns Whether power data comes from a power meter device.

Returns:

  • (Boolean, nil)

    Whether power data comes from a power meter device



89
# File 'lib/strava/models/detailed_segment_effort.rb', line 89

property 'device_watts'

#end_indexInteger

Returns Index in the activity stream where this effort ends.

Returns:

  • (Integer)

    Index in the activity stream where this effort ends



80
# File 'lib/strava/models/detailed_segment_effort.rb', line 80

property 'end_index'

#hiddenBoolean

Returns Whether this effort is hidden from public segment leaderboards.

Returns:

  • (Boolean)

    Whether this effort is hidden from public segment leaderboards



107
# File 'lib/strava/models/detailed_segment_effort.rb', line 107

property 'hidden'

#idInteger

Returns Unique identifier for this segment effort.

Returns:

  • (Integer)

    Unique identifier for this segment effort



44
# File 'lib/strava/models/detailed_segment_effort.rb', line 44

property 'id'

#is_komBoolean

Returns Whether this effort achieved KOM (King/Queen of the Mountain).

Returns:

  • (Boolean)

    Whether this effort achieved KOM (King/Queen of the Mountain)



62
# File 'lib/strava/models/detailed_segment_effort.rb', line 62

property 'is_kom'

#kom_rankInteger?

Returns Overall rank on this segment (null if not in top 10).

Returns:

  • (Integer, nil)

    Overall rank on this segment (null if not in top 10)



101
# File 'lib/strava/models/detailed_segment_effort.rb', line 101

property 'kom_rank'

#max_heartrateInteger?

Returns Maximum heart rate during the effort in beats per minute.

Returns:

  • (Integer, nil)

    Maximum heart rate during the effort in beats per minute



95
# File 'lib/strava/models/detailed_segment_effort.rb', line 95

property 'max_heartrate'

#nameString

Returns Name of the segment.

Returns:

  • (String)

    Name of the segment



65
# File 'lib/strava/models/detailed_segment_effort.rb', line 65

property 'name'

#pr_rankInteger?

Returns Personal record rank for this segment (1 for PR, 2 for 2nd best, etc.).

Returns:

  • (Integer, nil)

    Personal record rank for this segment (1 for PR, 2 for 2nd best, etc.)



104
# File 'lib/strava/models/detailed_segment_effort.rb', line 104

property 'pr_rank'

#resource_stateInteger

Note:

Not documented by Strava API

Returns Resource state indicator.

Returns:

  • (Integer)

    Resource state indicator



111
# File 'lib/strava/models/detailed_segment_effort.rb', line 111

property 'resource_state'

#segmentSummarySegment

Returns The segment that was attempted.

Returns:



98
# File 'lib/strava/models/detailed_segment_effort.rb', line 98

property 'segment', transform_with: ->(v) { Strava::Models::SummarySegment.new(v) }

#start_dateTime

Returns Start time of the segment effort in UTC.

Returns:

  • (Time)

    Start time of the segment effort in UTC



53
# File 'lib/strava/models/detailed_segment_effort.rb', line 53

property 'start_date', transform_with: ->(v) { Time.parse(v) }

#start_indexInteger

Returns Index in the activity stream where this effort starts.

Returns:

  • (Integer)

    Index in the activity stream where this effort starts



77
# File 'lib/strava/models/detailed_segment_effort.rb', line 77

property 'start_index'

#visibilityString?

Note:

Not documented by Strava API

Returns Visibility setting for this effort.

Returns:

  • (String, nil)

    Visibility setting for this effort



119
# File 'lib/strava/models/detailed_segment_effort.rb', line 119

property 'visibility'