Class: Strava::Models::ActivityZone

Inherits:
Response show all
Defined in:
lib/strava/models/activity_zone.rb

Overview

Represents time spent in heart rate or power zones during an activity.

Activity zones show how much time was spent at different intensity levels, which helps analyze training load and effort distribution. Each zone bucket contains the time spent in that zone range.

Examples:

Analyzing time in heart rate zones

zones = client.activity_zones(1234567890)
hr_zone = zones.find { |z| z.type == 'heartrate' }

if hr_zone
  puts "Max HR: #{hr_zone.max}"
  puts "Sensor-based: #{hr_zone.sensor_based}"
  hr_zone.distribution_buckets.each_with_index do |bucket, i|
    puts "Zone #{i + 1}: #{bucket.time} seconds (#{bucket.min}-#{bucket.max} bpm)"
  end
end

See Also:

Instance Method Summary collapse

Instance Method Details

#custom_zonesBoolean

Returns Whether custom zones are being used.

Returns:

  • (Boolean)

    Whether custom zones are being used



45
# File 'lib/strava/models/activity_zone.rb', line 45

property 'custom_zones'

#distribution_bucketsArray<TimedZoneRange>

Returns Array of time spent in each zone bucket.

Returns:



33
# File 'lib/strava/models/activity_zone.rb', line 33

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

#maxInteger?

Returns Maximum value recorded (e.g., max heart rate in bpm).

Returns:

  • (Integer, nil)

    Maximum value recorded (e.g., max heart rate in bpm)



48
# File 'lib/strava/models/activity_zone.rb', line 48

property 'max'

#pointsInteger?

Returns Points or score accumulated in this zone.

Returns:

  • (Integer, nil)

    Points or score accumulated in this zone



42
# File 'lib/strava/models/activity_zone.rb', line 42

property 'points'

#resource_stateInteger

Note:

Not documented by Strava API

Returns Resource state indicator.

Returns:

  • (Integer)

    Resource state indicator



52
# File 'lib/strava/models/activity_zone.rb', line 52

property 'resource_state'

#scoreInteger?

Returns Relative effort score for this activity.

Returns:

  • (Integer, nil)

    Relative effort score for this activity



30
# File 'lib/strava/models/activity_zone.rb', line 30

property 'score'

#sensor_basedBoolean

Returns Whether data comes from a sensor (vs. estimated).

Returns:

  • (Boolean)

    Whether data comes from a sensor (vs. estimated)



39
# File 'lib/strava/models/activity_zone.rb', line 39

property 'sensor_based'

#typeString

Returns Type of zone data ("heartrate" or "power").

Returns:

  • (String)

    Type of zone data ("heartrate" or "power")



36
# File 'lib/strava/models/activity_zone.rb', line 36

property 'type'