Skip to content

Commit 4f3abfa

Browse files
committed
WIP: refactor models to match documentation
1 parent 0f88a17 commit 4f3abfa

File tree

123 files changed

+11108
-8862
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+11108
-8862
lines changed

lib/strava-ruby-client.rb

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,50 +20,72 @@
2020
require_relative 'strava/errors/upload_error'
2121
require_relative 'strava/errors/ratelimit_error'
2222

23-
require_relative 'strava/models/mixins/time'
23+
require_relative 'strava/models/mixins/time_in_hours'
24+
require_relative 'strava/models/mixins/average_speed'
2425
require_relative 'strava/models/mixins/distance'
25-
require_relative 'strava/models/mixins/elevation'
26+
require_relative 'strava/models/mixins/elapsed_time'
27+
require_relative 'strava/models/mixins/elevation_gain'
28+
require_relative 'strava/models/mixins/estimated_moving_time'
2629
require_relative 'strava/models/mixins/http_response'
30+
require_relative 'strava/models/mixins/moving_time'
31+
require_relative 'strava/models/mixins/sport_type'
2732
require_relative 'strava/models/mixins/start_date_local'
33+
require_relative 'strava/models/mixins/total_elevation_gain'
2834

2935
require_relative 'strava/models/model'
3036
require_relative 'strava/models/response'
3137
require_relative 'strava/models/token'
32-
require_relative 'strava/models/athlete'
33-
require_relative 'strava/models/map'
34-
require_relative 'strava/models/activity'
35-
require_relative 'strava/models/club'
36-
require_relative 'strava/models/club_admin'
37-
require_relative 'strava/models/club_event'
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'
38+
require_relative 'strava/models/authorization'
39+
40+
require_relative 'strava/models/achievement'
41+
require_relative 'strava/models/activity_stats'
42+
require_relative 'strava/models/activity_total'
4843
require_relative 'strava/models/activity_zone'
49-
require_relative 'strava/models/timed_zone_range'
44+
require_relative 'strava/models/authorization'
45+
require_relative 'strava/models/base_stream'
46+
require_relative 'strava/models/club_activity'
47+
require_relative 'strava/models/club_athlete'
48+
require_relative 'strava/models/club_event'
5049
require_relative 'strava/models/comment'
51-
require_relative 'strava/models/zones'
50+
require_relative 'strava/models/detailed_activity'
51+
require_relative 'strava/models/detailed_athlete'
52+
require_relative 'strava/models/detailed_club'
53+
require_relative 'strava/models/detailed_gear'
54+
require_relative 'strava/models/detailed_photo'
55+
require_relative 'strava/models/detailed_photos'
56+
require_relative 'strava/models/detailed_segment_effort'
57+
require_relative 'strava/models/detailed_segment'
58+
require_relative 'strava/models/explorer_segment'
5259
require_relative 'strava/models/heart_rate_zone_ranges'
60+
require_relative 'strava/models/kudoser'
61+
require_relative 'strava/models/lap'
62+
require_relative 'strava/models/map'
63+
require_relative 'strava/models/meta_activity'
64+
require_relative 'strava/models/meta_athlete'
65+
require_relative 'strava/models/meta_club'
66+
require_relative 'strava/models/photos_summary_primary'
67+
require_relative 'strava/models/photos_summary'
5368
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'
5769
require_relative 'strava/models/route'
58-
require_relative 'strava/models/kudoser'
5970
require_relative 'strava/models/running_race'
60-
require_relative 'strava/models/achievement'
61-
require_relative 'strava/models/segment_stats'
62-
require_relative 'strava/models/explorer_segment'
71+
require_relative 'strava/models/similar_activities'
72+
require_relative 'strava/models/split'
6373
require_relative 'strava/models/stream_set'
6474
require_relative 'strava/models/stream'
75+
require_relative 'strava/models/summary_activity'
76+
require_relative 'strava/models/summary_athlete'
77+
require_relative 'strava/models/summary_club'
78+
require_relative 'strava/models/summary_gear'
79+
require_relative 'strava/models/summary_pr_segment_effort'
80+
require_relative 'strava/models/summary_segment_effort'
81+
require_relative 'strava/models/summary_segment'
82+
require_relative 'strava/models/timed_zone_range'
83+
require_relative 'strava/models/trend'
84+
require_relative 'strava/models/updatable_activity'
6585
require_relative 'strava/models/upload'
66-
require_relative 'strava/models/authorization'
86+
require_relative 'strava/models/waypoint'
87+
require_relative 'strava/models/zone_range'
88+
require_relative 'strava/models/zones'
6789

6890
require_relative 'strava/web/raise_response_error'
6991
require_relative 'strava/web/connection'

lib/strava/api/endpoints/activities.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module Activities
88
# Create an activity.
99
#
1010
def create_activity(options = {})
11-
Strava::Models::Activity.new(post('activities', options))
11+
Strava::Models::DetailedActivity.new(post('activities', options))
1212
end
1313

1414
#
@@ -19,7 +19,7 @@ def create_activity(options = {})
1919
#
2020
def activity(id_or_options, options = {})
2121
id, options = parse_args(id_or_options, options)
22-
Strava::Models::Activity.new(get("activities/#{id}", options))
22+
Strava::Models::DetailedActivity.new(get("activities/#{id}", options))
2323
end
2424

2525
#
@@ -50,7 +50,7 @@ def activity_comments(id_or_options, options = {}, &block)
5050
def activity_photos(id_or_options, options = {}, &block)
5151
id, options = parse_args(id_or_options, options)
5252
options[:size] = 5000 unless options[:size] # to retrieve full size photos
53-
paginate "activities/#{id}/photos", options, Strava::Models::Photo, &block
53+
paginate "activities/#{id}/photos", options, Strava::Models::SummaryPhotos, &block
5454
end
5555

5656
#
@@ -65,7 +65,7 @@ def activity_photos(id_or_options, options = {}, &block)
6565
#
6666
def activity_kudos(id_or_options, options = {}, &block)
6767
id, options = parse_args(id_or_options, options)
68-
paginate "activities/#{id}/kudos", options, Strava::Models::Athlete, &block
68+
paginate "activities/#{id}/kudos", options, Strava::Models::SummaryAthlete, &block
6969
end
7070

7171
#
@@ -97,7 +97,7 @@ def athlete_activities(options = {}, &block)
9797
options = options.dup if options.key?(:after) || options.key?(:before)
9898
options[:after] = options[:after].to_i if options[:after]
9999
options[:before] = options[:before].to_i if options[:before]
100-
paginate 'athlete/activities', options, Strava::Models::Activity, &block
100+
paginate 'athlete/activities', options, Strava::Models::SummaryActivity, &block
101101
end
102102

103103
#
@@ -133,7 +133,7 @@ def activity_zones(id_or_options, options = {})
133133
#
134134
def update_activity(id_or_options, options = {})
135135
id, options = parse_args(id_or_options, options)
136-
Strava::Models::Activity.new(put("activities/#{id}", options))
136+
Strava::Models::DetailedActivity.new(put("activities/#{id}", options))
137137
end
138138
end
139139
end

lib/strava/api/endpoints/athletes.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module Athletes
88
# Returns the currently authenticated athlete.
99
#
1010
def athlete
11-
Strava::Models::Athlete.new(get('athlete'))
11+
Strava::Models::DetailedAthlete.new(get('athlete'))
1212
end
1313

1414
#
@@ -36,7 +36,7 @@ def athlete_stats(id_or_options, options = {})
3636
# The weight of the athlete in kilograms.
3737
#
3838
def update_athlete(options = {})
39-
Strava::Models::Athlete.new(put('athlete', options))
39+
Strava::Models::DetailedAthlete.new(put('athlete', options))
4040
end
4141
end
4242
end

lib/strava/api/endpoints/clubs.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module Clubs
1616
#
1717
def club_activities(id_or_options, options = {}, &block)
1818
id, options = parse_args(id_or_options, options)
19-
paginate "clubs/#{id}/activities", options, Strava::Models::Activity, &block
19+
paginate "clubs/#{id}/activities", options, Strava::Models::ClubActivity, &block
2020
end
2121

2222
#
@@ -46,7 +46,7 @@ def club_events(id_or_options, options = {}, &block)
4646
#
4747
def club_admins(id_or_options, options = {}, &block)
4848
id, options = parse_args(id_or_options, options)
49-
paginate "clubs/#{id}/admins", options, Strava::Models::ClubAdmin, &block
49+
paginate "clubs/#{id}/admins", options, Strava::Models::ClubAthlete, &block
5050
end
5151

5252
#
@@ -57,7 +57,7 @@ def club_admins(id_or_options, options = {}, &block)
5757
#
5858
def club(id_or_options, options = {})
5959
id, options = parse_args(id_or_options, options)
60-
Strava::Models::Club.new(get("clubs/#{id}", options))
60+
Strava::Models::DetailedClub.new(get("clubs/#{id}", options))
6161
end
6262

6363
#
@@ -72,7 +72,7 @@ def club(id_or_options, options = {})
7272
#
7373
def club_members(id_or_options, options = {}, &block)
7474
id, options = parse_args(id_or_options, options)
75-
paginate "clubs/#{id}/members", options, Strava::Models::ClubMember, &block
75+
paginate "clubs/#{id}/members", options, Strava::Models::ClubAthlete, &block
7676
end
7777

7878
#
@@ -84,7 +84,7 @@ def club_members(id_or_options, options = {}, &block)
8484
# Number of items per page. Defaults to 30.
8585
#
8686
def athlete_clubs(options = {}, &block)
87-
paginate 'athlete/clubs', options, Strava::Models::Club, &block
87+
paginate 'athlete/clubs', options, Strava::Models::SummaryClub, &block
8888
end
8989
end
9090
end

lib/strava/api/endpoints/gears.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module Gears
1212
#
1313
def gear(id_or_options, options = {})
1414
id, options = parse_args(id_or_options, options)
15-
Strava::Models::Gear.new(get("gear/#{id}", options))
15+
Strava::Models::DetailedGear.new(get("gear/#{id}", options))
1616
end
1717
end
1818
end

lib/strava/api/endpoints/segment_efforts.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module SegmentEfforts
1212
#
1313
def segment_effort(id_or_options, options = {})
1414
id, options = parse_args(id_or_options, options)
15-
Strava::Models::SegmentEffort.new(get("segment_efforts/#{id}", options))
15+
Strava::Models::DetailedSegmentEffort.new(get("segment_efforts/#{id}", options))
1616
end
1717

1818
#
@@ -27,7 +27,7 @@ def segment_effort(id_or_options, options = {})
2727
#
2828
def segment_efforts(id_or_options, options = {}, &block)
2929
id, options = parse_args(id_or_options, options)
30-
paginate "segments/#{id}/all_efforts", options, Strava::Models::SegmentEffort, &block
30+
paginate "segments/#{id}/all_efforts", options, Strava::Models::DetailedSegmentEffort, &block
3131
end
3232
end
3333
end

lib/strava/api/endpoints/segments.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def explore_segments(options = {})
3434
# Number of items per page. Defaults to 30.
3535
#
3636
def starred_segments(options = {}, &block)
37-
paginate 'segments/starred', options, Strava::Models::Segment, &block
37+
paginate 'segments/starred', options, Strava::Models::SummarySegment, &block
3838
end
3939

4040
#
@@ -45,7 +45,7 @@ def starred_segments(options = {}, &block)
4545
#
4646
def segment(id_or_options, options = {})
4747
id, options = parse_args(id_or_options, options)
48-
Strava::Models::Segment.new(get("segments/#{id}", options))
48+
Strava::Models::DetailedSegment.new(get("segments/#{id}", options))
4949
end
5050

5151
#
@@ -59,7 +59,7 @@ def segment(id_or_options, options = {})
5959
def star_segment(id_or_options, options = {})
6060
id, options = parse_args(id_or_options, options)
6161
throw ArgumentError.new('Required argument :starred missing') if options[:starred].nil?
62-
Strava::Models::Segment.new(put("segments/#{id}/starred", options))
62+
Strava::Models::DetailedSegment.new(put("segments/#{id}/starred", options))
6363
end
6464
end
6565
end

lib/strava/models/achievement.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
module Strava
44
module Models
5+
# Undocumented
56
class Achievement < Strava::Models::Response
67
property 'rank'
78
property 'type'

0 commit comments

Comments
 (0)