class Strava::Club
Clubs represent groups of athletes on Strava
. They can be public or private. Clubs have both summary and detailed representations.
@see strava.github.io/api/v3/clubs/ Strava
Docs - Clubs
Public Instance Methods
activities(per_page: nil, page: nil, before: nil)
click to toggle source
# File lib/strava/club.rb, line 35 def activities(per_page: nil, page: nil, before: nil) if page || per_page || before get_activities(per_page: per_page, page: page, before: before) else get_activities if @activities.empty? @activities.values end end
admins(per_page: nil, page: nil)
click to toggle source
# File lib/strava/club.rb, line 68 def admins(per_page: nil, page: nil) if page || per_page get_admins(per_page: per_page, page: page) else get_admins if @admins.empty? @admins end end
announcements()
click to toggle source
# File lib/strava/club.rb, line 53 def announcements get_announcements if @announcements.empty? @announcements end
get_details()
click to toggle source
# File lib/strava/club.rb, line 87 def get_details return self if detailed? res = client.get(path_base).to_h update(res) end
group_events(per_page: nil, page: nil, before: nil)
click to toggle source
# File lib/strava/club.rb, line 44 def group_events(per_page: nil, page: nil, before: nil) if page || per_page || before get_group_events(per_page: per_page, page: page, before: before) else get_group_events if @group_events.empty? @group_events.values end end
join()
click to toggle source
{“success”=>true, “active”=>false}
# File lib/strava/club.rb, line 78 def join res = client.post(path_join).to_h end
leave()
click to toggle source
{“success”=>true, “active”=>true, “membership”=>“member”}
# File lib/strava/club.rb, line 83 def leave res = client.post(path_leave).to_h end
members(per_page: nil, page: nil)
click to toggle source
# File lib/strava/club.rb, line 58 def members(per_page: nil, page: nil) if page || per_page get_members(per_page: per_page, page: page) else get_members if @members.empty? || !@members_fetched @members_fetched = true @members.values end end
update(data, **opts)
click to toggle source
Update an existing club. Used by other methods in the gem. Should not be used directly.
@param data [Hash] data to update the club with @return [self]
# File lib/strava/club.rb, line 27 def update(data, **opts) @response = data @id = data["id"] @resource_state = data['resource_state'] self end
Private Instance Methods
get_activities(per_page: nil, page: nil, before: nil)
click to toggle source
# File lib/strava/club.rb, line 93 def get_activities(per_page: nil, page: nil, before: nil) res = client.get(path_activities, per_page: per_page, page: page, before: before).to_a parse_data(@activities, res, klass: Activity, client: @client) end
get_admins()
click to toggle source
# File lib/strava/club.rb, line 113 def get_admins res = client.get(path_admins).to_a @admins = parse_data(@members, res, klass: Athlete, client: @client) end
get_announcements()
click to toggle source
# File lib/strava/club.rb, line 103 def get_announcements res = client.get(path_announcements).to_a @announcements = parse_data({}, res, klass: ClubAnnouncement, client: @client) end
get_group_events(per_page: nil, page: nil, before: nil)
click to toggle source
# File lib/strava/club.rb, line 98 def get_group_events(per_page: nil, page: nil, before: nil) res = client.get(path_group_events, per_page: per_page, page: page, before: before).to_a parse_data(@group_events, res, klass: Activity, client: @client) end
get_members()
click to toggle source
# File lib/strava/club.rb, line 108 def get_members res = client.get(path_members).to_a parse_data(@members, res, klass: Athlete, client: @client) end
path_activities()
click to toggle source
# File lib/strava/club.rb, line 122 def path_activities "#{path_base}/activities" end
path_admins()
click to toggle source
# File lib/strava/club.rb, line 138 def path_admins "#{path_base}/admins" end
path_announcements()
click to toggle source
# File lib/strava/club.rb, line 130 def path_announcements "#{path_base}/announcements" end
path_base()
click to toggle source
# File lib/strava/club.rb, line 118 def path_base "clubs/#{id}" end
path_group_events()
click to toggle source
# File lib/strava/club.rb, line 126 def path_group_events "#{path_base}/group_events" end
path_join()
click to toggle source
# File lib/strava/club.rb, line 142 def path_join "#{path_base}/join" end
path_leave()
click to toggle source
# File lib/strava/club.rb, line 146 def path_leave "#{path_base}/leave" end
path_members()
click to toggle source
# File lib/strava/club.rb, line 134 def path_members "#{path_base}/members" end
set_ivars()
click to toggle source
Set up instance variables upon instantiation.
@abstract @return [void]
# File lib/strava/club.rb, line 12 def set_ivars @activities = {} @group_events = {} @announcements = [] @members = {} @admins = [] @segment_efforts = {} end