strava-ruby-client 2.3.0 → 3.0.0.pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +60 -48
- data/LICENSE.md +1 -1
- data/README.md +100 -80
- data/bin/strava-activities.rb +2 -0
- data/bin/strava-oauth-token +43 -35
- data/bin/strava-refresh-token +32 -0
- data/lib/strava/api/client.rb +46 -6
- data/lib/strava/api/cursor.rb +26 -2
- data/lib/strava/api/endpoints/activities.rb +10 -7
- data/lib/strava/api/endpoints/athletes.rb +2 -2
- data/lib/strava/api/endpoints/clubs.rb +5 -5
- data/lib/strava/api/endpoints/gears.rb +1 -1
- data/lib/strava/api/endpoints/segment_efforts.rb +2 -2
- data/lib/strava/api/endpoints/segments.rb +3 -3
- data/lib/strava/api/pagination.rb +1 -2
- data/lib/strava/models/achievement.rb +1 -0
- data/lib/strava/models/activity_stats.rb +1 -0
- data/lib/strava/models/activity_total.rb +5 -9
- data/lib/strava/models/activity_zone.rb +4 -1
- data/lib/strava/models/base_stream.rb +12 -0
- data/lib/strava/models/club_activity.rb +22 -0
- data/lib/strava/models/{club_member.rb → club_athlete.rb} +5 -2
- data/lib/strava/models/club_event.rb +6 -4
- data/lib/strava/models/comment.rb +7 -2
- data/lib/strava/models/destination.rb +12 -0
- data/lib/strava/models/{activity.rb → detailed_activity.rb} +51 -103
- data/lib/strava/models/{athlete.rb → detailed_athlete.rb} +20 -14
- data/lib/strava/models/{club.rb → detailed_club.rb} +10 -3
- data/lib/strava/models/{gear.rb → detailed_gear.rb} +10 -7
- data/lib/strava/models/{photo.rb → detailed_photo.rb} +13 -5
- data/lib/strava/models/{photos.rb → detailed_photos.rb} +2 -1
- data/lib/strava/models/{segment.rb → detailed_segment.rb} +18 -24
- data/lib/strava/models/{segment_effort.rb → detailed_segment_effort.rb} +23 -17
- data/lib/strava/models/explorer_segment.rb +8 -5
- data/lib/strava/models/heart_rate_zone_ranges.rb +1 -0
- data/lib/strava/models/kudoser.rb +1 -0
- data/lib/strava/models/lap.rb +18 -16
- data/lib/strava/models/lat_lng.rb +46 -0
- data/lib/strava/models/local_legend.rb +16 -0
- data/lib/strava/models/meta_activity.rb +13 -0
- data/lib/strava/models/meta_athlete.rb +14 -0
- data/lib/strava/models/meta_club.rb +12 -0
- data/lib/strava/models/mixins/{time.rb → average_speed.rb} +6 -29
- data/lib/strava/models/mixins/elapsed_time.rb +20 -0
- data/lib/strava/models/mixins/elevation_difference.rb +39 -0
- data/lib/strava/models/mixins/elevation_gain.rb +39 -0
- data/lib/strava/models/mixins/estimated_moving_time.rb +20 -0
- data/lib/strava/models/mixins/moving_time.rb +20 -0
- data/lib/strava/models/mixins/sport_type.rb +73 -0
- data/lib/strava/models/mixins/time_in_hours.rb +26 -0
- data/lib/strava/models/mixins/{elevation.rb → total_elevation_gain.rb} +1 -1
- data/lib/strava/models/photos_summary.rb +12 -0
- data/lib/strava/models/photos_summary_primary.rb +15 -0
- data/lib/strava/models/power_zone_ranges.rb +1 -0
- data/lib/strava/models/route.rb +14 -13
- data/lib/strava/models/similar_activities.rb +2 -0
- data/lib/strava/models/split.rb +8 -6
- data/lib/strava/models/stats_visibility.rb +11 -0
- data/lib/strava/models/stream_set.rb +2 -1
- data/lib/strava/models/summary_activity.rb +71 -0
- data/lib/strava/models/summary_athlete.rb +31 -0
- data/lib/strava/models/summary_club.rb +34 -0
- data/lib/strava/models/summary_gear.rb +18 -0
- data/lib/strava/models/summary_pr_segment_effort.rb +16 -0
- data/lib/strava/models/summary_segment.rb +34 -0
- data/lib/strava/models/summary_segment_effort.rb +16 -0
- data/lib/strava/models/timed_zone_range.rb +1 -0
- data/lib/strava/models/token.rb +1 -1
- data/lib/strava/models/trend.rb +1 -0
- data/lib/strava/models/updatable_activity.rb +16 -0
- data/lib/strava/models/upload.rb +2 -0
- data/lib/strava/models/waypoint.rb +15 -0
- data/lib/strava/models/xoms.rb +13 -0
- data/lib/strava/models/zone_range.rb +1 -0
- data/lib/strava/models/zones.rb +1 -0
- data/lib/strava/version.rb +1 -1
- data/lib/strava/webhooks/models/event.rb +1 -1
- data/lib/strava-ruby-client.rb +55 -30
- metadata +47 -18
- data/lib/strava/api/endpoints/running_races.rb +0 -20
- data/lib/strava/models/club_admin.rb +0 -15
- data/lib/strava/models/running_race.rb +0 -35
- data/lib/strava/models/segment_stats.rb +0 -17
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Strava
|
|
4
|
+
module Models
|
|
5
|
+
# https://developers.strava.com/docs/reference/#api-models-SummarySegment
|
|
6
|
+
class SummarySegment < Strava::Models::Response
|
|
7
|
+
property 'id'
|
|
8
|
+
property 'name'
|
|
9
|
+
property 'activity_type'
|
|
10
|
+
include Mixins::Distance
|
|
11
|
+
property 'average_grade'
|
|
12
|
+
property 'maximum_grade'
|
|
13
|
+
property 'elevation_high'
|
|
14
|
+
property 'elevation_low'
|
|
15
|
+
property 'start_latlng', transform_with: ->(v) { Strava::Models::LatLng.new(v) }
|
|
16
|
+
property 'end_latlng', transform_with: ->(v) { Strava::Models::LatLng.new(v) }
|
|
17
|
+
property 'climb_category'
|
|
18
|
+
property 'city'
|
|
19
|
+
property 'state'
|
|
20
|
+
property 'country'
|
|
21
|
+
property 'private'
|
|
22
|
+
property 'athlete_pr_effort', transform_with: ->(v) { Strava::Models::SummaryPRSegmentEffort.new(v) }
|
|
23
|
+
property 'athlete_segment_stats', transform_with: ->(v) { Strava::Models::SummarySegmentEffort.new(v) }
|
|
24
|
+
# undocumented
|
|
25
|
+
property 'resource_state'
|
|
26
|
+
property 'elevation_profile'
|
|
27
|
+
property 'elevation_profiles'
|
|
28
|
+
property 'hazardous'
|
|
29
|
+
property 'starred'
|
|
30
|
+
property 'starred_date', transform_with: ->(v) { Time.parse(v) }
|
|
31
|
+
property 'pr_time'
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Strava
|
|
4
|
+
module Models
|
|
5
|
+
# https://developers.strava.com/docs/reference/#api-models-SummarySegmentEffort
|
|
6
|
+
class SummarySegmentEffort < Strava::Models::Response
|
|
7
|
+
property 'id'
|
|
8
|
+
property 'activity_id'
|
|
9
|
+
include Mixins::ElapsedTime
|
|
10
|
+
property 'start_date', transform_with: ->(v) { Time.parse(v) }
|
|
11
|
+
include Mixins::StartDateLocal
|
|
12
|
+
include Mixins::Distance
|
|
13
|
+
property 'is_kom'
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/lib/strava/models/token.rb
CHANGED
|
@@ -8,7 +8,7 @@ module Strava
|
|
|
8
8
|
property 'refresh_token'
|
|
9
9
|
property 'expires_in'
|
|
10
10
|
property 'expires_at', transform_with: ->(v) { Time.at(v) }
|
|
11
|
-
property 'athlete', transform_with: ->(v) { Strava::Models::
|
|
11
|
+
property 'athlete', transform_with: ->(v) { Strava::Models::SummaryAthlete.new(v) }
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
end
|
data/lib/strava/models/trend.rb
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Strava
|
|
4
|
+
module Models
|
|
5
|
+
# https://developers.strava.com/docs/reference/#api-models-UpdatableActivity
|
|
6
|
+
class UpdatableActivity < Strava::Models::Response
|
|
7
|
+
property 'commute'
|
|
8
|
+
property 'trainer'
|
|
9
|
+
property 'hide_from_home'
|
|
10
|
+
property 'description'
|
|
11
|
+
property 'name'
|
|
12
|
+
property 'sport_type'
|
|
13
|
+
property 'gear_id'
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/lib/strava/models/upload.rb
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Strava
|
|
4
|
+
module Models
|
|
5
|
+
# https://developers.strava.com/docs/reference/#api-models-Waypoint
|
|
6
|
+
class Waypoint < Strava::Models::Response
|
|
7
|
+
property 'latlng', transform_with: ->(v) { Strava::Models::LatLng.new(v) }
|
|
8
|
+
property 'target_latlng', transform_with: ->(v) { Strava::Models::LatLng.new(v) }
|
|
9
|
+
property 'categories'
|
|
10
|
+
property 'title'
|
|
11
|
+
property 'description'
|
|
12
|
+
property 'distance_into_route'
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Strava
|
|
4
|
+
module Models
|
|
5
|
+
# Undocumented
|
|
6
|
+
class Xoms < Strava::Models::Response
|
|
7
|
+
property 'kom'
|
|
8
|
+
property 'qom'
|
|
9
|
+
property 'overall'
|
|
10
|
+
property 'destination', transform_with: ->(v) { Strava::Models::Destination.new(v) }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
data/lib/strava/models/zones.rb
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Strava
|
|
4
4
|
module Models
|
|
5
|
+
# https://developers.strava.com/docs/reference/#api-models-Zones
|
|
5
6
|
class Zones < Strava::Models::Response
|
|
6
7
|
property 'heart_rate', transform_with: ->(v) { Strava::Models::HeartRateZoneRanges.new(v) }
|
|
7
8
|
property 'power', transform_with: ->(v) { Strava::Models::PowerZoneRanges.new(v) }
|
data/lib/strava/version.rb
CHANGED
data/lib/strava-ruby-client.rb
CHANGED
|
@@ -20,50 +20,76 @@ require_relative 'strava/errors/fault'
|
|
|
20
20
|
require_relative 'strava/errors/upload_error'
|
|
21
21
|
require_relative 'strava/errors/ratelimit_error'
|
|
22
22
|
|
|
23
|
-
require_relative 'strava/models/mixins/
|
|
23
|
+
require_relative 'strava/models/mixins/time_in_hours'
|
|
24
|
+
require_relative 'strava/models/mixins/average_speed'
|
|
24
25
|
require_relative 'strava/models/mixins/distance'
|
|
25
|
-
require_relative 'strava/models/mixins/
|
|
26
|
+
require_relative 'strava/models/mixins/elapsed_time'
|
|
27
|
+
require_relative 'strava/models/mixins/elevation_gain'
|
|
28
|
+
require_relative 'strava/models/mixins/elevation_difference'
|
|
29
|
+
require_relative 'strava/models/mixins/estimated_moving_time'
|
|
26
30
|
require_relative 'strava/models/mixins/http_response'
|
|
31
|
+
require_relative 'strava/models/mixins/moving_time'
|
|
32
|
+
require_relative 'strava/models/mixins/sport_type'
|
|
27
33
|
require_relative 'strava/models/mixins/start_date_local'
|
|
34
|
+
require_relative 'strava/models/mixins/total_elevation_gain'
|
|
28
35
|
|
|
29
36
|
require_relative 'strava/models/model'
|
|
30
37
|
require_relative 'strava/models/response'
|
|
31
38
|
require_relative 'strava/models/token'
|
|
32
|
-
require_relative 'strava/models/
|
|
33
|
-
|
|
34
|
-
require_relative 'strava/models/
|
|
35
|
-
require_relative 'strava/models/
|
|
36
|
-
require_relative 'strava/models/
|
|
37
|
-
require_relative 'strava/models/
|
|
38
|
-
require_relative 'strava/models/club_member'
|
|
39
|
-
require_relative 'strava/models/segment_effort'
|
|
40
|
-
require_relative 'strava/models/photos'
|
|
41
|
-
require_relative 'strava/models/photo'
|
|
42
|
-
require_relative 'strava/models/similar_activities'
|
|
43
|
-
require_relative 'strava/models/trend'
|
|
44
|
-
require_relative 'strava/models/split'
|
|
45
|
-
require_relative 'strava/models/lap'
|
|
46
|
-
require_relative 'strava/models/gear'
|
|
47
|
-
require_relative 'strava/models/segment'
|
|
39
|
+
require_relative 'strava/models/authorization'
|
|
40
|
+
|
|
41
|
+
require_relative 'strava/models/lat_lng'
|
|
42
|
+
require_relative 'strava/models/achievement'
|
|
43
|
+
require_relative 'strava/models/activity_stats'
|
|
44
|
+
require_relative 'strava/models/activity_total'
|
|
48
45
|
require_relative 'strava/models/activity_zone'
|
|
49
|
-
require_relative 'strava/models/
|
|
46
|
+
require_relative 'strava/models/base_stream'
|
|
47
|
+
require_relative 'strava/models/club_activity'
|
|
48
|
+
require_relative 'strava/models/club_athlete'
|
|
49
|
+
require_relative 'strava/models/club_event'
|
|
50
50
|
require_relative 'strava/models/comment'
|
|
51
|
-
require_relative 'strava/models/
|
|
51
|
+
require_relative 'strava/models/destination'
|
|
52
|
+
require_relative 'strava/models/detailed_activity'
|
|
53
|
+
require_relative 'strava/models/detailed_athlete'
|
|
54
|
+
require_relative 'strava/models/detailed_club'
|
|
55
|
+
require_relative 'strava/models/detailed_gear'
|
|
56
|
+
require_relative 'strava/models/detailed_photo'
|
|
57
|
+
require_relative 'strava/models/detailed_photos'
|
|
58
|
+
require_relative 'strava/models/detailed_segment_effort'
|
|
59
|
+
require_relative 'strava/models/detailed_segment'
|
|
60
|
+
require_relative 'strava/models/explorer_segment'
|
|
52
61
|
require_relative 'strava/models/heart_rate_zone_ranges'
|
|
62
|
+
require_relative 'strava/models/kudoser'
|
|
63
|
+
require_relative 'strava/models/lap'
|
|
64
|
+
require_relative 'strava/models/local_legend'
|
|
65
|
+
require_relative 'strava/models/map'
|
|
66
|
+
require_relative 'strava/models/meta_activity'
|
|
67
|
+
require_relative 'strava/models/meta_athlete'
|
|
68
|
+
require_relative 'strava/models/meta_club'
|
|
69
|
+
require_relative 'strava/models/photos_summary_primary'
|
|
70
|
+
require_relative 'strava/models/photos_summary'
|
|
53
71
|
require_relative 'strava/models/power_zone_ranges'
|
|
54
|
-
require_relative 'strava/models/zone_range'
|
|
55
|
-
require_relative 'strava/models/activity_total'
|
|
56
|
-
require_relative 'strava/models/activity_stats'
|
|
57
72
|
require_relative 'strava/models/route'
|
|
58
|
-
require_relative 'strava/models/
|
|
59
|
-
require_relative 'strava/models/
|
|
60
|
-
require_relative 'strava/models/
|
|
61
|
-
require_relative 'strava/models/segment_stats'
|
|
62
|
-
require_relative 'strava/models/explorer_segment'
|
|
73
|
+
require_relative 'strava/models/similar_activities'
|
|
74
|
+
require_relative 'strava/models/split'
|
|
75
|
+
require_relative 'strava/models/stats_visibility'
|
|
63
76
|
require_relative 'strava/models/stream_set'
|
|
64
77
|
require_relative 'strava/models/stream'
|
|
78
|
+
require_relative 'strava/models/summary_activity'
|
|
79
|
+
require_relative 'strava/models/summary_athlete'
|
|
80
|
+
require_relative 'strava/models/summary_club'
|
|
81
|
+
require_relative 'strava/models/summary_gear'
|
|
82
|
+
require_relative 'strava/models/summary_pr_segment_effort'
|
|
83
|
+
require_relative 'strava/models/summary_segment_effort'
|
|
84
|
+
require_relative 'strava/models/summary_segment'
|
|
85
|
+
require_relative 'strava/models/timed_zone_range'
|
|
86
|
+
require_relative 'strava/models/trend'
|
|
87
|
+
require_relative 'strava/models/updatable_activity'
|
|
65
88
|
require_relative 'strava/models/upload'
|
|
66
|
-
require_relative 'strava/models/
|
|
89
|
+
require_relative 'strava/models/waypoint'
|
|
90
|
+
require_relative 'strava/models/xoms'
|
|
91
|
+
require_relative 'strava/models/zone_range'
|
|
92
|
+
require_relative 'strava/models/zones'
|
|
67
93
|
|
|
68
94
|
require_relative 'strava/web/raise_response_error'
|
|
69
95
|
require_relative 'strava/web/connection'
|
|
@@ -91,7 +117,6 @@ require_relative 'strava/api/endpoints/athletes'
|
|
|
91
117
|
require_relative 'strava/api/endpoints/clubs'
|
|
92
118
|
require_relative 'strava/api/endpoints/gears'
|
|
93
119
|
require_relative 'strava/api/endpoints/routes'
|
|
94
|
-
require_relative 'strava/api/endpoints/running_races'
|
|
95
120
|
require_relative 'strava/api/endpoints/segment_efforts'
|
|
96
121
|
require_relative 'strava/api/endpoints/segments'
|
|
97
122
|
require_relative 'strava/api/endpoints/streams'
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: strava-ruby-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0.pre.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Doubrovkine
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2025-10-20 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: activesupport
|
|
@@ -65,6 +66,7 @@ dependencies:
|
|
|
65
66
|
- - ">="
|
|
66
67
|
- !ruby/object:Gem::Version
|
|
67
68
|
version: '0'
|
|
69
|
+
description:
|
|
68
70
|
email: dblock@dblock.org
|
|
69
71
|
executables:
|
|
70
72
|
- strava-oauth-token
|
|
@@ -77,6 +79,7 @@ files:
|
|
|
77
79
|
- README.md
|
|
78
80
|
- bin/strava-activities.rb
|
|
79
81
|
- bin/strava-oauth-token
|
|
82
|
+
- bin/strava-refresh-token
|
|
80
83
|
- bin/strava-webhooks
|
|
81
84
|
- lib/strava-ruby-client.rb
|
|
82
85
|
- lib/strava/api/client.rb
|
|
@@ -88,7 +91,6 @@ files:
|
|
|
88
91
|
- lib/strava/api/endpoints/gears.rb
|
|
89
92
|
- lib/strava/api/endpoints/oauth.rb
|
|
90
93
|
- lib/strava/api/endpoints/routes.rb
|
|
91
|
-
- lib/strava/api/endpoints/running_races.rb
|
|
92
94
|
- lib/strava/api/endpoints/segment_efforts.rb
|
|
93
95
|
- lib/strava/api/endpoints/segments.rb
|
|
94
96
|
- lib/strava/api/endpoints/streams.rb
|
|
@@ -101,46 +103,71 @@ files:
|
|
|
101
103
|
- lib/strava/errors/upload_error.rb
|
|
102
104
|
- lib/strava/logger.rb
|
|
103
105
|
- lib/strava/models/achievement.rb
|
|
104
|
-
- lib/strava/models/activity.rb
|
|
105
106
|
- lib/strava/models/activity_stats.rb
|
|
106
107
|
- lib/strava/models/activity_total.rb
|
|
107
108
|
- lib/strava/models/activity_zone.rb
|
|
108
|
-
- lib/strava/models/athlete.rb
|
|
109
109
|
- lib/strava/models/authorization.rb
|
|
110
|
-
- lib/strava/models/
|
|
111
|
-
- lib/strava/models/
|
|
110
|
+
- lib/strava/models/base_stream.rb
|
|
111
|
+
- lib/strava/models/club_activity.rb
|
|
112
|
+
- lib/strava/models/club_athlete.rb
|
|
112
113
|
- lib/strava/models/club_event.rb
|
|
113
|
-
- lib/strava/models/club_member.rb
|
|
114
114
|
- lib/strava/models/comment.rb
|
|
115
|
+
- lib/strava/models/destination.rb
|
|
116
|
+
- lib/strava/models/detailed_activity.rb
|
|
117
|
+
- lib/strava/models/detailed_athlete.rb
|
|
118
|
+
- lib/strava/models/detailed_club.rb
|
|
119
|
+
- lib/strava/models/detailed_gear.rb
|
|
120
|
+
- lib/strava/models/detailed_photo.rb
|
|
121
|
+
- lib/strava/models/detailed_photos.rb
|
|
122
|
+
- lib/strava/models/detailed_segment.rb
|
|
123
|
+
- lib/strava/models/detailed_segment_effort.rb
|
|
115
124
|
- lib/strava/models/explorer_segment.rb
|
|
116
|
-
- lib/strava/models/gear.rb
|
|
117
125
|
- lib/strava/models/heart_rate_zone_ranges.rb
|
|
118
126
|
- lib/strava/models/kudoser.rb
|
|
119
127
|
- lib/strava/models/lap.rb
|
|
128
|
+
- lib/strava/models/lat_lng.rb
|
|
129
|
+
- lib/strava/models/local_legend.rb
|
|
120
130
|
- lib/strava/models/map.rb
|
|
131
|
+
- lib/strava/models/meta_activity.rb
|
|
132
|
+
- lib/strava/models/meta_athlete.rb
|
|
133
|
+
- lib/strava/models/meta_club.rb
|
|
134
|
+
- lib/strava/models/mixins/average_speed.rb
|
|
121
135
|
- lib/strava/models/mixins/distance.rb
|
|
122
|
-
- lib/strava/models/mixins/
|
|
136
|
+
- lib/strava/models/mixins/elapsed_time.rb
|
|
137
|
+
- lib/strava/models/mixins/elevation_difference.rb
|
|
138
|
+
- lib/strava/models/mixins/elevation_gain.rb
|
|
139
|
+
- lib/strava/models/mixins/estimated_moving_time.rb
|
|
123
140
|
- lib/strava/models/mixins/http_response.rb
|
|
141
|
+
- lib/strava/models/mixins/moving_time.rb
|
|
142
|
+
- lib/strava/models/mixins/sport_type.rb
|
|
124
143
|
- lib/strava/models/mixins/start_date_local.rb
|
|
125
|
-
- lib/strava/models/mixins/
|
|
144
|
+
- lib/strava/models/mixins/time_in_hours.rb
|
|
145
|
+
- lib/strava/models/mixins/total_elevation_gain.rb
|
|
126
146
|
- lib/strava/models/model.rb
|
|
127
|
-
- lib/strava/models/
|
|
128
|
-
- lib/strava/models/
|
|
147
|
+
- lib/strava/models/photos_summary.rb
|
|
148
|
+
- lib/strava/models/photos_summary_primary.rb
|
|
129
149
|
- lib/strava/models/power_zone_ranges.rb
|
|
130
150
|
- lib/strava/models/response.rb
|
|
131
151
|
- lib/strava/models/route.rb
|
|
132
|
-
- lib/strava/models/running_race.rb
|
|
133
|
-
- lib/strava/models/segment.rb
|
|
134
|
-
- lib/strava/models/segment_effort.rb
|
|
135
|
-
- lib/strava/models/segment_stats.rb
|
|
136
152
|
- lib/strava/models/similar_activities.rb
|
|
137
153
|
- lib/strava/models/split.rb
|
|
154
|
+
- lib/strava/models/stats_visibility.rb
|
|
138
155
|
- lib/strava/models/stream.rb
|
|
139
156
|
- lib/strava/models/stream_set.rb
|
|
157
|
+
- lib/strava/models/summary_activity.rb
|
|
158
|
+
- lib/strava/models/summary_athlete.rb
|
|
159
|
+
- lib/strava/models/summary_club.rb
|
|
160
|
+
- lib/strava/models/summary_gear.rb
|
|
161
|
+
- lib/strava/models/summary_pr_segment_effort.rb
|
|
162
|
+
- lib/strava/models/summary_segment.rb
|
|
163
|
+
- lib/strava/models/summary_segment_effort.rb
|
|
140
164
|
- lib/strava/models/timed_zone_range.rb
|
|
141
165
|
- lib/strava/models/token.rb
|
|
142
166
|
- lib/strava/models/trend.rb
|
|
167
|
+
- lib/strava/models/updatable_activity.rb
|
|
143
168
|
- lib/strava/models/upload.rb
|
|
169
|
+
- lib/strava/models/waypoint.rb
|
|
170
|
+
- lib/strava/models/xoms.rb
|
|
144
171
|
- lib/strava/models/zone_range.rb
|
|
145
172
|
- lib/strava/models/zones.rb
|
|
146
173
|
- lib/strava/oauth/client.rb
|
|
@@ -163,6 +190,7 @@ licenses:
|
|
|
163
190
|
- MIT
|
|
164
191
|
metadata:
|
|
165
192
|
rubygems_mfa_required: 'true'
|
|
193
|
+
post_install_message:
|
|
166
194
|
rdoc_options: []
|
|
167
195
|
require_paths:
|
|
168
196
|
- lib
|
|
@@ -177,7 +205,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
177
205
|
- !ruby/object:Gem::Version
|
|
178
206
|
version: '2.5'
|
|
179
207
|
requirements: []
|
|
180
|
-
rubygems_version: 3.
|
|
208
|
+
rubygems_version: 3.5.16
|
|
209
|
+
signing_key:
|
|
181
210
|
specification_version: 4
|
|
182
211
|
summary: Strava API Ruby client.
|
|
183
212
|
test_files: []
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Strava
|
|
4
|
-
module Api
|
|
5
|
-
module Endpoints
|
|
6
|
-
module RunningRaces
|
|
7
|
-
#
|
|
8
|
-
# Returns a running race for a given identifier.
|
|
9
|
-
#
|
|
10
|
-
# @option options [String] :id
|
|
11
|
-
# The identifier of the running race.
|
|
12
|
-
#
|
|
13
|
-
def running_race(id_or_options, options = {})
|
|
14
|
-
id, options = parse_args(id_or_options, options)
|
|
15
|
-
Strava::Models::RunningRace.new(get("running_races/#{id}", options))
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Strava
|
|
4
|
-
module Models
|
|
5
|
-
class ClubAdmin < Strava::Models::Response
|
|
6
|
-
property 'resource_state'
|
|
7
|
-
property 'firstname'
|
|
8
|
-
property 'lastname'
|
|
9
|
-
|
|
10
|
-
def name
|
|
11
|
-
[firstname, lastname].compact.join(' ') if firstname || lastname
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Strava
|
|
4
|
-
module Models
|
|
5
|
-
class RunningRace < Strava::Models::Response
|
|
6
|
-
include Mixins::Distance
|
|
7
|
-
|
|
8
|
-
property 'id'
|
|
9
|
-
property 'resource_state'
|
|
10
|
-
property 'name'
|
|
11
|
-
property 'running_race_type'
|
|
12
|
-
property 'distance'
|
|
13
|
-
property 'start_date_local', transform_with: ->(v) { Time.parse(v) }
|
|
14
|
-
property 'city'
|
|
15
|
-
property 'state'
|
|
16
|
-
property 'country'
|
|
17
|
-
property 'route_ids'
|
|
18
|
-
property 'measurement_preference'
|
|
19
|
-
property 'url'
|
|
20
|
-
property 'website_url'
|
|
21
|
-
property 'status'
|
|
22
|
-
|
|
23
|
-
def strava_url
|
|
24
|
-
"https://www.strava.com/running-races/#{url}" if url
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def distance_s
|
|
28
|
-
case measurement_preference
|
|
29
|
-
when 'meters' then distance_in_kilometers_s
|
|
30
|
-
when 'feet' then distance_in_miles_s
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Strava
|
|
4
|
-
module Models
|
|
5
|
-
class SegmentStats < Strava::Models::Response
|
|
6
|
-
include Mixins::Time
|
|
7
|
-
|
|
8
|
-
property 'pr_elapsed_time'
|
|
9
|
-
property 'pr_date', transform_with: ->(v) { Date.parse(v) }
|
|
10
|
-
property 'effort_count'
|
|
11
|
-
|
|
12
|
-
def elapsed_time
|
|
13
|
-
pr_elapsed_time
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|