class Strava::Segment

Attributes

leaderboard[R]

Class to represent Strava Activity strava.github.io/api/v3/activities/ Your code goes here…

Public Class Methods

explorer(client, bounds = '37.821362,-122.505373,37.842038,-122.465977') click to toggle source
# File lib/strava/segment.rb, line 81
def self.explorer(client, bounds = '37.821362,-122.505373,37.842038,-122.465977')
  res = client.get("segments/explore", bounds: bounds).to_h
  res['segments'].map { |hash| new(hash, client: client) }
end

Public Instance Methods

efforts(per_page: nil, page: nil, **params) click to toggle source
# File lib/strava/segment.rb, line 22
def efforts(per_page: nil, page: nil, **params)
  # paginate('efforts', struct: Array, per_page: per_page, page: page)
  if page || per_page || !params.empty?
    get_efforts(per_page: per_page, page: page, **params)
  else
    get_efforts if @efforts.empty?
    @efforts.values
  end
end
get_details() click to toggle source
# File lib/strava/segment.rb, line 47
def get_details
  return self if detailed?
  res = client.get(path_base).to_h
  update(res)
  res
end
get_streams(types = '', **params) click to toggle source
# File lib/strava/segment.rb, line 54
def get_streams(types = '', **params)
  res = client.get(path_streams + types.join(','), **params).to_a
  @streams.update(res)
end
path_base() click to toggle source
# File lib/strava/segment.rb, line 65
def path_base
  "segments/#{id}"
end
path_efforts() click to toggle source
# File lib/strava/segment.rb, line 69
def path_efforts
  "#{path_base}/all_efforts"
end
path_star() click to toggle source
# File lib/strava/segment.rb, line 73
def path_star
  "#{path_base}/starred"
end
path_streams() click to toggle source
# File lib/strava/segment.rb, line 77
def path_streams
  "#{path_base}/streams/"
end
set_ivars() click to toggle source
# File lib/strava/segment.rb, line 8
def set_ivars
  @efforts  = {}
  @streams = StreamSet.new
end
star() click to toggle source

don't know if this really works or not. doesn't seem to work

# File lib/strava/segment.rb, line 33
def star
  res = client.put(path_star, star: true).to_h
end
streams(types = [:distance, :altitude, :latlng], **params) click to toggle source
# File lib/strava/segment.rb, line 41
def streams(types = [:distance, :altitude, :latlng], **params)
  get_streams(types, **params) if @streams.empty?
  @streams
end
unstar() click to toggle source
# File lib/strava/segment.rb, line 37
def unstar
  res = client.put(path_star, star: false).to_h
end
update(data, **opts) click to toggle source
# File lib/strava/segment.rb, line 16
def update(data, **opts)
  @response = data
  @id                     = data["id"]
  @resource_state         = data['resource_state']
end

Private Instance Methods

get_efforts(per_page: nil, page: nil) click to toggle source
# File lib/strava/segment.rb, line 60
        def get_efforts(per_page: nil, page: nil)
  res = client.get(path_efforts, per_page: per_page, page: page).to_a
  parse_data(@efforts, res, klass: SegmentEffort, client: @client)
end