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