X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/1a6765f1a23793e986504445025ec3fd7bd78171..dd1f94e3414d1cbea71706dcb0e3a418db208efd:/app/models/way.rb?ds=sidebyside diff --git a/app/models/way.rb b/app/models/way.rb index 85b52aa88..43bd4d8c3 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -6,6 +6,8 @@ class Way < ActiveRecord::Base has_many :way_segments, :foreign_key => 'id' has_many :way_tags, :foreign_key => 'id' + has_many :old_ways, :foreign_key => :id + set_table_name 'current_ways' def self.from_xml(xml, create=false) @@ -16,7 +18,7 @@ class Way < ActiveRecord::Base way = Way.new doc.find('//osm/way').each do |pt| - unless create and pt['id'] == '0' + if !create and pt['id'] != '0' way.id = pt['id'].to_i end @@ -50,7 +52,12 @@ class Way < ActiveRecord::Base root['generator'] = 'OpenStreetMap server' doc.root = root - + + root << to_xml_node() + return doc + end + + def to_xml_node el1 = XML::Node.new 'way' el1['id'] = self.id.to_s el1['visible'] = self.visible.to_s @@ -68,10 +75,9 @@ class Way < ActiveRecord::Base e['v'] = tag.v el1 << e end - - root << el1 - return doc - end + return el1 + end + def segs @segs = Array.new unless @segs