class Strava::Activity
Class to represent Strava
Activity
@see strava.github.io/api/v3/activities/ Strava
Activity
API Docs
Constants
- ATTRIBUTES
Attributes
gear[R]
photos_info[R]
Public Instance Methods
comment(message)
click to toggle source
# File lib/strava/activity.rb, line 99 def comment(message) res = client.post(path_comments, text: message).to_h end
comments(per_page: nil, page: nil)
click to toggle source
# File lib/strava/activity.rb, line 55 def comments(per_page: nil, page: nil) if page || per_page get_comments(per_page: per_page, page: page) else get_comments if @comments.empty? @comments.values end end
get_comments(per_page: nil, page: nil)
click to toggle source
# File lib/strava/activity.rb, line 117 def get_comments(per_page: nil, page: nil) res = client.get(path_comments, per_page: per_page, page: page).to_a parse_data(@comments, res, klass: Comment, client: @client) end
get_details()
click to toggle source
# File lib/strava/activity.rb, line 108 def get_details return self if detailed? res = client.get(path_base).to_h update(res) end
get_kudos(per_page: nil, page: nil)
click to toggle source
# File lib/strava/activity.rb, line 113 def get_kudos(per_page: nil, page: nil) res = client.get(path_kudos, per_page: per_page, page: page).to_a parse_data(@kudos, res, klass: Athlete, client: @client) end
get_laps()
click to toggle source
# File lib/strava/activity.rb, line 137 def get_laps res = client.get(path_laps).to_a parse_data(@laps, res, klass: Lap, client: @client) end
get_photos(per_page: nil, page: nil)
click to toggle source
# File lib/strava/activity.rb, line 121 def get_photos(per_page: nil, page: nil) res = client.get(path_photos, per_page: per_page, page: page).to_a parse_data(@photos, res, klass: Photo, client: @client) end
get_streams(types = '', **params)
click to toggle source
# File lib/strava/activity.rb, line 129 def get_streams(types = '', **params) res = client.get(path_streams + types.join(','), **params).to_a @streams.update(res) end
get_zones()
click to toggle source
# File lib/strava/activity.rb, line 133 def get_zones res = client.get(path_zones).to_a @zones = res end
kudo()
click to toggle source
# File lib/strava/activity.rb, line 103 def kudo res = client.post(path_kudos).to_h end
kudos(per_page: nil, page: nil)
click to toggle source
# File lib/strava/activity.rb, line 46 def kudos(per_page: nil, page: nil) if page || per_page get_kudos(per_page: per_page, page: page) else get_kudos if @kudos.empty? @kudos.values end end
laps()
click to toggle source
# File lib/strava/activity.rb, line 94 def laps get_laps if @laps.empty? @laps.values end
path_base()
click to toggle source
# File lib/strava/activity.rb, line 143 def path_base "activities/#{id}" end
path_comments()
click to toggle source
# File lib/strava/activity.rb, line 149 def path_comments "#{path_base}/comments" end
path_kudos()
click to toggle source
# File lib/strava/activity.rb, line 146 def path_kudos "#{path_base}/kudos" end
path_laps()
click to toggle source
# File lib/strava/activity.rb, line 164 def path_laps "#{path_base}/laps" end
path_photos()
click to toggle source
# File lib/strava/activity.rb, line 152 def path_photos "#{path_base}/photos?photo_sources=true" end
path_streams()
click to toggle source
# File lib/strava/activity.rb, line 158 def path_streams "#{path_base}/streams/" end
path_zones()
click to toggle source
# File lib/strava/activity.rb, line 161 def path_zones "#{path_base}/zones" end
photos(per_page: nil, page: nil)
click to toggle source
# File lib/strava/activity.rb, line 64 def photos(per_page: nil, page: nil) if page || per_page get_photos(per_page: per_page, page: page) else get_photos if @photos.empty? @photos.values end end
segment_efforts()
click to toggle source
# File lib/strava/activity.rb, line 42 def segment_efforts @segment_efforts.values end
streams(types = [:time, :distance, :latlng], **params)
click to toggle source
# File lib/strava/activity.rb, line 84 def streams(types = [:time, :distance, :latlng], **params) get_streams(types, **params) if @streams.empty? @streams end
zones()
click to toggle source
# File lib/strava/activity.rb, line 89 def zones get_zones unless @zones @zones end
Private Instance Methods
set_ivars()
click to toggle source
Set up instance variables upon instantiation.
@abstract @return [void]
# File lib/strava/activity.rb, line 13 def set_ivars @kudos = {} @comments = {} @photos = {} @laps = {} @segment_efforts = {} @related = {} @streams = StreamSet.new end
update(data, **opts)
click to toggle source
Updates activity with passed data attributes.
@param data [Hash] data hash containing activity data @return [self]
# File lib/strava/activity.rb, line 27 def update(data, **opts) @response = data @id = data["id"] @resource_state = data['resource_state'] @photos_info = data['photos'] @laps_info = data['laps'] @gear = Gear.new(data['gear'], client: client) if data['gear'] ATTRIBUTES.each do |attr| instance_variable_set("@#{attr}", data[attr.to_s]) end parse_data(@segment_efforts, data["segment_efforts"], klass: SegmentEffort, client: @client) if data["segment_efforts"] self end