class Rozi::TrackFile
A thin wrapper around a file object made for reading and writing tracks
Public Instance Methods
write(enumerable)
click to toggle source
Writes an enumerable of track points to the file
@param [Enumerable] enumerable
# File lib/rozi/tracks.rb, line 128 def write(enumerable) enumerable.each { |track_point| self.write_track_point(track_point) } nil end
write_track_point(track_point)
click to toggle source
Writes a track point to the file
@param [TrackPoint] track_point @return [nil]
# File lib/rozi/tracks.rb, line 114 def write_track_point(track_point) ensure_track_properties @file.write serialize_track_point(track_point) @file.write "\n" nil end
write_track_properties(properties)
click to toggle source
Writes track properties to the file
The file must be empty when this method is called!
@raise [RuntimeError] if the file isn’t empty @param [TrackProperties] properties @return [nil]
# File lib/rozi/tracks.rb, line 98 def write_track_properties(properties) if @file.size > 0 raise "Can't write file properties, file is not empty" end @file.write serialize_track_properties(properties) nil end
Private Instance Methods
ensure_track_properties()
click to toggle source
Ensures that track properties has been written to the file
# File lib/rozi/tracks.rb, line 141 def ensure_track_properties return if @properties_written @properties_written = true if @file.size == 0 write_track_properties TrackProperties.new end end
serialize_track_point(track_point)
click to toggle source
# File lib/rozi/tracks.rb, line 166 def serialize_track_point(track_point) " %.6f,%.6f,%d,%.1f,%.7f,%s,%s" % track_point.to_a end
serialize_track_properties(track_properties)
click to toggle source
# File lib/rozi/tracks.rb, line 151 def serialize_track_properties(track_properties) props = track_properties.to_a props.delete_at(0) # The datum isn't a part of this list props.map! { |item| item.is_a?(String) ? escape_text(item) : item } <<-TEXT.gsub(/^[ ]{8}/, "") % props OziExplorer Track Point File Version 2.1 #{track_properties.datum} Altitude is in Feet Reserved 3 0,%d,%d,%s,%d,%d,%d,%d 0 TEXT end