lib/gpx/waypoint.rb in gpx-0.5 vs lib/gpx/waypoint.rb in gpx-0.6

- old
+ new

@@ -21,76 +21,76 @@ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #++ module GPX - # This class supports the concept of a waypoint. Beware that this class has - # not seen much use yet, since WalkingBoss does not use waypoints right now. - class Waypoint < Point + # This class supports the concept of a waypoint. Beware that this class has + # not seen much use yet, since WalkingBoss does not use waypoints right now. + class Waypoint < Point - SUB_ELEMENTS = %w{ magvar geoidheight name cmt desc src link sym type fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions } + SUB_ELEMENTS = %w{ magvar geoidheight name cmt desc src link sym type fix sat hdop vdop pdop ageofdgpsdata dgpsid extensions } - attr_reader :gpx_file - SUB_ELEMENTS.each { |sub_el| attr_accessor sub_el.to_sym } + attr_reader :gpx_file + SUB_ELEMENTS.each { |sub_el| attr_accessor sub_el.to_sym } - # Not implemented - def crop(area) - end + # Not implemented + def crop(area) + end - # Not implemented - def delete_area(area) - end + # Not implemented + def delete_area(area) + end - # Initializes a waypoint from a XML::Node. - def initialize(opts = {}) - if(opts[:element] and opts[:gpx_file]) - wpt_elem = opts[:element] - @gpx_file = opts[:gpx_file] - super(:element => wpt_elem, :gpx_file => @gpx_file) - instantiate_with_text_elements(wpt_elem, SUB_ELEMENTS, @gpx_file.ns) - else - opts.each do |key, value| - assignment_method = "#{key}=" - if self.respond_to?(assignment_method) - self.send(assignment_method, value) - end - end - end + # Initializes a waypoint from a XML::Node. + def initialize(opts = {}) + if(opts[:element] and opts[:gpx_file]) + wpt_elem = opts[:element] + @gpx_file = opts[:gpx_file] + super(:element => wpt_elem, :gpx_file => @gpx_file) + instantiate_with_text_elements(wpt_elem, SUB_ELEMENTS, @gpx_file.ns) + else + opts.each do |key, value| + assignment_method = "#{key}=" + if self.respond_to?(assignment_method) + self.send(assignment_method, value) + end + end end + end - # Prints out a friendly summary of this track (sans points). Useful for - # debugging and sanity checks. - def to_s - result = "Waypoint \n" - result << "\tName: #{name}\n" - result << "\tLatitude: #{lat} \n" - result << "\tLongitude: #{lon} \n" - result << "\tElevation: #{elevation}\n " - result << "\tTime: #{time}\n" - SUB_ELEMENTS.each do |sub_element_attribute| - val = self.send(sub_element_attribute) - result << "\t#{sub_element_attribute}: #{val}\n" unless val.nil? - end - result + # Prints out a friendly summary of this track (sans points). Useful for + # debugging and sanity checks. + def to_s + result = "Waypoint \n" + result << "\tName: #{name}\n" + result << "\tLatitude: #{lat} \n" + result << "\tLongitude: #{lon} \n" + result << "\tElevation: #{elevation}\n " + result << "\tTime: #{time}\n" + SUB_ELEMENTS.each do |sub_element_attribute| + val = self.send(sub_element_attribute) + result << "\t#{sub_element_attribute}: #{val}\n" unless val.nil? end + result + end - # Converts a waypoint to a XML::Node. - def to_xml - wpt = Node.new('wpt') - wpt['lat'] = lat.to_s - wpt['lon'] = lon.to_s - SUB_ELEMENTS.each do |sub_element_name| - if(self.respond_to?(sub_element_name) and (!self.send(sub_element_name).nil?)) - sub_elem_node = Node.new(sub_element_name) - sub_elem_node << self.send(sub_element_name) - wpt << sub_elem_node - end - end - unless(self.elevation.nil?) - ele_node = Node.new('ele') - ele_node << self.elevation - wpt << ele_node - end - wpt + # Converts a waypoint to a XML::Node. + def to_xml(elem_name = 'wpt') + wpt = Node.new(elem_name) + wpt['lat'] = lat.to_s + wpt['lon'] = lon.to_s + SUB_ELEMENTS.each do |sub_element_name| + if(self.respond_to?(sub_element_name) and (!self.send(sub_element_name).nil?)) + sub_elem_node = Node.new(sub_element_name) + sub_elem_node << self.send(sub_element_name) + wpt << sub_elem_node + end end - end + unless(self.elevation.nil?) + ele_node = Node.new('ele') + ele_node << self.elevation + wpt << ele_node + end + wpt + end + end end