rails updates
This commit is contained in:
parent
a6f61bd18a
commit
613e88c4a8
9 changed files with 113 additions and 35 deletions
|
@ -2,8 +2,8 @@ class Segment < ActiveRecord::Base
|
|||
require 'xml/libxml'
|
||||
set_table_name 'current_segments'
|
||||
|
||||
validates_numericality_of :segment_a
|
||||
validates_numericality_of :segment_b
|
||||
validates_numericality_of :node_a
|
||||
validates_numericality_of :node_b
|
||||
# FIXME validate a nd b exist and are visible
|
||||
|
||||
has_many :old_segments, :foreign_key => :id
|
||||
|
@ -19,14 +19,14 @@ class Segment < ActiveRecord::Base
|
|||
|
||||
doc.find('//osm/segment').each do |pt|
|
||||
|
||||
segment.segment_a = pt['from'].to_i
|
||||
segment.segment_b = pt['to'].to_i
|
||||
segment.node_a = pt['from'].to_i
|
||||
segment.node_b = pt['to'].to_i
|
||||
|
||||
if pt['id'] != '0'
|
||||
segment.id = pt['id'].to_i
|
||||
end
|
||||
|
||||
segment.visible = pt['visible'] == '1'
|
||||
segment.visible = pt['visible'] and pt['visible'] == 'true'
|
||||
|
||||
if create
|
||||
segment.timestamp = Time.now
|
||||
|
@ -54,8 +54,8 @@ class Segment < ActiveRecord::Base
|
|||
def save_with_history
|
||||
begin
|
||||
Segment.transaction do
|
||||
old_segment = OldSegment.from_segment(self)
|
||||
self.save
|
||||
old_segment = OldSegment.from_segment(self)
|
||||
old_segment.save
|
||||
end
|
||||
return true
|
||||
|
@ -67,23 +67,22 @@ class Segment < ActiveRecord::Base
|
|||
def to_xml
|
||||
doc = XML::Document.new
|
||||
doc.encoding = 'UTF-8'
|
||||
root = XML::Segment.new 'osm'
|
||||
root = XML::Node.new 'osm'
|
||||
root['version'] = '0.4'
|
||||
root['generator'] = 'OpenStreetMap server'
|
||||
doc.root = root
|
||||
el1 = XML::Segment.new 'segment'
|
||||
el1 = XML::Node.new 'segment'
|
||||
el1['id'] = self.id.to_s
|
||||
el1['lat'] = self.latitude.to_s
|
||||
el1['lon'] = self.longitude.to_s
|
||||
split_tags(el1, self.tags)
|
||||
el1['from'] = self.node_a.to_s
|
||||
el1['to'] = self.node_b.to_s
|
||||
Segment.split_tags(el1, self.tags)
|
||||
el1['visible'] = self.visible.to_s
|
||||
el1['timestamp'] = self.timestamp.xmlschema
|
||||
root << el1
|
||||
return doc
|
||||
end
|
||||
|
||||
private
|
||||
def split_tags(el, tags)
|
||||
def self.split_tags(el, tags)
|
||||
tags.split(';').each do |tag|
|
||||
parts = tag.split('=')
|
||||
key = ''
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue