class NikeV2::Activity

Constants

API_URL

Public Class Methods

new(attributes = {}) click to toggle source
Calls superclass method
# File lib/nike_v2/activity.rb, line 17
def initialize(attributes = {})
  raise "#{self.class} requires s person." unless attributes.keys.include?(:person)
  raise "#{self.class} requires an activityId." unless attributes.keys.include?('activityId')

  build_metrics(attributes)
  super(attributes)
end

Public Instance Methods

ended_at() click to toggle source

some reason activities aren’t always complete so we need metrics to figure out how long they are

# File lib/nike_v2/activity.rb, line 51
def ended_at
  @ended_at ||= self.respond_to?(:end_time) ? Time.parse(self.end_time.gsub('Z', '-') + '00:00') : started_at + (metrics.durations.to.seconds).to_f 
end
gps_data() click to toggle source
# File lib/nike_v2/activity.rb, line 29
def gps_data
  @gps_data ||= NikeV2::GpsData.new(:activity => self)
end
load_data() click to toggle source
# File lib/nike_v2/activity.rb, line 38
def load_data
  data = fetch_data
  build_metrics(data)
  set_attributes(data)   

  true
end
metrics() click to toggle source
# File lib/nike_v2/activity.rb, line 33
def metrics
  load_data unless @metrics.is_a?(NikeV2::Metrics)
  @metrics
end
started_at() click to toggle source
# File lib/nike_v2/activity.rb, line 46
def started_at
  @started_at ||= Time.parse(self.start_time.gsub('Z', '-') + '00:00')
end
tags_as_hash() click to toggle source
# File lib/nike_v2/activity.rb, line 63
def tags_as_hash
  Hash[tags.map {|k| [k['tagType'].downcase.to_sym, k['tagValue']] }]
end
to_tz(time) click to toggle source
# File lib/nike_v2/activity.rb, line 55
def to_tz(time)
  if time.respond_to?(:strftime)
    return Time.parse(time.strftime('%Y-%m-%d %H:%M:%S ' + self.tz.to_s))
  else
    return Time.parse(time + ' ' + self.tz.to_s)
  end
end
tz() click to toggle source
# File lib/nike_v2/activity.rb, line 25
def tz
  TZInfo::Timezone.get(self.activity_time_zone)
end

Private Instance Methods

api_url() click to toggle source
# File lib/nike_v2/activity.rb, line 68
def api_url
  API_URL + "/#{self.activity_id}"
end
build_metrics(data) click to toggle source
# File lib/nike_v2/activity.rb, line 72
def build_metrics(data)
  metrics = data.delete('metrics') || []
  @metrics = metrics.empty? ? nil : NikeV2::Metrics.new(self, metrics)
end