Sha256: 5c4e0e5626f95831dc6e4d6a31a0e797170bd3957d7fac9398da073f3520b73a

Contents?: true

Size: 1.35 KB

Versions: 6

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true

module Strava
  module Models
    class Athlete < Strava::Models::Response
      property 'id'
      property 'username'
      property 'resource_state'
      property 'firstname'
      property 'lastname'
      property 'city'
      property 'state'
      property 'country'
      property 'sex'
      property 'premium'
      property 'created_at', transform_with: ->(v) { Time.parse(v) }
      property 'updated_at', transform_with: ->(v) { Time.parse(v) }
      property 'badge_type_id'
      property 'profile'
      property 'profile_medium'
      property 'follower'
      property 'friend'
      property 'summit'
      property 'follower_count'
      property 'friend_count'
      property 'mutual_friend_count'
      property 'athlete_type'
      property 'date_preference'
      property 'measurement_preference'
      property 'clubs', transform_with: ->(v) { v.map { |r| Strava::Models::Club.new(r) } }
      property 'ftp'
      property 'weight'
      property 'bikes', transform_with: ->(v) { v.map { |r| Strava::Models::Gear.new(r) } }
      property 'shoes', transform_with: ->(v) { v.map { |r| Strava::Models::Gear.new(r) } }

      def name
        [firstname, lastname].compact.join(' ') if firstname || lastname
      end

      def strava_url
        "https://www.strava.com/athletes/#{username || id}"
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
strava-ruby-client-2.2.0 lib/strava/models/athlete.rb
strava-ruby-client-2.1.0 lib/strava/models/athlete.rb
strava-ruby-client-2.0.0 lib/strava/models/athlete.rb
strava-ruby-client-1.1.0 lib/strava/models/athlete.rb
strava-ruby-client-1.0.1 lib/strava/models/athlete.rb
strava-ruby-client-1.0.0 lib/strava/models/athlete.rb