class PostRunner::DataSources
The DataSources
objects can generate a table that lists all the data sources in chronological order that were in use during a workout.
Public Class Methods
new(activity, unit_system)
click to toggle source
Create a DataSources
object. @param activity [Activity] The activity to analyze. @param unit_system [Symbol] The unit system to use (:metric or
:imperial )
# File lib/postrunner/DataSources.rb, line 31 def initialize(activity, unit_system) @activity = activity @fit_activity = activity.fit_activity @unit_system = unit_system end
Public Instance Methods
to_html(doc)
click to toggle source
# File lib/postrunner/DataSources.rb, line 41 def to_html(doc) ViewFrame.new('data_sources', "Data Sources", 1210, data_sources, true).to_html(doc) end
to_s()
click to toggle source
# File lib/postrunner/DataSources.rb, line 37 def to_s data_sources.to_s end
Private Instance Methods
data_sources()
click to toggle source
# File lib/postrunner/DataSources.rb, line 48 def data_sources session = @fit_activity.sessions[0] t = FlexiTable.new t.enable_frame(false) t.body t.row([ 'Time', 'Distance', 'Mode', 'Speed Source', 'Distance Source', 'Cadence Source', 'Elevation Source', 'Heart Rate Source', 'Power Source', 'Calories Source' ]) start_time = session.start_time @fit_activity.data_sources.each do |source| t.cell(secsToHMS(source.timestamp - start_time)) t.cell(@activity.distance(source.timestamp, @unit_system)) t.cell(source.mode) t.cell(device_name(source.speed)) t.cell(device_name(source.distance)) t.cell(device_name(source.cadence)) t.cell(device_name(source.elevation)) t.cell(device_name(source.heart_rate)) t.cell(device_name(source.power)) t.cell(device_name(source.calories)) t.new_row end t end
device_name(index)
click to toggle source
# File lib/postrunner/DataSources.rb, line 75 def device_name(index) @fit_activity.device_infos.each do |device| if device.device_index == index if device.device_type return (DeviceList::DeviceTypeNames[device.device_type] || device.device_type) + " [#{device.device_index}]" else return "Unknown [#{device.device_index}]" end end end '' end