class TcxRb::Parser
Attributes
doc[R]
Public Class Methods
new(tcx_str)
click to toggle source
# File lib/tcx_rb/parser.rb, line 7 def initialize(tcx_str) @doc = Nokogiri::XML(tcx_str) end
Public Instance Methods
parse_activities()
click to toggle source
# File lib/tcx_rb/parser.rb, line 44 def parse_activities doc.css('Activity').map do |activity| act_hash = {} act_hash[:sport] = activity['Sport'] act_hash[:id] = activity.css('Id').text act_hash[:creator] = activity.css('Creator/Name').text act_hash[:laps] = parse_laps(activity) act_hash end end
parse_laps(doc = @doc)
click to toggle source
# File lib/tcx_rb/parser.rb, line 27 def parse_laps(doc = @doc) # parse laps from document and returns hashes in the form of # {start_time, total_time, distance, calories, intensity, trigger_method, # trackpoints} doc.css('Lap').map do |lap| lap_hash = {} lap_hash[:start_time] = lap['StartTime'] lap_hash[:total_time] = lap.css('TotalTimeSeconds').text lap_hash[:distance] = lap.css('DistanceMeters').first.text lap_hash[:calories] = lap.css('Calories').text lap_hash[:intensity] = lap.css('Intensity').text lap_hash[:trigger_method] = lap.css('TriggerMethod').text lap_hash[:trackpoints] = parse_trackpoints(lap) lap_hash end end
parse_trackpoints(doc = @doc)
click to toggle source
# File lib/tcx_rb/parser.rb, line 12 def parse_trackpoints(doc = @doc) # parse trackpoints from document and return hashes in the form of # {time, latitude, longitude, altitude, distance, heart_rate} doc.css('Trackpoint').map do |tp| tp_hash = {} tp_hash[:time] = tp.css('Time').text tp_hash[:latitude] = tp.css('Position/LatitudeDegrees').text tp_hash[:longitude] = tp.css('Position/LongitudeDegrees').text tp_hash[:altitude] = tp.css('AltitudeMeters').text tp_hash[:distance] = tp.css('DistanceMeters').text tp_hash[:heart_rate] = tp.css('HeartRateBpm/Value').text tp_hash end end