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
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