Class: NikeV2::Metric

Inherits:
Object
  • Object
show all
Defined in:
lib/nike_v2/metric.rb

Instance Method Summary collapse

Constructor Details

#initialize(activity, data) ⇒ Metric

Returns a new instance of Metric.



4
5
6
7
8
9
10
# File 'lib/nike_v2/metric.rb', line 4

def initialize(activity, data)
  @activity = activity
  @unit = data['intervalUnit']
  @type = data ['metricType']
  @values = data['values'].collect(&:to_f)
  self
end

Instance Method Details

#durationObject



38
39
40
# File 'lib/nike_v2/metric.rb', line 38

def duration
  @values.length.send(@unit.downcase)
end

#during(start, stop) ⇒ Object



32
33
34
35
36
# File 'lib/nike_v2/metric.rb', line 32

def during(start, stop)
  start_point = time_to_index(start)
  duration = time_to_index(stop) - start_point
  @values[start_point, duration]
end

#totalObject



20
21
22
# File 'lib/nike_v2/metric.rb', line 20

def total
  @total ||= values.inject(:+)
end

#total_during(start, stop, convert_to_local = false) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/nike_v2/metric.rb', line 24

def total_during(start, stop, convert_to_local = false)
  if convert_to_local
    start = @activity.to_tz(start)
    stop = @activity.to_tz(stop)
  end
  during(start, stop).collect(&:to_f).inject(:+) rescue 0
end

#typeObject



12
13
14
# File 'lib/nike_v2/metric.rb', line 12

def type
  @type
end

#valuesObject



16
17
18
# File 'lib/nike_v2/metric.rb', line 16

def values
  @values
end